Visual platform for building, running, and observing CrewAI agents. No YAML. No direct CrewAI dependency in the UI.
| Layer | Technology |
|---|---|
| Frontend | Vite 5 + React 18 + TypeScript 5 + Tailwind CSS 3 + TanStack Query v5 |
| Backend | FastAPI + SQLAlchemy + SQLite |
| Agent runtime | CrewAI ≥1.0 (engine/) |
| Deploy | Docker (single container) |
- AI Wizard — generates complete projects (agents + tasks) from a natural language description
- Post-execution approval flow — first task ("Preliminary Proposal") pauses execution and waits for user sign-off before continuing
- Edit & retry — user can edit a proposal output before approving it
- Task-level checkpoints — pause and resume mid-run at any task boundary
- Result downloads — per-step
.mddownload and a full.zipof all steps - Real-time streaming — execution events transmitted via SSE
- Observability — per-agent steps with token usage, status, and expandable output
- Knowledge bases — PDFs, text, URLs indexed with BM25 + native CrewAI RAG
- Memory — STM / LTM / Entity memory scoped per project via ChromaDB
- Guardrails — per-task output validators
- Agent training —
crew.train()via dedicated endpoint - Triggers — schedule or webhook-triggered runs
- Agent templates — reusable agent definitions
- Public API tokens — per-project API tokens for external access
- Langfuse tracing — optional, zero-config via env vars
- Preflight checks — structural validation + tool instantiation before a run
- Node.js 20+
- Python 3.11+
- Docker (production only)
# Install dependencies
cd apps/web && npm install
cd ../api && pip install -r requirements.txt
pip install -e ../../engine/
# Start backend + frontend in parallel
bash scripts/dev.sh- Frontend: http://localhost:5173
- API: http://localhost:8000
- API docs: http://localhost:8000/docs
Keys are stored in ~/.crewbuilder/.env and loaded automatically at startup:
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
SERPER_API_KEY=...
They can also be configured from UI → Settings → API Keys.
cd apps/api
uvicorn app.main:app --reload --port 8000cd apps/web
npm run devdocker compose -f docker/docker-compose.yml up -dApp available at http://localhost:8000
bash scripts/build.sh├── apps/
│ ├── web/ # React frontend (Vite + Tailwind)
│ └── api/ # FastAPI backend
├── engine/ # crewbuilder-engine (Python package)
├── data/ # SQLite DB (gitignored)
├── scripts/ # dev.sh, build.sh, start.sh
└── docker/ # Dockerfile + docker-compose.yml
GET /api/projects
POST /api/projects
GET /api/projects/:id
DELETE /api/projects/:id
GET /api/projects/:id/agents
POST /api/projects/:id/agents
DELETE /api/projects/:id/agents/:agent_id
GET /api/projects/:id/tasks
GET /api/projects/:id/runs
GET /api/projects/:id/preflight
GET /api/projects/:id/export/python
POST /api/projects/:id/train
POST /api/projects/:id/api-token
DELETE /api/projects/:id/api-token
GET /api/projects/:id/evaluations/summary
GET /api/projects/:id/feedback
POST /api/projects/:id/feedback
POST /api/projects/:id/feedback/:feedback_id/approve
POST /api/runs
GET /api/runs/recent
GET /api/runs/:id
GET /api/runs/:id/events
GET /api/runs/:id/steps
GET /api/runs/:id/stream # SSE
GET /api/runs/:id/checkpoint
POST /api/runs/:id/approve # Approve a task checkpoint
POST /api/runs/:id/approve-output # Approve proposal and continue
POST /api/runs/:id/resume
POST /api/runs/:id/cancel
POST /api/runs/:id/replay
GET /api/tools
GET /api/tools/connections
GET /api/tools/custom
POST /api/tools/config
GET /api/knowledge
POST /api/knowledge/upload
POST /api/knowledge/text
POST /api/knowledge/url
POST /api/knowledge/search
GET /api/knowledge/:id/preview
POST /api/knowledge/:id/reindex
PATCH /api/knowledge/:id
DELETE /api/knowledge/:id
GET /api/memory
DELETE /api/memory
POST /api/ai/generate-project
POST /api/ai/generate-agent
POST /api/ai/refine-prompt
POST /api/ai/review-tasks
POST /api/ai/fix-tasks
GET /api/skills
POST /api/skills
PATCH /api/skills/:id
DELETE /api/skills/:id
GET /api/triggers
PATCH /api/triggers/:id
DELETE /api/triggers/:id
GET /api/agent-templates
POST /api/agent-templates
DELETE /api/agent-templates/:id
GET /api/settings/llm-keys
GET /api/settings/local-path
GET /api/settings/aider
GET /api/settings/runtime-guardrails
GET /api/settings/tool-defaults
GET /api/events
GET /api/health
| Feature | Status |
|---|---|
| Domain models + schemas | ✅ |
| SQLite DB + Alembic migrations | ✅ |
| Full REST API | ✅ |
| Full UI (Observatorio design) | ✅ |
| Engine + compiler | ✅ |
| CrewAI integration | ✅ |
| Async execution + SSE streaming | ✅ |
| AI Wizard (generate-project) | ✅ |
| Post-execution approval flow | ✅ |
| Task checkpoints + resume | ✅ |
| ZIP download of results | ✅ |
| Langfuse tracing (optional) | ✅ |
| Agent training | ✅ |
| Triggers | ✅ |
| Agent templates | ✅ |
| Public API tokens | ✅ |
| Run diff (compare outputs across runs) | ⏳ spec ready |
| Docker (optimized single-container build) | ⏳ pending |
