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 |
/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 |