clauzz-cli

module
v0.3.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: MIT

README

clauzz

clauzz banner

Release CI Go Report Card

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-... (demo).
  • Resume in one keypress: a picker grouped by directory; enter drops you back in via claude --resume, in the right project. / fuzzy-filters, a reveals unregistered sessions to adopt (demo).
  • Move context between sessions: the DLQ session knows things your new session needs? /clauzz:context hands them over (demo).
  • Tag an initiative: one piece of work spans several repos; tag its sessions and pull them all as one combined digest (demo).
  • Search everything: "which session talked about idempotency keys?" answered from every transcript on your machine (demo).
  • Never lose context: registered sessions are snapshotted to an archive, so their context outlives Claude's transcript cleanup.
  • 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

Requires Claude Code installed and logged in. Linux and macOS only (resume uses exec(2)).

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.

Other install methods

With Go installed:

go install github.com/ghulammuzz/clauzz-cli/cmd/clauzz@latest

Build from source:

go build -o clauzz ./cmd/clauzz && mv clauzz /usr/local/bin/

Slash commands only (if you skipped the install script):

mkdir -p ~/.claude/commands/clauzz && cp claude-command/*.md ~/.claude/commands/clauzz/

Quick start

Work as usual, then name the session before you leave - typed inside Claude Code:

/clauzz:add-session Payment Fix

Next day, back in the terminal:

clauzz    # pick "Payment Fix", hit enter, keep going

A fresh session needs what the old one knows? Inside Claude Code (id prefix from clauzz ls):

/clauzz:context 8b91 retry decisions

That is the whole loop. Once sessions pile up, clauzz search {query} finds the one you forgot to name.

Usage

CLI
Command What it does
clauzz Interactive picker; enter resumes the session via claude --resume in its directory. / fuzzy-filters, a also shows unregistered sessions; picking one registers it under its AI title and resumes
clauzz --dasp Same picker, but resumes with --dangerously-skip-permissions (Claude asks for no tool permissions; use with care)
clauzz add {name} Register the current Claude session under a custom name
clauzz list List registered sessions grouped by directory (ls works too); --all includes unregistered ones, --tag filters
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); --tag digests a whole initiative at once
clauzz tag {id-prefix} {tag...} Tag a session; untag removes. One initiative often spans repos, tags tie it together
clauzz rename {id-prefix} {new-name} Rename a registered session
clauzz rm {id-prefix} Remove a session from the registry (delete works too)
clauzz archive Snapshot all registered sessions so their context survives Claude's transcript cleanup
clauzz prune Drop [gone] entries; archived ones are kept unless --all

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; --tag {tag} loads a whole initiative

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.

clauzz add-session demo

Pick a session with clauzz

Run clauzz, arrow or j/k to the session you want, hit enter, and you are back in it - in the right directory. / fuzzy-filters the list; a reveals unregistered sessions to adopt.

clauzz picker demo

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:

clauzz context demo

Group an initiative with tags

One piece of work rarely stays in one repo: the consumer lives in shop-api, the fix touches shop-web too. Tag the related sessions and pull the whole initiative as a single combined digest with clauzz context --tag (or /clauzz:context --tag {tag} inside Claude Code):

clauzz tags demo

Search across every session

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

clauzz search demo

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}/.
  • Claude Code eventually deletes old transcripts. clauzz add snapshots the conversation to ~/.clauzz/archive (refresh anytime with clauzz archive), so clauzz context keeps working after cleanup; such entries show [archived].
  • Entries whose transcript was deleted without an archive 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.
  • Tags group sessions across directories: clauzz tag 3f2a payments-rework on each related session, then clauzz context --tag payments-rework (also via /clauzz:context --tag payments-rework) pulls the whole initiative into the current session.
Context transfer flow

How /clauzz:context moves context from session B into the active session A:

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,<br/>drop tool calls, results, thinking, sidechains
    CLI-->>A: digest (title, all user prompts,<br/>last 20 messages, transcript path)
    Note over A: digest becomes part of<br/>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,<br/>ready to work with it

Uninstall

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

Directories

Path Synopsis
cmd
clauzz command
internal
archive
Package archive persists filtered copies of session transcripts under ~/.clauzz/archive so their context survives Claude Code's transcript cleanup.
Package archive persists filtered copies of session transcripts under ~/.clauzz/archive so their context survives Claude Code's transcript cleanup.
claudedir
Package claudedir resolves Claude Code's on-disk session storage.
Package claudedir resolves Claude Code's on-disk session storage.
cli
Package cli wires the clauzz CLI.
Package cli wires the clauzz CLI.
search
Package search finds sessions by full-text query across every Claude Code transcript on the machine, registered in clauzz or not.
Package search finds sessions by full-text query across every Claude Code transcript on the machine, registered in clauzz or not.
store
Package store persists the clauzz registry: the mapping from Claude session IDs to user-chosen names, stored as JSON at ~/.clauzz/sessions.json.
Package store persists the clauzz registry: the mapping from Claude session IDs to user-chosen names, stored as JSON at ~/.clauzz/sessions.json.
transcript
Package transcript parses Claude Code session jsonl files into the compact digest that /clauzz:context injects into another session.
Package transcript parses Claude Code session jsonl files into the compact digest that /clauzz:context injects into another session.
tui
Package tui implements the interactive session picker.
Package tui implements the interactive session picker.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL