curl -fsSL https://e-rail.github.io/ccmgr/install.sh | bash
Installs to ~/.local/bin by default. Set CCMGR_INSTALL_DIR to choose another destination.
CLAUDE CODE SESSION MANAGER
Browse, live-filter, rename, delete, and resume Claude Code sessions with age, Git branch, and log-size context. No account, no indexer, no background service.
v0.1.3 reads age, Git branch, and log size directly from each session.
01 / INSTALL
Use the E-Rail mirror, npm, or build from source. The install script selects the matching macOS or Linux release for x86_64 or ARM64.
curl -fsSL https://e-rail.github.io/ccmgr/install.sh | bash
Installs to ~/.local/bin by default. Set CCMGR_INSTALL_DIR to choose another destination.
npm install -g ccmgr
The npm package downloads the native release matching the package version and exposes the ccmgr command.
cargo install --path .
Clone the repository and compile the release locally with the Rust toolchain.
02 / THE LOOP
ccmgr keeps the interaction deliberately small: select a scope, narrow the list, then resume or maintain the session you need.
Start typing to filter by title. Each row shows relative age, Git branch when present, and JSONL log size.
Press Enter to run claude --resume <id> from the session’s original working directory.
Renaming appends a new ai-title event to the JSONL log, matching Claude Code’s own convention.
Use Tab to move between the current project and every project; all-project rows also show the recorded working directory.
Ctrl+D asks first, then removes the session log and its file-history sidecar directory. Rename, delete, and resume statuses clear after three seconds.
Run ccmgr update to fetch the latest matching release and atomically replace the current non-npm binary.
03 / INTERNALS
No database, account, or resident process sits between ccmgr and the session files Claude Code already maintains.
~/.claude/projectsLocate project directories in Claude Code’s local session store.
*.jsonlRead titles, working directories, IDs, Git branches, modification times, and log sizes.
claude --resumeHand the selected session back to the Claude Code CLI.
The binary scans on launch and when the session list needs to reload.
ccmgr reads the existing JSONL logs instead of maintaining a second session database.
The original working directory is used when handing a session back to the CLI.
The Rust release profile enables size optimization, LTO, stripping, and one codegen unit.
04 / KEYBINDINGS
The whole manager is designed around a short, visible set of terminal controls.
OPEN SOURCE · MIT
Read the Rust source, inspect the installer, or open the terminal and pick up where you left off.