https://github.com/ghulammuzz/clauzz-cli
Workspace context manager for AI coding agents: name your Claude Code sessions, resume them in one keypress, and carry context across sessions
https://github.com/ghulammuzz/clauzz-cli
ai-agents claude-code cli context-management developer-tools golang productivity tui
Last synced: about 8 hours ago
JSON representation
Workspace context manager for AI coding agents: name your Claude Code sessions, resume them in one keypress, and carry context across sessions
- Host: GitHub
- URL: https://github.com/ghulammuzz/clauzz-cli
- Owner: ghulammuzz
- License: mit
- Created: 2026-07-10T04:24:34.000Z (5 days ago)
- Default Branch: main
- Last Pushed: 2026-07-13T17:59:52.000Z (2 days ago)
- Last Synced: 2026-07-14T04:32:09.154Z (1 day ago)
- Topics: ai-agents, claude-code, cli, context-management, developer-tools, golang, productivity, tui
- Language: Go
- Size: 2.32 MB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# clauzz

[](https://github.com/ghulammuzz/clauzz-cli/releases/latest)
[](https://github.com/ghulammuzz/clauzz-cli/actions)
[](https://goreportcard.com/report/github.com/ghulammuzz/clauzz-cli)
[](LICENSE)
**Workspace context manager for AI coding agents.**
## Why
clauzz was born from a very normal week at work: a bunch of microservices, and a separate Claude Code session for each fire.
One session chasing a Kafka DLQ, one debugging a payment webhook that double-charges, one staring at replica lag.
Then Monday comes, you run `claude -r`, and it's a wall of UUIDs.
Which one was the webhook fix? No idea. You open three wrong sessions before you find it.
clauzz fixes that loop:
- **Name your sessions**: `Task Kafka DLQ` instead of `3f2a8c1e-...`.
- **Resume in one keypress**: a picker grouped by directory; enter drops you back in via `claude --resume`, in the right project.
- **Search everything**: "which session talked about idempotency keys?" answered from every transcript on your machine.
- **Move context between sessions**: the DLQ session knows things your new session needs? `/clauzz:context` hands them over.
- **All without leaving Claude Code**: register, list, and pull context via slash commands.
Claude Code today; adapters for other agents are on the roadmap.

## Install
Linux / macOS:
```sh
curl -sSL https://clauzz.muzz-ai.com/install.sh | sh
```
The script grabs the latest release for your platform, checks the sha256, installs the binary, and drops in the Claude Code slash commands.
Windows is not supported (resume uses `exec(2)`).
Other install methods
With Go installed:
```sh
go install github.com/ghulammuzz/clauzz-cli/cmd/clauzz@latest
```
Build from source:
```sh
go build -o clauzz ./cmd/clauzz && mv clauzz /usr/local/bin/
```
Slash commands only (if you skipped the install script):
```sh
mkdir -p ~/.claude/commands/clauzz && cp claude-command/*.md ~/.claude/commands/clauzz/
```
## Usage
### CLI
| Command | What it does |
|---------|--------------|
| `clauzz` | Interactive picker; enter resumes the session via `claude --resume` in its directory |
| `clauzz add {name}` | Register the current Claude session under a custom name |
| `clauzz list` | List registered sessions grouped by directory (`ls` works too) |
| `clauzz search {query}` | Full-text search across every session on the machine |
| `clauzz context {id-prefix} [focus...]` | Print the context digest of a session (powers `/clauzz:context`) |
| `clauzz rename {id-prefix} {new-name}` | Rename a registered session |
| `clauzz rm {id-prefix}` | Remove a session from the registry (`delete` works too) |
| `clauzz prune` | Drop all `[gone]` entries whose transcript was deleted |
Session ID prefixes need at least 4 characters.
### Slash commands (inside Claude Code)
| Command | What it does |
|---------|--------------|
| `/clauzz:add-session {name}` | Register the current session under a custom name |
| `/clauzz:list` | Show registered sessions |
| `/clauzz:context {id-prefix} [focus query]` | Load another session's context into this one |
Example:
```
$ clauzz ls
/Users/demo/code/shop-api
Task Kafka DLQ 3f2a8c1e 2026-07-10 16:15
Fix payment webhook 8b91d4f7 2026-07-09 21:00
/Users/demo/code/shop-web
Checkout revamp e15fb3c8 2026-07-10 23:45
$ clauzz rm 8b91
removed "Fix payment webhook" (8b91d4f7) in /Users/demo/code/shop-api
```
## Demos
### Register a session from Claude Code
Working on something worth coming back to? Name it before you forget:
1. In your session, type `/clauzz:add-session {name}`, e.g. `/clauzz:add-session Demo Session`.
2. Claude confirms: `Session "Demo Session" registered -> 84409ceb in ...`.
3. From now on it shows up in `clauzz ls` and the picker under that name.
Re-running `/clauzz:add-session` in the same session just renames it.

### Search across every session
"Which session talked about kafka?" `clauzz search` answers from every transcript on the machine, registered in clauzz or not.

### Pull context from another session
You are in a fresh session, but the decisions you need live in last week's DLQ session.
Type `/clauzz:context {id-prefix} [what you want from it]` and Claude loads a digest of that session, greps its transcript for your focus topic, and reports back:

## How it works
- The registry is a single JSON file at `~/.clauzz/sessions.json`; removing an entry never touches the Claude session itself.
- `add` resolves the current session from `$CLAUDE_SESSION_ID`, falling back to the newest transcript in `~/.claude/projects/{encoded-cwd}/`.
- Entries whose transcript was deleted show `[gone]` and cannot be resumed; clean them up with `clauzz rm` or `clauzz prune`.
- The context digest carries the source session's title, every user prompt, and the last 20 messages (truncated).
With a focus query, Claude also greps the source transcript for that topic and loads only the relevant parts.
### Context transfer flow
How `/clauzz:context` moves context from session B into the active session A:
```mermaid
sequenceDiagram
actor User
participant A as Claude session A
participant CLI as clauzz CLI
participant Reg as ~/.clauzz/sessions.json
participant B as Session B transcript (jsonl)
User->>A: /clauzz:context {id-prefix-B}
A->>CLI: clauzz context {id-prefix-B}
CLI->>Reg: resolve prefix to session B entry
CLI->>B: parse transcript
Note over CLI,B: keep user prompts + assistant text,
drop tool calls, results, thinking, sidechains
CLI-->>A: digest (title, all user prompts,
last 20 messages, transcript path)
Note over A: digest becomes part of
session A's context
opt focus query given, or digest not enough
A->>B: Read/Grep specific parts of the transcript
B-->>A: only the details needed
end
A-->>User: summary of loaded context,
ready to work with it
```
## Uninstall
```sh
curl -sSL https://clauzz.muzz-ai.com/uninstall.sh | sh
```
Removes the binary and the slash commands.
Your session registry at `~/.clauzz` survives; add `| sh -s -- --purge` if you want it gone too.
## License
[MIT](LICENSE)