CodeShellManager

> π umage.ai/products/code-shell-manager β product page, screenshots, and latest news
A Windows desktop app for running multiple AI coding agents side-by-side β Claude Code, Codex, GitHub Copilot, or any CLI tool β in a tabbed and grid-layout terminal host.
Built with WPF + xterm.js + Windows ConPTY for full pseudo-terminal fidelity.

Why CodeShellManager
Most multi-agent tools are task orchestrators: a chat UI around one vendor's agent, a handful of parallel tasks, a diff to review. CodeShellManager is built for a different job. It hosts many long-lived agent sessions as real terminals, and helps you keep track of all of them.
- The real CLI, nothing lost. Each session is the actual
claude (or codex, copilot, gemini, pwshβ¦) running in a real pseudo-terminal, through your own PowerShell profile. Hooks, plugins, slash commands, status lines and profile functions all work exactly as in Windows Terminal. Chat-style wrappers lose some of these, especially in WSL.
- Search everything every session ever printed. All output is indexed to SQLite FTS5. Find the session that printed that error, URL or decision, even after it was closed, and relaunch it from the result.
- Built for fleets, not a handful. Up to 18 panes on screen, groups with bulk actions, sleep/wake to park projects without killing them, restart-all to pick up a new CLI build, and staggered Claude launches that avoid config corruption. Tested at 50+ sessions.
- Know who needs you. Sessions waiting for input or tool approval get a green/orange dot and a tray notification.
- Run commands beside the agent. F5 runs tests or a build in a separate background process with output in a drawer, then pastes the result to the agent in one click. The agent's terminal is never touched.
- A native Windows app. WPF + ConPTY (a bundled, current Microsoft ConPTY, so terminal replies reach your programs intact). No Electron, Python, daemon, tmux or WSL required. Local, SSH and WSL sessions side by side. Install with winget or Chocolatey; no account; MIT.
How it compares
A condensed view, as of October 2026. Tools without a Windows build (Conductor, Superset, cmux) are left out. See docs/comparison.md for the full matrix, more tools and sources.
β
has it Β· β partial Β· β doesn't Β· ? unconfirmed
| CodeShellManager | Claude Code Desktop | Nimbalyst | Orca | Herdr | Claude Squad |
|---|
| Windows | β
native | β
native | β
native | β
native | β beta | β WSL only |
| Real terminal per session | β
| β chat UI | β chat UI | β | β
| β
|
| Any CLI agent or shell | β
| β Claude only | β 2β4 agents | β 4 agents | β
| β |
| Full-text search across all session output | β
| β | β task search | β | β | β |
| Sessions visible at once | β
18 | β 2 | ? | ? | β
panes | β |
| Sleep a session, keep its slot | β
| β archive | β | β | β | β pause |
| Waiting / approval detection | β
| β on finish | β
| ? | β
| β |
| Working / idle state per agent | β #154 | ? | ? | ? | β
| ? |
| SSH + WSL sessions | β
| β
| β | β SSH | β SSH | β |
| Per-session run commands | β
| β preview servers | β | β | β | β |
| Git worktrees | β one click, not automatic | β
| β
| β
| β plugins | β
|
| Diff / review view | β #148 | β
| β
| β
| β plugin | β
|
| Agents keep running with the window closed | β #149 | β
cloud | ? | ? | β
| β
|
| Licence | MIT | Proprietary | MIT | MIT | Apache-2.0 | AGPL-3.0 |
Spotted something out of date? Competitors move fast. Open an issue and we'll correct it.
Features
- Multi-terminal grid β run up to 18 sessions simultaneously in configurable layouts (1, 2, 3, 4, 6 columns; 2Γ2, 6Γ2, 6Γ3 grids); the active pane is highlighted with a 2px accent ring so it's easy to spot
- Sidebar groups β organise sessions into named groups with their own color and filter strip; bulk actions (sleep / close / restart / remote control / re-group) operate on the active group
- Drag-and-drop ordering β drag sessions in the sidebar to reorder them, within or across groups; a blue insertion line shows exactly where the session will land, and the pane grid follows the sidebar order
- Sleep & wake β π€ button parks a session: PTY torn down, but the session (and its notes) stays in the sidebar so you can wake it later from where you left off. Great when you have many long-running projects but only need a few live at once.
- Restart sessions β β» restarts a session in place (Claude conversations resume), or restart a whole group or every session to pick up a new CLI build; bulk restarts show progress and can be stopped
- Git worktrees β start a new session in a fresh worktree from any session's branch; sibling worktrees can be grouped together in the sidebar. The git menu's Worktrees βΈ lists every worktree of the repo with its state, jumps to (or opens) its session, prunes worktrees whose folder is gone, and removes a finished one β closing its sessions first, refusing if anything is uncommitted, and offering to delete the branch only if it is merged
- Edit session β change a session's folder, command, SSH/WSL target or appearance after it was created
- Close warning β closing the app or a session (Ctrl+W, β, Close allβ¦) while it is still busy (Claude working or waiting mid-task, output streaming, a run command running) lists them and asks first; "Keep running" is the default
- Recently closed β Ctrl+Shift+T reopens the last-closed session (browser convention); the New Session dialog also lists the last 10 closed sessions for one-click revival
- Recent sessions β π Recent in the toolbar (Ctrl+Shift+E) lists the 10 sessions you used last, live or asleep, with their status; Enter jumps back to the previous one, 1β9/0 pick directly
- Per-session run commands β define a list of labelled commands per session (Test, Build, Watchβ¦); βΆ runs the default, F5 / Shift+F5 run/stop it, output streams into a side drawer without touching the parent terminal. Optional post-run URL opens in your browser on exit code 0.
- Full-text search β all terminal output indexed to SQLite FTS5; instant search across every session, ever
- Per-project notepad β collapsible π notes panel on every terminal, auto-saved and searchable
- Alert detection β detects when Claude is waiting for input or tool approval; green/orange dot indicators
- Program status (OSC 7501) β programs that report their own state via the Program Status Protocol get a pulsing
β³ working Β· 40% indicator in the sidebar and toolbar, exact waiting-for-input / approval dots, and a badge when they finish or fail; sessions that don't report it keep the heuristic detection. Claude Code reports through it out of the box.
- Git status β shows branch and dirty state in the sidebar per session
- Git tools on the terminal toolbar β a chip like
β main β β2 β5 (branch, uncommitted changes, ahead/behind) on every repo session; its menu does Fetch, fast-forward-only Pull, Status, and Switch branch (worktree-aware). Deliberately read-mostly: no commit, push or merge, and nothing is ever typed into the terminal
- Open withβ¦ / Explorer / PowerShell β
{ } βΌ, π and >_ on the terminal toolbar (and in the sidebar right-click menu) open the session's folder. "Open with" is a configurable list of editors and IDEs β VS Code (incl. Insiders), Cursor, Windsurf, Visual Studio, JetBrains IDEs, Zed, Sublime Text and Notepad++ are detected on first run β and VS Code-family editors open WSL and SSH sessions through their remotes
- Session rename β double-click any session name or click β to rename inline
- Shell integration β programs running in a session can push their accent color, git branch / dirty state, and tab title to CSM via OSC 9001 (handy for SSH overlays). See
docs/shell-integration.md.
- Auto-resume β automatically resumes the last Claude Code session when restoring on startup (
--resume ); toggleable in Settings
- SSH remote sessions β connect to remote hosts using your existing SSH config; sessions persist across restarts
- Windows Terminal profile import β opt-in import of profiles from Windows Terminal's
settings.json; pick a profile in the New Session dialog to stamp its font, color scheme, cursor and padding onto the new terminal
- Launch & shutdown spinners β every starting session shows a brief overlay (
Starting β¦ or Connecting to β¦) until the first PTY byte arrives; closing the window shows a "Shutting downβ¦" overlay during session disposal
- WSL sessions β first-class session type for any installed WSL distro: distro picker (auto-detected via
wsl -l -v), Linux working folder, optional -u user override; git status works via the \\wsl$\ UNC view
- Session history β clicking a search result from a closed session offers to relaunch it
- Configurable launch commands β customise the commands available in the New Session dialog
- Claude badge β sessions running
claude commands get a visual indicator
- Tray icon β balloon notifications for alerts; double-click to bring the window forward
- Settings window β all options configurable; persisted as JSON
Requirements
> Note: The .msi installer does not bundle the WebView2 runtime. If you're on Windows 10 and see a blank terminal pane, install the WebView2 runtime from the link above.
Installation
winget (recommended)
winget install UmageAI.CodeShellManager
Future updates pick up automatically with winget upgrade UmageAI.CodeShellManager (or winget upgrade --all).
Chocolatey
choco install codeshellmanager
Upgrade with choco upgrade codeshellmanager (or choco upgrade all).
Download from Releases
- Go to Releases
- Download either:
CodeShellManager-x.y.z-Setup.msi β installer (adds Start Menu + Desktop shortcuts, supports uninstall via Apps & Features)
CodeShellManager-x.y.z-win-x64.zip β portable; extract and run CodeShellManager.exe
Build from source
Requirements: .NET 10 SDK, Windows 10/11
git clone https://github.com/umage-ai/CodeShellManager.git
cd CodeShellManager
dotnet run --project src/CodeShellManager/CodeShellManager.csproj
Command-line flags
| Flag | Effect |
|---|
--clean | Start with no preloaded sessions and skip writing state.json for the run. Useful when developing β your saved sessions/settings are left untouched. |
Keyboard Shortcuts
| Key | Action |
|---|
Ctrl+T | New session |
Ctrl+Shift+T | Reopen the most-recently-closed session |
Ctrl+Alt+T | Duplicate the active session |
Ctrl+W | Close active session |
Ctrl+F | Toggle search |
Ctrl+Tab / Ctrl+Shift+Tab | Cycle sessions |
Ctrl+Shift+E | Recent sessions menu (Enter = previous session, 1β9/0 pick) |
F5 | Run the active session's default run-command |
Shift+F5 | Stop the active session's running run-command |
Escape (in search) | Close search panel |
Layout Options
Click the layout buttons in the toolbar (right side):
| Button | Layout |
|---|
| β£ | Single pane |
| β₯ | 2 columns |
| β¦ | 3 columns |
| β | 2Γ2 grid |
| β | 2 rows |
| 4 | 4 columns |
| 6 | 6 columns |
| 6Γ2 | 6 columns Γ 2 rows (12 panes) |
| 6Γ3 | 6 columns Γ 3 rows (18 panes) |
Contributing
Issues and pull requests are welcome. See CLAUDE.md for architecture notes and coding conventions.
License
MIT β see LICENSE.
By umage.ai