TUI manager for Claude Code sessions and Remote Control.
CLI command: csctl
- Sessions Tab — View, resume (tmux-first:
Enterresumes into the per-project tmux window;tbare-terminal fallback;Rbackgrounds into tmux; ⧉ marks tmux-resident sessions), terminate, and delete Claude Code sessions across all projects; a cleanup submenu (c) prunes empty/short sessions and sweeps orphan artifact directories - Projects Tab — The startup tab: start a new tmux claude session in a project dir (
Enter), start/stop RC servers per project (o/s), toggle auto-start, show running/stopped/dead states - Background agents Tab — List background agent jobs; take over, respawn, watch their timeline, stop, or remove them
Built with urwid.
UI language: Simplified Chinese (notifications and status text). CLI output is in English.
- Python 3.12+
- Claude Code CLI installed and authenticated
- tmux (for Remote Control management)
- Linux / WSL (macOS support is partial —
/proc-based liveness detection is Linux-only)
Install the latest published release:
uv tool install cc-session-control
# or
pipx install cc-session-controlUpgrade later with uv tool upgrade cc-session-control (or pipx upgrade cc-session-control).
To try the newest master before it is released, install from GitHub:
uv tool install --reinstall git+https://github.com/dzshzx/cc-session-control.gitcsctl manages the Claude Code state on the machine where it is installed: the
local ~/.claude, local tmux, and local workspace. Install it separately on
each machine whose sessions you want to manage. For working on the code
instead of using it, see CONTRIBUTING.md.
# Open TUI
csctl
# Remote Control management (no TUI)
csctl rc status # Show all projects and RC status
csctl rc add . # Add current project to RC list and start
csctl rc add myproject # Add by name
csctl rc rm myproject # Remove and stop
csctl rc up # Start all listed projects
csctl rc stop all # Stop all RC servers
csctl rc list # Show auto-start list
# Session cleanup
csctl prune # Dry run: show stats
csctl prune --max-prompts 1 --apply # Delete sessions with ≤1 prompt
# Resume rescue (headless): list sessions across directories with
# ready-to-copy resume commands (native /resume only searches the cwd
# and hides sdk-ts/bridge sessions)
csctl resume # Page 1, 20 per page
csctl resume mybug # Keyword: sid/cwd/title, then transcript body
csctl resume --page 2 # Next page
csctl resume --all # Everything, no paging
# Bundled Claude Code skill (session-doctor knowledge for the agent)
csctl skill install # Write SKILL.md to ~/.claude/skills/
csctl skill install --force # Replace an existing skill directory
csctl skill uninstall
# Options
csctl --workspace ~/projects # Override workspace root
csctl --version| Environment Variable | Default | Description |
|---|---|---|
CSCTL_WORKSPACE |
~/workspace |
Workspace root directory |
CSCTL_RC_SESSION |
rc |
tmux session name for RC servers |
CSCTL_RC_STAGGER |
2 |
Seconds between starting RC servers |
XDG_CONFIG_HOME |
~/.config |
Config directory base |
RC auto-start list is stored at $XDG_CONFIG_HOME/csctl/rc-enabled.
MIT