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.

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. |
The architecture graph¶

A self-contained interactive HTML view of your project's real dependency structure, opened straight from the session browser.
Terminal or desktop, same engine¶

