Skip to content

claudectl GUI API

Generated by tools/gen_api_docs.py from the route tables in gui_api.py and gui.py — do not edit by hand. tests/test_parity_gate.py fails when this file is out of date.

Every route is served from loopback and guarded by gui._guard(): an allowlisted Host, no browser fetch metadata, and a per-run token in X-Claudectl. Parameters named enc, sid and cfgdir are validated before a handler sees them; a missing or malformed one is a 400.

GET

Route Handler What it does
/api/accounts api_accounts_get
/api/accounts/sync api_accounts_sync The per-account provisioning diff — read-only, nothing is written.
/api/add-dirs api_add_dirs_get
/api/agents/library api_agents_library
/api/agents/read api_agent_read
/api/agents/session api_agents_session_get
/api/automode api_automode Auto mode, per account: the mode sessions start in, the trusted-
/api/automode/config api_automode_config The rules the classifier actually uses, straight from the CLI.
/api/background-agents api_background_agents
/api/brief api_brief What to work on, and what changed since the last session.
/api/cc-settings api_cc_settings_get Claude Code's own settings.json, per account, with the schema that says
/api/checkpoint/diff api_checkpoint_diff
/api/checkpoints api_checkpoints Read-only snapshot index for one session.
/api/claude-md api_claude_md_get The file, plus what it is made OF.
/api/client/project api_client_project Claude Code's own record for one project: cost, tokens, MCP approval
/api/client/usage api_client_usage What is actually being used versus carried as dead weight.
/api/conventions api_conventions Conventions shared across projects, and the global CLAUDE.md block they
/api/ctxaudit api_ctxaudit
/api/ctxaudit/prune-preview api_ctxaudit_prune_preview What a prune would remove. The GUI destroyed without asking while the
/api/dashboard api_dashboard Home-screen aggregate: today/week usage, live jobs, MCP status,
/api/deny api_deny_scan
/api/disk api_disk
/api/extra-paths api_extra_paths_get
/api/global-claude-md api_global_claude_md The account-global CLAUDE.md Claude reads in every session.
/api/graph-lite api_graph_lite Compact project shape for the ambient motion layer.
/api/health api_health Project health — 229 lines of checks that were a README headline and had
/api/history api_history Every replaced version claudectl still holds, newest first.
/api/history/diff api_history_diff
/api/hooks api_hooks_get Every hook in ONE account, enabled and disabled alike.
/api/inject/sessions api_inject_sessions
/api/lessons api_lessons_get
/api/loop-md api_loop_md_get
/api/loops api_loops Loops claudectl started, with live state read off the process and the
/api/mcp api_mcp_get
/api/mcp/detail api_mcp_detail claude mcp get <name> — the detail the TUI shows and the GUI did not.
/api/memory-map api_memory_map
/api/memory/active api_memory_active Project paths whose memory is being refreshed right now (scan-lock held)
/api/memory/auto api_memory_auto_get Per-project auto-memory state for the management UI.
/api/memory/entity api_memory_entity One fact in the graph, in full: what it means and what cites it.
/api/memory/progress api_memory_progress Live progress, and — once the lock clears — HOW the last run ended.
/api/memory/state api_memory_state Everything the graph knows about itself: size, reach, spend, queue.
/api/omniroute/models api_omniroute_models Models that can actually serve a session, not the whole routable catalog.
/api/omniroute/status api_omniroute_status
/api/output-style/read api_output_style_read
/api/output-styles api_output_styles Every style, WHERE the active one is pinned, and the starters to copy.
/api/path-complete api_path_complete Live folder auto-completion for the open-project modal: same pure
/api/plan/last api_plan_last Read back /.claudectl/plan-latest.md, split into the task
/api/plugins api_plugins Marketplaces, installed plugins, and what each one ships — for ONE
/api/plugins/provenance api_provenance {kind: {name: plugin_key}} — which rows in the skill/agent/hook managers
/api/prompt-history api_prompt_history
/api/recall-preview api_recall_preview
/api/search-index api_search_index
/api/session/archived api_archived
/api/session/changed-files api_changed_files
/api/session/meta api_session_meta
/api/session/tags api_tags_get
/api/sessions _api_sessions
/api/skills api_skills_get Every skill Claude Code can load, by scope, with its real usage.
/api/skills/read api_skill_read
/api/state _api_state
/api/statusline api_statusline Install state plus a live preview rendered from real numbers.
/api/system-prompt api_system_prompt_get
/api/transcript api_transcript
/api/usage/daily api_usage_daily
/api/usage/plan api_usage_plan
/api/usage/project api_usage_project
/api/usage/projects api_usage_projects
/api/versions api_versions claudectl and the installed Claude Code against what has been released,
/api/worklog api_worklog_get
/api/workspace-status api_workspace_status The freshness checks as DATA, not as pre-rendered terminal lines.
/api/worktree/diff api_worktree_diff
/api/worktrees api_worktrees The board: every repo under this project, its worktrees, and the session

