CAIO is an open-source cybersecurity platform that combines AI with practical security workflows. It helps security professionals review source code, test authorized websites, analyze logs, perform reconnaissance, investigate threats, and generate reports without switching between many separate interfaces.
CAIO supports local models through Ollama and cloud models from OpenAI and Anthropic Claude.
- Vulnerability Assessment — Review a local source repository, identify evidence-backed vulnerabilities, receive remediation guidance, and optionally apply verified fixes.
- Penetration Testing — Test an authorized deployed website without providing its source code. Supply a target URL and optional multiline hints such as API endpoints, parameters, or priority features.
- Reconnaissance — Discover domains, subdomains, DNS records, services, and related infrastructure.
- Log and incident analysis — Analyze security logs, indicators, attacker behavior, and MITRE ATT&CK techniques.
- Security operations — Generate SIEM rules, run incident-response playbooks, review CVEs, and create exportable reports.
- Python 3.10 or newer
- Git, if cloning the repository
- At least one AI provider:
- Ollama for local inference
- OpenAI API key
- Anthropic API key
Some reconnaissance features work best when their external command-line tools are installed and available on PATH.
Clone the project:
git clone https://github.com/Ronald-PH/caio-.git
cd caioCreate and activate a virtual environment.
Windows:
python -m venv venv
venv\Scripts\activateLinux or macOS:
python3 -m venv venv
source venv/bin/activateInstall dependencies:
pip install -r requirements.txtCreate the environment configuration:
Windows:
copy .env.example .envLinux or macOS:
cp .env.example .envEdit .env, replace SECRET_KEY, and configure your preferred AI provider.
For Ollama, start the service and pull a model:
ollama serve
ollama pull qwen2.5:7b-instructRelevant .env settings:
SECRET_KEY=replace-with-a-random-secret
DEFAULT_PROVIDER=ollama
OLLAMA_ENDPOINT=http://localhost:11434
OLLAMA_MODEL=qwen2.5:7b-instruct
OPENAI_API_KEY=
ANTHROPIC_API_KEY=Only configure the providers you intend to use. Additional optional settings for SMTP, webhooks, and external intelligence feeds are documented in .env.example.
python app.pyOpen http://127.0.0.1:5000 in your browser.
- Open Vulnerability Assessment.
- Select the local repository folder.
- Choose the review scope and describe what CAIO should inspect.
- Enable Apply fixes to workspace only if CAIO is allowed to modify the repository.
- Start the assessment and monitor the live agent activity.
- Review or export the completed report.
-
Open Penetration Testing.
-
Enter the complete URL of a website you are authorized to test.
-
Optionally enter multiple hints, such as:
/api/v1/users?id=1 /graphql Prioritize login and password-reset flows -
Confirm authorization.
-
Leave Enable controlled form testing off for passive and GET-based testing. Enable it only when bounded form submissions and inert text-file upload tests are explicitly permitted.
-
Start the test and monitor the live activity and final report.
- Scan history, activity, token usage, and reports are stored locally in SQLite.
- Reports can be exported as Markdown.
- Print-ready reports can be saved as PDF through the browser's print dialog.
- Penetration Testing does not request or expose the target website's source repository.
Do not commit .env, API keys, credentials, generated evidence, or sensitive reports to source control.
CAIO is intended for defensive security work, education, and explicitly authorized testing.
- Test only systems you own or have written permission to assess.
- Prefer staging or isolated environments for active testing.
- Keep controlled form testing disabled unless its possible side effects are understood and authorized.
- Never use CAIO for credential attacks, persistence, denial-of-service, destructive actions, or unauthorized access.
- Review AI-generated findings and patches before relying on or deploying them.
- Follow applicable laws and responsible-disclosure requirements.
Contributions are welcome:
- Fork the repository.
- Create a feature branch.
- Add or update tests with your changes.
- Submit a pull request.
Use GitHub Issues for bug reports and feature requests.
CAIO is released under the MIT License.
