Skip to content

The workspace layer for Claude Code

Claude Code is excellent inside a session and forgetful between them. Every new session starts from nothing, old sessions are hard to find, and the only way to give the agent context is a CLAUDE.md that grows until it costs more than it is worth.

claudectl sits in front of Claude Code and fixes that. Pick a project, see every session you have ever had in it, and launch with the model, effort, permissions and context you meant. Underneath, it maintains a semantic memory of the codebase and injects only the part relevant to what you just asked.

It is a terminal UI and a desktop GUI over the same engine — use whichever you prefer.

claudectl dashboard

Install it See what it does

Why claudectl

  • Intelligent memory, not a memory dump — task-scoped, token-budgeted injection at the launcher: a micro-index always on (≤250 tokens), per-module detail loaded only when Claude touches those files, and an optional per-prompt hook that injects just the subgraph relevant to what you asked.
  • It learns from every session — durable lessons distilled from transcripts, human-reviewed, injected when relevant, decayed when stale.
  • See your architecture — an animated, expandable dependency graph that opens at the project level and drills down to single files.
  • Auto-solves common Claude Code pain — pre-launch health checks, context-loss insurance after /compact, permission-fatigue killer, token-burn advisor, daily usage tracking.
  • Workspace, not chats — browse, search, tag, fork, resume and archive every session across every project and account.
  • Zero runtime dependencies — pure Python standard library; uses your existing Claude Code auth.

How it saves tokens

Without claudectl a big project either starves the agent or floods it. claudectl spends the minimum tokens for the maximum relevant context:

Flat always-on cost The CLAUDE.md block is a ≤250-token index, not a full dump, and does not grow as the codebase grows.
On-demand detail Per-module knowledge lives in path-scoped .claude/rules/, loaded only when Claude touches those files.
Task-scoped injection The optional prompt hook injects only the subgraph your prompt needs, budgeted to ≤600 tokens.
No stale weight Superseded facts are invalidated, dead entities evicted.
Cheaper model for grunt work Plan → Execute runs the expensive model once for the plan and a cheap one for execution.

Read the token economy →

The architecture graph

Architecture graph

A self-contained interactive HTML view of your project's real dependency structure, opened straight from the session browser. More →

Find what you need

Install pipx, pip, checkout, the Claude Code plugin, GUI setup
Usage every screen, every key binding, the command line
Features one page per area — the whole surface at a glance
Project memory · Architecture graph · Plan → Execute the three things nothing else does
Context hand-off resume a full session in a new one — or under another account, when one runs out
Multiple accounts · MCP servers · Agents & skills · Hooks Claude Code integration
Desktop GUI · Status line & failover the two interfaces and what runs under them
Token economy · Project health spend less, break less
Reference · API reference where everything is stored, and every HTTP route
FAQ · Compare · Troubleshooting honest answers, including what it does not do

Terminal or desktop, same engine

Terminal UI

Desktop GUI

Full feature list Frequently asked questions