POST

Route Handler What it does
/api/accounts/action api_accounts_post
/api/accounts/terminal api_accounts_terminal login / parallel — spawn a terminal for the account (argv-list form).
/api/add-dirs api_add_dirs_set
/api/agents/create api_agent_create
/api/agents/delete api_agent_delete
/api/agents/session api_agents_session
/api/automode api_automode_set Set the starting mode and/or the environment entries for ONE account.
/api/brief/dismiss api_brief_dismiss Stop showing one scan finding. Remembered across re-scans.
/api/cc-settings api_cc_settings_set
/api/claude-md/scaffold api_claude_md_scaffold
/api/conventions/pin api_conventions_pin
/api/conventions/sync api_conventions_sync
/api/ctxaudit/compact api_ctxaudit_compact
/api/ctxaudit/protect api_ctxaudit_protect Fence a section of CLAUDE.md so AI compression can never rewrite it.
/api/ctxaudit/prune api_ctxaudit_prune
/api/deny/apply api_deny_apply
/api/disk/gc api_disk_gc
/api/extra-paths api_extra_paths_set
/api/global-claude-md api_global_claude_md_save Atomic, because Claude Code reads this file every session.
/api/health/allowlist api_health_allowlist
/api/history/restore api_history_restore
/api/hooks/purge api_hooks_purge
/api/hooks/remove api_hooks_remove
/api/hooks/template api_hooks_template
/api/hooks/toggle api_hooks_toggle Enable or disable one hook, without deleting it.
/api/inject/launch api_inject_launch Write the context file and launch a new session in a new console
/api/job api_job_start
/api/launch _api_launch
/api/lessons api_lessons_post
/api/loop-md api_loop_md_set
/api/loops/start api_loop_start Start a loop — in a session, or in the OS scheduler.
/api/loops/stop api_loop_stop
/api/mcp/add api_mcp_add Mirrors mcp._mcp_add_with_extras: -e env vars for stdio, -H headers for
/api/mcp/remove api_mcp_remove
/api/memory/auto api_memory_auto_set Toggle a project's auto-memory opt-in (and optionally the interval).
/api/memory/autoscan api_memory_autoscan Called each time a project is opened. Kick off an in-process memory
/api/memory/toggles api_memory_toggles The two memory flags the GUI could only print, plus the recall budget.
/api/open-editor api_open_editor
/api/open-path api_open_path Resolve a typed folder into a launchable project — validate it's an
/api/output-style/delete api_output_style_delete
/api/output-style/install api_output_style_install Copy a claudectl starter into the user or project scope.
/api/output-style/save api_output_style_save
/api/output-style/select api_output_style_select
/api/plan/edit api_plan_edit
/api/plugins/install api_plugin_install Install into every account by default, each behind the review gate.
/api/plugins/marketplace/add api_plugin_marketplace_add
/api/plugins/marketplace/remove api_plugin_marketplace_remove
/api/plugins/remove api_plugin_remove
/api/project/hide api_project_hide Archive a project out of the project lists, or bring it back.
/api/rename _api_rename
/api/session/archive api_session_archive
/api/session/delete api_session_delete
/api/session/export api_session_export
/api/session/restore api_session_restore
/api/session/tags api_tags_set
/api/settings _api_settings
/api/skills/create api_skill_create
/api/skills/install api_skill_install Install into the project, or into the personal scope of every account —
/api/skills/library api_skills_library Copy a template, project or plugin skill into the PERSONAL scope of every
/api/skills/remove api_skill_remove Delete a skill folder. A PERSONAL one is removed from every account that
/api/statusline api_statusline_set cfgdir targets one account; omitting it means every account, which is
/api/system-prompt api_system_prompt_set
/api/worklog api_worklog_set Per-project recent-work memory on/off.
/api/worktree/merge api_worktree_merge Merge a worktree branch, behind the standard approval gate.

Job routes

These are matched by prefix rather than by table lookup.

Route What it does
GET /api/job/<id> Poll a job: status, messages, gate
POST /api/job/<id>/decide Answer an approval gate
POST /api/job/<id>/cancel Cancel a running job