Skip to content

HTTP API

Served by ./src/runtime/serve.ts (Hono). Default port 7777. All routes are local-only unless you've explicitly bound externally.

Service and page routes

  • GET / — SPA root.
  • GET /projects — projects home.
  • GET /projects/:id/:view — project-scoped shell routes such as /thread, /work, /planner, /settings, and /release.
  • GET /projects/:id/setup — setup wizard for a registered or newly attached project.
  • GET /setup — setup wizard.
  • GET /api/service — service metadata plus registered projects.
  • POST /api/service/select-project — update the foreground project used by legacy unscoped reads.
  • POST /api/service/attach-project — attach a folder into the local service.

Project reads may use the foreground project for legacy screens, but project mutations must identify the project with projectId in the query string or JSON body. Browser code should route project-scoped calls through the project-route helpers when it is operating under /projects/:id/....

Project state

RoutePurpose
GET /api/projectProject detail + tasks + run state.
GET /api/project/inboxHuman-facing inbox items and blockers.
GET /api/project/threadThread surface data for setup, approvals, questions, and live work.
GET /api/project/factsAggregated project facts used by Settings.
POST /api/project/startBoot the orchestrator.
POST /api/project/stopGraceful stop.
GET /api/project/activityActivity summary (counts by status).
GET /api/project/progressTail of PROGRESS.md.
GET /api/project/eventsSSE feed of orchestrator events.
GET /api/project/release-readinessAggregated release-readiness verdict.

Tasks

RoutePurpose
POST /api/project/intakeCreate exploring task. Body: {ask, domain?, title?}.
GET /api/project/task/:idFull task + recent events.
POST /api/project/task/:id/pauseMark blocked.
POST /api/project/task/:id/shelveMark shelved.
POST /api/project/task/:id/unshelveMove shelved work back into the queue.
POST /api/project/task/:id/approve-briefMark the brief as human-approved.
POST /api/project/task/:id/approve-specHuman-approve a spec_review task and advance it to ready.
POST /api/project/task/:id/resumeAppend follow-up to transcript.
POST /api/project/task/:id/resolve-escalationClose an escalation.
POST /api/project/task/:id/answer-questionsSubmit staged answers for co-active questions.

Meta-intake

RoutePurpose
POST /api/project/meta-intakeKick off bootstrap.
POST /api/project/meta-intake/rerunRe-seed the bootstrap flow.
GET /api/project/meta-intake/draftCurrent spec + coordinator draft preview.
POST /api/project/meta-intake/approveMerge draft into ./guildhall.yaml.
POST /api/project/meta-intake/synthesizeCompress draft signals into a cleaner draft.
GET /api/project/bootstrap/statusBootstrap verification status.
POST /api/project/bootstrap/runRun verified bootstrap synchronously.

Project import and learning

RoutePurpose
GET /api/project/workspace-import/statusCurrent import state and queue summary.
GET /api/project/workspace-import/draftDraft import payload for review.
POST /api/project/workspace-importSeed workspace import.
POST /api/project/workspace-import/rerunRe-run import discovery.
POST /api/project/workspace-import/approvePromote reviewed import findings.
POST /api/project/workspace-import/dismissDismiss current import review without deleting it.
GET /api/project/learningEffective project/user learning snapshot, project skill proposals, and builder suggestions.
POST /api/project/learning/actionAccept, dismiss, reset, or make a suggested learning project-wide.
POST /api/project/skill-proposals/actionActivate, dismiss, or reset project skill proposals.

Config & providers

RoutePurpose
GET /api/configProject config (secrets redacted).
GET /api/config/leversCurrent lever positions.
POST /api/config/levers/resetReset lever state and re-seed defaults.
GET /api/config/modelsEffective global/project model assignments for the active provider.
POST /api/config/modelsSave global or project model assignments.
GET /api/project/design-systemCurrent design system or null.
GET /api/project/local-configLocal landing/merge preferences.
POST /api/project/local-configSave local landing/merge preferences.
GET /api/setup/providersDetect providers and current setup status.
POST /api/setup/providers/configSave one provider credential/config, or the machine-wide preferred provider.
POST /api/providers/testSend a provider test request and record verification.
POST /api/providers/disconnectRemove a stored provider credential/config.

Wire format

Most responses are plain JSON. GET /api/project/events is text/event-stream; each event has a type field matching one of the types in ./src/backend-host/wire.ts.

Released under the FLL-1.2 License.