{"name":"LaunchChair Agent API and MCP public docs","version":"v1","securityBoundary":{"public":"This endpoint returns generic documentation only.","private":"Project specs, runs, logs, workspace IDs, token metadata, and user content require authenticated Agent API routes.","tokenSource":"Users can create real agent tokens in LaunchChair Settings -> API Access, or approve launchchair login from the CLI."},"docs":{"home":"https://www.launchchair.io/docs","pages":[{"title":"LaunchChair Agent API","url":"https://www.launchchair.io/docs/agent-api","description":"Public documentation for LaunchChair Agent API authentication, endpoint catalog, token scopes, project loops, run completion, and safe setup boundaries."},{"title":"LaunchChair for Hermes Agent","url":"https://www.launchchair.io/docs/hermes-agent","description":"Set up Hermes Agent with LaunchChair MCP after adding a LaunchChair token to the Hermes environment, then run queued LaunchChair jobs or full project loops."},{"title":"LaunchChair MCP setup","url":"https://www.launchchair.io/docs/mcp","description":"Public LaunchChair MCP setup docs for the local bridge server, MCP tools, runner routing, project loop execution, and phase synthesis links."},{"title":"LaunchChair CLI setup","url":"https://www.launchchair.io/docs/cli","description":"Optional LaunchChair CLI documentation for token setup, Agent API diagnostics, project discovery, project creation, MCP config generation, and local bridge control."},{"title":"LaunchChair for Codex Desktop","url":"https://www.launchchair.io/docs/codex-desktop","description":"Set up LaunchChair with Codex Desktop through MCP so Codex can run LaunchChair project loops against a local repo."},{"title":"LaunchChair for Claude Desktop","url":"https://www.launchchair.io/docs/claude-desktop","description":"Set up LaunchChair with Claude Desktop through MCP and use Claude Code as the local runner for end-to-end repo work."}]},"artifacts":[{"label":"Agent bootstrap AGENTS.md","url":"https://www.launchchair.io/agent-artifacts/AGENTS.md","description":"Public bootstrap instructions for fresh Codex, Claude, and Hermes chats using LaunchChair API or MCP."},{"label":"Claude Skill zip","url":"https://www.launchchair.io/agent-artifacts/dist/launchchair-claude-skill.zip","description":"Downloadable LaunchChair Loop Claude Skill package."},{"label":"Claude Skill SKILL.md","url":"https://www.launchchair.io/agent-artifacts/claude-skill/launchchair-loop/SKILL.md","description":"Source instructions for the LaunchChair Loop Claude Skill."},{"label":"Custom GPT package zip","url":"https://www.launchchair.io/agent-artifacts/dist/launchchair-custom-gpt-package.zip","description":"Downloadable LaunchChair Loop GPT package."},{"label":"Custom GPT instructions","url":"https://www.launchchair.io/agent-artifacts/custom-gpt/instructions.md","description":"Instructions to paste into the GPT Builder."},{"label":"Custom GPT OpenAPI schema","url":"https://www.launchchair.io/agent-artifacts/custom-gpt/openapi.yaml","description":"OpenAPI schema for LaunchChair GPT Actions."},{"label":"Agent artifact manifest","url":"https://www.launchchair.io/agent-artifacts/index.json","description":"Machine-readable list of public LaunchChair agent artifacts."}],"agentBootstrap":{"fileName":"AGENTS.md","url":"https://www.launchchair.io/agent-artifacts/AGENTS.md","note":"Fresh Codex, Claude, and Hermes chats should read this before local repo discovery. LaunchChair product phases can run before a repo exists; Codex and Claude do not inherit Hermes env files. Agents should not ask extra confirmation for normal LaunchChair MCP/API actions that the user requested and the token permits."},"auth":{"type":"bearer","header":"Authorization: Bearer <agent-token>","placeholderToken":"Use the full lc_at token shown once in Settings -> API Access, or run launchchair login for CLI-managed auth."},"scopes":{"all":["projects.read","projects.write","presence.write","runs.claim","runs.complete","loop.continue","choices.write","spec.read","spec.write","buckets.read","buckets.write","build_cards.read","build_cards.write","prompts.read","exports.read"],"defaultMvpTokenProfile":["projects.read","projects.write","presence.write","runs.claim","runs.complete","loop.continue","choices.write","spec.read","buckets.read","buckets.write","build_cards.read","build_cards.write","prompts.read","exports.read"]},"endpoints":[{"id":"project-list","method":"GET","path":"/api/agent/v1/projects?query=:name","scope":["projects.read","prompts.read"],"description":"List projects visible to the current Agent API token, optionally filtered by project name. Use this to resolve user-provided project names before continuing a loop.","risk":"read"},{"id":"project-create","method":"POST","path":"/api/agent/v1/projects","scope":"projects.write","description":"Create a LaunchChair project in the token workspace, optionally save the first Idea Snapshot, and optionally start the project loop.","risk":"write"},{"id":"agent-heartbeat","method":"POST","path":"/api/agent/v1/heartbeat","scope":["presence.write","prompts.read"],"description":"Send heartbeat + client metadata for agent presence.","risk":"read"},{"id":"agent-runs-next","method":"POST","path":"/api/agent/v1/runs/next","scope":["runs.claim","prompts.read"],"description":"Claim next queued run for the current token.","risk":"read"},{"id":"agent-runs-complete","method":"POST","path":"/api/agent/v1/runs/:runId/complete","scope":["runs.complete","prompts.read"],"description":"Complete/fail the claimed run, send structured result payload, and let LaunchChair apply, validate, retry, or queue remediation when configured.","risk":"write"},{"id":"project-loop-continue","method":"POST","path":"/api/agent/v1/projects/:projectId/loop/continue","scope":["loop.continue","prompts.read"],"description":"Inspect the project, optionally save the first Idea Snapshot from ideaSnapshot, optionally apply requested choiceSelections, queue the next agent-actionable bucket or build-card run, and honor an optional completionTarget boundary before returning synthesis or board links.","risk":"write"},{"id":"project-choice-select","method":"POST","path":"/api/agent/v1/projects/:projectId/choices/select","scope":["choices.write","buckets.write"],"description":"Select or change a generated user-choice option, such as wedge, pricing, or feature direction. Supports optionId, optionTitle/optionQuery, and resetDownstream.","risk":"write"},{"id":"project-spec-read","method":"GET","path":"/api/agent/v1/projects/:projectId/spec","scope":"spec.read","description":"Read the full normalized project spec.","risk":"read"},{"id":"project-scorecards-read","method":"GET","path":"/api/agent/v1/projects/:projectId/scorecards","scope":"spec.read","description":"Read Product or Feature validation scorecards, recommended thresholds, and the explicit distinction between scorecards and generated direction-option scores.","risk":"read"},{"id":"project-spec-write","method":"PATCH","path":"/api/agent/v1/projects/:projectId/spec","scope":"spec.write","description":"Write project spec directly (disabled for MVP token profiles).","risk":"write"},{"id":"project-buckets-list","method":"GET","path":"/api/agent/v1/projects/:projectId/buckets","scope":"buckets.read","description":"List phase buckets with current status and metadata.","risk":"read"},{"id":"project-bucket-read","method":"GET","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey","scope":"buckets.read","description":"Read a single bucket payload for the target phase/bucket.","risk":"read"},{"id":"project-bucket-write","method":"PATCH","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey","scope":"buckets.write","description":"Write non-prompt bucket data for the target phase/bucket.","risk":"write"},{"id":"project-bucket-prompt","method":"GET","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey/prompt","scope":"prompts.read","description":"Retrieve compiled prompt text for a bucket.","risk":"read"},{"id":"project-bucket-apply","method":"POST","path":"/api/agent/v1/projects/:projectId/buckets/:phaseKey/:bucketKey/apply-spec-update","scope":"buckets.write","description":"Apply parsed SPEC_UPDATE payload for a bucket run.","risk":"write"},{"id":"project-build-cards-list","method":"GET","path":"/api/agent/v1/projects/:projectId/build-cards","scope":"build_cards.read","description":"List build cards, board state, and latest agent-facing SQL/manual QA checkpoints for the project.","risk":"read"},{"id":"project-build-card-readwrite","method":"PATCH","path":"/api/agent/v1/projects/:projectId/build-cards/:cardId","scope":"build_cards.write","description":"Update build card status, testing metadata, and SQL action completion state.","risk":"write"},{"id":"project-build-card-prompt","method":"GET","path":"/api/agent/v1/projects/:projectId/build-cards/:cardId/prompt","scope":"prompts.read","description":"Retrieve compiled prompt text for a build card.","risk":"read"},{"id":"project-build-card-apply","method":"POST","path":"/api/agent/v1/projects/:projectId/build-cards/:cardId/apply-run","scope":"build_cards.write","description":"Apply build card CHANGELOG_JSON/REQUIRES run output. SQL actions and manual QA can pause the loop for human completion.","risk":"write"},{"id":"project-export-mvp-spec","method":"GET","path":"/api/agent/v1/projects/:projectId/exports/mvp-ai-spec","scope":"exports.read","description":"Download AI-ready MVP markdown export.","risk":"read"},{"id":"project-export-phase","method":"GET","path":"/api/agent/v1/projects/:projectId/exports/phase/:phaseKey","scope":"exports.read","description":"Download phase summary markdown export.","risk":"read"}],"projectDiscovery":{"endpoint":"GET /api/agent/v1/projects?query=LeafLore","mcpTool":"launchchair_list_projects","note":"Use project discovery when LAUNCHCHAIR_PROJECT_ID is blank and the user names a LaunchChair project. Workspace-scoped tokens list workspace projects; project-scoped tokens only list their allowed project IDs."},"loopPayloads":{"continue":{"stopPhaseKey":"Optional phase key to stop at. When omitted, LaunchChair selects the workflow's server-defined default.","completionTarget":"Optional completion boundary. phase_complete preserves the existing loop behavior; build_board_ready stops after supported board generation and before card execution.","ideaSnapshot":"Optional first-bucket seed. When the loop is blocked on foundations/idea_snapshot, pass { projectName, oneLiner, projectType, problem, targetUser, solution, jobToBeDone, whyNow, resetDownstream } to let LaunchChair save the Idea Snapshot and continue.","generatedChoices":"Backward-compatible alias for choiceSelection/choiceSelections. Prefer choiceSelection for new clients. Supported shapes include { domain: 'wedge', optionTitle: 'Local Plant Walk Companion', resetDownstream: true } and { wedge: { optionTitle: 'Local Plant Walk Companion', resetDownstream: true } }. LaunchChair will save the selection, reset downstream generated phases, and emit a choice_selected event naming the selected option.","choiceSelection":"Direct choice changes can also use POST /api/agent/v1/projects/:projectId/choices/select with { domain: 'wedge' | 'pricing' | 'feature', optionId?, optionTitle?, optionQuery?, resetDownstream? }. Do not use generic SPEC_UPDATE apply for user-choice buckets.","stackSetup":"Stack Setup is agent-assisted. The loop can save safe local runner readiness and run the readiness check, but it stops with explicit instructions when GitHub, Vercel, Supabase, or Stripe authorization is required from the user.","agentSetup":"Optional setup evidence from a local bridge, such as { localRepoPath, runnerTarget, clientType }. MCP bridge clients send this automatically."}},"mcp":{"bridgeType":"local stdio","bridgeFiles":["local-bridge.mjs","launchchair-cli.mjs","mcp-bridge-server.mjs","runner-command.mjs","codex-runner.mjs","claude-code-runner.mjs","chatgpt-runner.mjs","claude-runner.mjs"],"bridgeDownloadBase":"https://www.launchchair.io/api/agent/v1/bridge","agentBootstrapFile":"https://www.launchchair.io/agent-artifacts/AGENTS.md","bridgeDownloads":[{"fileName":"local-bridge.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/local-bridge.mjs"},{"fileName":"launchchair-cli.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/launchchair-cli.mjs"},{"fileName":"mcp-bridge-server.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/mcp-bridge-server.mjs"},{"fileName":"runner-command.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/runner-command.mjs"},{"fileName":"codex-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/codex-runner.mjs"},{"fileName":"claude-code-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/claude-code-runner.mjs"},{"fileName":"chatgpt-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/chatgpt-runner.mjs"},{"fileName":"claude-runner.mjs","url":"https://www.launchchair.io/api/agent/v1/bridge/claude-runner.mjs"}],"tools":["launchchair_create_project","launchchair_list_projects","launchchair_get_scorecards","launchchair_status","launchchair_heartbeat","launchchair_claim_next_run","launchchair_complete_run","launchchair_run_once","launchchair_select_choice","launchchair_continue_project"],"projectCreationTool":"launchchair_create_project","primaryLoopTool":"launchchair_continue_project","validationScoreTool":"launchchair_get_scorecards"},"cli":{"optional":true,"npmPackage":"@launchchair/agent","bin":"launchchair","docs":"https://www.launchchair.io/docs/cli","download":"https://www.launchchair.io/api/agent/v1/bridge/launchchair-cli.mjs","note":"MCP-only setup remains supported. The CLI is an optional helper for local token setup, diagnostics, project discovery, retry-safe project creation, MCP config output, and local bridge control.","commands":["login","login --token","logout","whoami","doctor","projects","scorecards","create","continue","run-once","bridge","config","mcp-config","install-agent-md"]},"runnerTargets":{"codex":{"env":{"LC_AGENT_ROUTER_GPT_TARGET":"codex","LC_AGENT_ROUTER_CODEX_TARGET":"codex","LC_AGENT_CODEX_CWD":"/absolute/path/to/the-folder-codex-should-build-into"},"note":"Recommended for Codex Desktop local build loops."},"claude_code":{"env":{"LC_AGENT_ROUTER_GPT_TARGET":"claude_code","LC_AGENT_ROUTER_CODEX_TARGET":"claude_code","LC_AGENT_CLAUDE_CODE_CWD":"/absolute/path/to/the-folder-claude-code-should-build-into"},"note":"Recommended for Claude Desktop end-to-end local builds."},"chatgpt":{"env":{"OPENAI_API_KEY":"YOUR_OPENAI_KEY","LC_AGENT_ROUTER_GPT_TARGET":"chatgpt"},"note":"Useful for strategy/research output; local file edits still need Codex or Claude Code."},"claude":{"env":{"ANTHROPIC_API_KEY":"YOUR_ANTHROPIC_KEY","LC_AGENT_ROUTER_GPT_TARGET":"claude"},"note":"Useful for strategy/research output; local file edits still need Codex or Claude Code."}}}