CCManager CLI
CCManager is a session manager for Claude Code, Codex, Gemini CLI and other agents: each runs in its own Git worktree with status and hooks
- 1,270 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Starts agent processes in a terminal and runs hook commands from settings on status changes and worktree creation
- Creates, merges and deletes Git worktrees and copies ignored files such as `.env` and Claude Code session data
- The auto approval mode answers the agent's permission prompts by itself
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/ccmanagerDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Starts agent processes in a terminal and runs hook commands from settings on status changes and worktree creation
- Creates, merges and deletes Git worktrees and copies ignored files such as `.env` and Claude Code session data
- The auto approval mode answers the agent's permission prompts by itself
This is third-party code. Review the repository files before installing.
What it does
CCManager is a terminal app that runs several coding-agent sessions in parallel, each in its own Git worktree. It installs with `npm install -g ccmanager`, starts with `ccmanager` or `npx ccmanager`, and needs no tmux. Supported agents are Claude Code, Gemini CLI, Codex CLI, Cursor Agent, Copilot CLI, Cline CLI, OpenCode, Kimi CLI, MiniMax Code and Grok Build. Each has its own state detection, so the menu shows which session is busy, waiting for your answer or idle. The default key to return from a session to the menu is Ctrl+E. From the menu you create, merge and delete worktrees and manage several repositories in one interface. When creating a worktree CCManager can copy Claude Code session data from `~/.claude/projects` to the new one so the conversation continues with the same context. If the repo root holds a `.worktreeinclude` file, gitignored files such as `.env` are carried into the new worktree, only those that match a pattern and are actually ignored. Settings live in `~/.config/ccmanager/config.json` and in a `.ccmanager.json` at the repo root, with project values taking priority. They define command presets with fallback arguments, shortcuts, a path pattern for new worktrees based on the branch name, and hooks for session status changes and worktree creation. The repository also doubles as a marketplace with the `ccmanager-config` plugin: the skill teaches Claude Code or Codex the settings schema and runs a validator after each edit.
Who it is for. For developers who run several coding agents across branches of one or more repositories and want their states in one menu without tmux.
Good fit when
- You work on two or three branches in parallel, each with its own agent, and have to remember which one is waiting for you
- A new worktree needs `.env` and local certificates that are not in Git: `.worktreeinclude` covers that
- You want a notification when a session switches to waiting, or a dependency install after a worktree is created: hooks do that
- You manage several repositories and want to switch between them in one interface
- You would rather have an agent configure CCManager: install the `ccmanager-config` plugin and describe what you need in words
Not a fit when
- You use one agent on one branch: a separate menu and worktrees add nothing
- You prefer tmux sessions: the author suggests staying with Claude Squad, which is built around tmux
- You need a graphical interface or phone control: CCManager only runs in a terminal
- You expect agents to keep running after you close it: closing stops the processes it started
Example request
Set up ccmanager in this repository: run codex by default and send me a notification when a session is waiting for my answerLimitations
- Closing CCManager ends the processes of the agents it started. On the next start it offers to restore sessions from `~/.config/ccmanager/sessions.json`, but the command is simply run again: earlier terminal output and the conversation inside the agent do not come back.
- A wrong settings file raises no errors: JSON with a mistake is discarded whole and unknown keys are ignored, so a typo looks like a feature that does not work. After editing the file outside the app, choose the reload-from-disk item.
- For `claude` sessions with the default state-detection mode CCManager adds `--teammate-mode in-process` itself unless you set your own value.
- Auto approval is marked experimental: prompt review is handed to Claude (Haiku) or your own command, and on an error or timeout manual confirmation remains.
- Gemini CLI has a separate setup guide in `docs/gemini-support.md`. MIT license, package version 4.4.9.
How to disable. Remove the package with `npm uninstall -g ccmanager`. Settings files live in `~/.config/ccmanager` and in the repository's `.ccmanager.json`. The `ccmanager-config` plugin is removed through the Claude Code or Codex plugin manager.
FAQ
How do I run several Claude Code sessions in parallel on different branches?
Install `npm install -g ccmanager` and run `ccmanager` in the repository. From the menu create a worktree for each branch and open a session in it. The list shows states: busy, waiting, idle. Ctrl+E returns you to the menu.
How do I carry a Claude Code conversation into a new worktree?
When creating a worktree CCManager asks whether to copy session data. If you say yes it copies files from the source directory's `~/.claude/projects` entry to the new worktree's. The default answer is set in the worktree settings. If copying fails the worktree is still created.
How do I bring `.env` into a new Git worktree?
Put a `.worktreeinclude` file with gitignore-style patterns at the repository root. Only files that match a pattern and are actually ignored by Git are copied, so tracked files are never duplicated. Copying happens before the post-creation worktree hook runs.
How do I get notified when an agent is waiting for me?
In settings you can define a session status change hook that runs your command, for example a notification through noti. Details and examples are in `docs/status-hooks.md`.
How can an agent configure CCManager for me?
Add the `kbwo/ccmanager` marketplace and install the `ccmanager-config` plugin. The skill knows the schema of `.ccmanager.json` and the global `config.json` and runs a validator after every change, because CCManager itself stays silent about a bad file.
Can agents run inside a container?
Yes, devcontainer integration is supported: the manager stays on the host and the sessions run in the container, which allows restricting the network while keeping notifications and automation on the host.
Discussion
No questions or reviews yet.
Related
CLI toolsZCF
ZCF - Zero-Config Code Flow
A CLI that sets up Claude Code and Codex in one run: workflows, agents, skills, MCP and a provider choice
A set of 24 slash commands for the Claude Code CLI: commits, review, refactoring, tests and cleanup without repeating the same prompts
Claude Codex Settings
claude-codex-settings
A marketplace of dozens of plugins for Claude Code, Codex, Cursor and Gemini: skills, commands, hooks, subagents and configs for many tasks
A desktop GUI app for Claude Code: session management, custom agents and a token cost dashboard
claude_rules_1c: Claude Code rules and agents for 1C
claude_rules_1c
A set of 12 subagents, profile-based rules and MCP configuration for 1C development in Claude Code, with a three-layer rule loading system
cc-thingz: Claude Code plugins
cc-thingz
A personal toolkit as a marketplace: seven independent Claude Code plugins for planning, review, releases and a backlog
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Repository stars | Main difference |
|---|---|---|---|
| CCManager (this entry) | no | 1,270 | |
| Claude Squad | no | 8,645 | a terminal app built on tmux sessions; CCManager needs no tmux and shows each session's state in the menu |
| Agent Deck | no | 1,138 | a terminal session manager with a shared status list, git worktree and control |
| Worktrunk | no | 9,396 | a git worktree CLI with the wt command, plugin and hooks, without an agent session menu |
README in short
The repository holds the TypeScript app sources, a `docs` directory with separate guides, and the `ccmanager-config` plugin with a validation script. The front page opens with a feature list and a comparison with Claude Squad, then covers installation, shortcuts, per-project settings, a table of supported agents, and sections on command presets, session data copying, `.worktreeinclude`, session restore, hooks, auto approval and devcontainers.