You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bodhiorchard exposes three programmable surfaces. All three run on the same host as the backend.
Surface
Port
What it's for
REST
:8000/api/v1
Day-to-day CRUD: BUDs, orgs, repos, skills, triage, Slack/GitHub webhooks. FastAPI; interactive docs at /docs (Swagger) and /redoc.
MCP
:8001/mcp
Tools for Claude Code and other MCP clients — BUD lifecycle writes, feature registry, code graph, team context. Full list in AI Engines & MCP Server.
WebSocket
:8000/ws/jobs/{job_id}
Live progress for async jobs (repo scans, BUD generation, etc.). Frontend uses useJobSocket; CLI consumers can use wscat.
Key REST endpoints
Endpoint
Description
POST /api/v1/auth/login
JWT authentication
GET /api/v1/buds
List BUD documents
POST /api/v1/buds
Create a new BUD
GET /api/v1/dashboard/tree-data
3D Living-Tree visualization data
GET /api/v1/skills/profiles
Developer skill profiles
POST /api/v1/skills/scan
Trigger repository scan (returns 202 + job_id)
GET /api/v1/triage-sessions
Triage approval queue
POST /api/v1/slack/events
Slack webhook handler
Example: create a BUD via curl
curl -X POST http://localhost:8000/api/v1/buds \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ "title": "Add export-to-PDF on the dashboard", "stage": "bud", "summary": "Users want to share weekly dashboard snapshots with leadership." }'
Async-job pattern
Long-running operations (repo scans, embedding builds, BUD generation) return 202 Accepted with a job_id. Subscribe to ws://localhost:8000/ws/jobs/{job_id} for progress events instead of polling the REST endpoint.