Built by ZafTech · Read-only · Multi-agent · Platform-agnostic
A multi-agent AI system that audits your cloud infrastructure, CI/CD pipelines, and code repositories, then generates a prioritized executive security report — all without ever writing to or modifying your resources.
Six specialized AI agents run in sequence:
| # | Agent | What it scans |
|---|---|---|
| 1 | Cloud Auditor | AWS, Azure, GCP, EKS, AKS, GKE, CloudFormation |
| 2 | Log Analyst | CloudWatch, syslog, application logs |
| 3 | Security Auditor | IAM policies, open ports, hardcoded secrets |
| 4 | CI/CD Guard | Jenkins, GitHub Actions, ArgoCD, CircleCI, Azure DevOps |
| 5 | Code Reviewer | SonarQube, Snyk, Dependabot, Artifactory, Nexus |
| 6 | Report Synthesizer | Aggregates all findings → executive PDF/Markdown report |
Platform credentials are entered in the browser and held in-memory only — never stored, never logged.
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, Tailwind CSS, Lucide Icons |
| Backend | Python 3.12, FastAPI, Uvicorn |
| AI Models | Ollama (local) · Gemini Flash · DeepSeek · Claude Sonnet (UI-selectable) |
| PDF Export | WeasyPrint / ReportLab |
| Container | Docker + Docker Compose |
git clone https://github.com/zaf-tech/observeops.git
cd observeops
cp backend/.env.example backend/.envUse backend/.env only as a runtime environment file required by Docker Compose.
Enter all credentials and API keys in the browser UI during the audit session.
docker compose up --build -d| Service | URL |
|---|---|
| Frontend dashboard | http://localhost:3000 |
| Backend API | http://localhost:8000 |
| API docs (Swagger) | http://localhost:8000/docs |
docker compose down- Python 3.12+
- Node.js 20+
- (Optional) Ollama for local LLM
cd backend
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Do not put keys in .env
uvicorn main:app --reload
# Running at http://localhost:8000cd frontend
npm install
npm run dev
# Running at http://localhost:3000cd backend
python run_audit.py
# Prints the full report to stdout and saves to backend/reports/Choose one of these modes:
git clone https://github.com/your-org/observerops.git
cd observerops
cp backend/.env.example backend/.env
docker compose up --buildDo not place secrets in .env. All credentials are provided in the browser UI.
Then open:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- Swagger docs: http://localhost:8000/docs
Stop services with:
docker compose downBackend terminal:
cd backend
python -m venv .venv
# Windows
.venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env
uvicorn main:app --reloadFrontend terminal:
cd frontend
npm install
npm run devOpen the app at http://localhost:3000.
cd backend
python run_audit.pyThe CLI writes report JSON files to backend/reports/.
All credentials are entered in the browser and kept in-memory for the active audit run.
Enter only the key for the provider you select in AI Model Routing.
Supported providers include:
- Ollama (local; no API key)
- OpenAI
- Anthropic Claude
- Google Gemini
- DeepSeek
- AWS Bedrock
- Groq
- Mistral
- Azure OpenAI
- Cohere
Enter platform credentials in Configure Platforms.
Common credential fields include:
- AWS: access key, secret key, region
- Azure: tenant ID, client ID, client secret, subscription ID
- GCP: service account JSON path / project ID
- GitHub/GitLab/Bitbucket: tokens and org/workspace fields
- Jenkins/Azure DevOps/CircleCI/ArgoCD: URL + token credentials
- Sonar/Snyk/Artifactory/Nexus: server URL and token/user credentials
Do not commit secrets to the repository. Keep .env free of API keys.
- Start backend and frontend (Docker or local).
- Open http://localhost:3000.
- Add platform credentials in Configure Platforms.
- Select scan model and report model.
- Click Generate Audit Report.
- Monitor progress in the live log.
- Read the report and download PDF if needed.
- Open http://localhost:3000
- Configure Platforms — expand any platform accordion and enter its credentials
- AI Model Routing — pick your scan model and report model from the dropdowns
- Click Generate Audit Report
- Watch the real-time skill progress log
- When complete, read the report inline or click Download PDF
| Provider | Best for | Requires |
|---|---|---|
| Ollama (local) | Privacy, free, offline | Ollama running locally |
| Gemini Flash-Lite | Fast low-cost scanning | Gemini API key entered in browser |
| DeepSeek V3 | High quality, low cost | DeepSeek API key entered in browser |
| AWS Bedrock Haiku | AWS-native deployments | AWS credentials in UI |
| Claude Sonnet | Best executive reports | Anthropic API key entered in browser |
Recommended combination: Gemini Flash-Lite for scanning + Claude Sonnet for the final report.
AWS Azure GCP EKS AKS GKE CloudFormation
GitHub GitLab Bitbucket
Jenkins Azure DevOps CircleCI ArgoCD
SonarQube SonarCloud Snyk Artifactory Nexus
Terraform Helm Kubernetes YAML
GET / Health check
GET /api/plugins List all plugins + availability status
POST /api/analyze Start an audit — returns { job_id }
GET /api/status/{job_id} SSE stream of skill progress
GET /api/report/{job_id} Full report as JSON
GET /api/report/{job_id}/pdf Download PDF report
Full interactive docs at http://localhost:8000/docs
cd backend
pytest tests/ -v- Create
backend/plugins/{name}_plugin.pyinheritingBasePlugin - Implement
is_available(),run_scan(),get_metadata() - Add the module path to
_PLUGIN_MODULESinbackend/plugins/__init__.py - Add credential fields to
frontend/components/CredentialPanel.tsx
No agent files change. See .claude/skills/new-plugin/ for the full template.
- Read-only — no plugin ever writes, deletes, or modifies any resource
- In-memory credentials — platform keys entered in the UI are never written to disk or logs
- No credential persistence — each scan gets a fresh in-memory credential set; they are discarded when the request ends
- LLM and platform keys — all keys are provided in UI for the active run; do not store secrets in
.env
observerops/
├── backend/
│ ├── agents/ # 6 platform-agnostic AI skills
│ ├── plugins/ # 1 file per platform (21 plugins)
│ ├── routers/ # FastAPI route handlers
│ ├── base_plugin.py # Abstract plugin interface
│ ├── config.py # LLM provider routing
│ ├── synthesizer.py # Audit orchestrator
│ └── main.py # FastAPI app entrypoint
├── frontend/
│ ├── app/ # Next.js pages
│ └── components/ # UI components
├── docker-compose.yml
└── BUILD_SPEC.md # Full technical specification
Thanks to all contributors who support this project.
MIT © ZafTech