diff --git a/README.md b/README.md
index f142652..1b77dbb 100644
--- a/README.md
+++ b/README.md
@@ -5,3 +5,88 @@
- **AI** powered: uses a LLM AI-Agent to assist and automate
- **O**pen-source: full open-source solution (even the LLM)
- **P**entesting **S**uite: includes several tools for various use cases
+
+
+## Overview
+The objective of **AI-OPS** is to enhance Penetration Testing operations with an *AI Agent*
+capable of planning and executing tasks, whether that's about automating the **Reconnaisance**,
+the **Exploitation**, generating a **Report** or just getting another point of view on a target system.
+
+AI-OPS objective is not replacing human Pentesters, it is an AI Agent with *human-in-the-loop*
+by design, think it as follows: AI will not replace programmers, it makes bad programmers job worse, but
+it enhances great programmers and make them more productive; that's the same objective of AI-OPS.
+
+
+## Key Features
+
+**TODO:** *Knowledge, Collections, Tools etc.*
+
+## Install
+
+### End-User
+**Requirements**
+- Docker
+
+1. **TODO:** *work in progress*
+
+### Development
+
+**Requirements**
+- Python >= 3.11
+- Node
+- Linux
+- Docker
+
+1. **TODO:** *work in progress*
+
+## Tools
+
+### Available Tools
+
+| Name | Use Case | Implemented |
+|-------------|----------------------------------|---------------------|
+| nmap | Scanning/Network Exploitation | ✓ |
+| hashcat | Password Cracking | ✗ |
+| SQLmap | SQL Injection | ✗ |
+| Metasploit | Exploitation | ✗ |
+
+### Add a Tool
+
+Most Penetration Testing tools are 'simple' CLI programs, so the Agent only needs a Terminal and
+instructions to use the tool, however there are more advanced tools (such as `Metasploit`) that
+need a specific class to be integrated; for this reason there are two ways of adding a tool:
+1. **JSON Instructions**: create a file with instructions for the Agent and add it to
+`/home/YOUR_USERNAME/.aiops/tools` (or `../Users/YOUR_USERNAME/.aiops/tools`); all available tools
+that use JSON Instructions are available in `tools_settings`.
+```json
+{
+ "name": "...",
+ "tool_description": "...",
+ "args_description": [
+ "Multiline JSON\n",
+ "instructions\n",
+ "..."
+ ],
+ "examples": [
+ "reason to execute (thought process) \n",
+ "command (ex. nmap -sV 127.0.0.1)\n"
+ ]
+}
+```
+
+2. **Custom Class**: tools that require more advanced usage can be implemented extending the class
+`Tool` at `src.agent.tools.base`; you're welcome to open an issue for a tool request/proposal.
+
+
+## Knowledge
+
+**TODO**
+
+### Available Collections
+
+**TODO**
+
+
+### Add a Collection
+
+**TODO**