Skip to main content

ccmgr — Claude Code session manager

A terminal UI to navigate, resume, and start Claude Code sessions across all your projects from one place. ccmgr lives in the left pane of a tmux window; the right pane shows the currently-active claude. Each claude session runs as its own detached tmux session in the background, so switching between sessions preserves all in-progress work — no responses or tool calls are interrupted.

Install

pip install ccmgr

Requires Python 3.12+ and tmux on PATH.

Run

ccmgr

If you're not already inside a tmux session, ccmgr will launch one automatically (tmux new-session -A -s ccmgr). The right pane shows the currently-active claude; each claude session also exists as a detached tmux session in the background. Switching sessions in ccmgr re-attaches the right pane to a different background claude.

Keys

Key Action
/ Move selection within the focused pane
Tab / Shift-Tab Cycle focus through the Projects, Sessions, and Running panes (focused pane gets a bright cyan border)
Enter Resume or start the selected session — claude opens (or re-attaches) in the right pane
Ctrl-B then Move focus back to ccmgr from the right pane
Ctrl-B then Move focus to the claude pane
/ Filter the focused pane
i Popup with the focused session's details (title, project, msgs, tokens)
? Full help popup
q or Ctrl-C Quit (kills the right tmux pane + auto-launched tmux session)

In the right pane, keystrokes go directly to claude — full color, full TUI. Tasks keep running even when you switch the right pane to another session, because each claude lives in its own detached tmux session. Press Ctrl-B ← to return to ccmgr on the left.

How it works

ccmgr reads ~/.claude/projects/* (Claude's per-project session history) and lists everything. Pressing Enter on a session does two things: (1) if a detached tmux session named cc-<short_id> running claude --resume <id> doesn't already exist, ccmgr creates one with tmux new-session -d; (2) ccmgr's right pane runs tmux attach -t cc-<short_id> so you see and interact with that claude. Switching sessions just respawns the right pane to attach to a different background tmux session — the detached claudes keep running with all their state intact.

Roadmap

Planned for future releases:

  • Cross-session search across projects
  • Cost and token-usage dashboard
  • Mouse support
  • Renaming and closing individual sessions from within ccmgr

Issues and pull requests welcome.

Configuration

Optional config at ~/.config/ccmgr/config.toml:

[claude]
binary = "claude"

[live]
poll_interval_ms = 1000
live_badge_seconds = 60

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ccmgr-0.1.5.tar.gz (28.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ccmgr-0.1.5-py3-none-any.whl (29.6 kB view details)

Uploaded Python 3

File details

Details for the file ccmgr-0.1.5.tar.gz.

File metadata

  • Download URL: ccmgr-0.1.5.tar.gz
  • Upload date:
  • Size: 28.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ccmgr-0.1.5.tar.gz
Algorithm Hash digest
SHA256 0dcada5a88fef5b73967beaf052f2fecaa54743b8fd2ff8879bf36d157ff89d7
MD5 efab79f066d9831987e31342880f7ef0
BLAKE2b-256 3aabde995a312ea9521b8df08dfb3ba31b884924abdece118eae730d06dd130b

See more details on using hashes here.

Provenance

The following attestation bundles were made for ccmgr-0.1.5.tar.gz:

Publisher: release.yml on regmi-saugat/ccmgr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ccmgr-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: ccmgr-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 29.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ccmgr-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e355f02ca3f546c6ba88ee7e906cf6a6d769565a934e934f0c93fe5f543b1119
MD5 5be93de250aa9fe3b5e8982ea3495770
BLAKE2b-256 8906cf51db21b075e2d587bb0fc6adf9d0d898499b459b4e33544b17f03190a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for ccmgr-0.1.5-py3-none-any.whl:

Publisher: release.yml on regmi-saugat/ccmgr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 files

0.1.4

2 files

0.1.3

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page