Multi-project session manager for Claude Code in VS Code and Cursor. Color-codes terminals by project, shows live agent status, auto-titles sessions, and survives editor restarts.
No webview, no sidebar clutter — everything lives in the terminal.
Each project gets its own color from a 10-color Monet-inspired palette (Water Lily, Garden Mint, Rose Floral, Sunlight Gold, etc.). Terminals and their icons are tinted so you can tell at a glance which project a session belongs to. Colors are assigned automatically and persist across sessions. You can also pick a specific color per project.
Terminal names update in real time to show what Claude is doing:
| Emoji | Status | Meaning |
|---|---|---|
| 🟢 | Active | Claude is working — using tools or processing |
| 🟡 | Waiting | Needs your input or tool approval |
| ⚪ | Idle | Done, waiting for next prompt |
Sessions are titled automatically in two phases:
- Draft — your first prompt is truncated to ~40 chars and shown immediately
- Final — when Claude finishes, a fast model generates a 3-5 word summary
You can also set titles manually with the /title slash command:
/title Fix auth token refresh
Run sessions across multiple projects simultaneously. Clicking a terminal automatically switches the VS Code workspace to that session's project. Create new projects directly from the Switch Project menu.
Sessions survive Extension Host restarts (common in VS Code/Cursor). On reload, Monet matches live terminals to session state via PID and restores names, colors, and status tracking. Stale terminals from previous editor sessions are automatically cleaned up.
When you change a project's color, Monet can migrate existing sessions — it creates new terminals with the updated color and uses claude --resume to continue the conversation seamlessly.
# Build from source
npm install
npm run compile
npm run package
# Install the .vsix
code --install-extension monet-0.1.0.vsix # VS Code
cursor --install-extension monet-0.1.0.vsix # Cursor- Open a project folder (or set
monet.projectsRootin settings — defaults to~/Projects) - Click the paintcan icon in the terminal toolbar, or press
Cmd+Shift+M - Select New Session — a colored terminal opens and runs
claude - Install slash commands:
Cmd+Shift+P→ "Monet: Install Slash Commands"
| Command | Description |
|---|---|
Monet: Monet Menu |
Main menu — new session, flags, switch project |
Monet: New Session |
Start a new Claude session in the current project |
Monet: New Session with Flags |
Start with flags (e.g., --resume, --worktree) |
Monet: Switch Project |
Change active project or create a new one |
Monet: Change Project Color |
Pick a different color for the current project |
Monet: Install Slash Commands |
Install /title to ~/.claude/commands/ |
Monet: Reset All Sessions |
Clear all session state and color assignments |
Cmd+Shift+M (macOS) / Ctrl+Shift+M (Windows/Linux) — opens the Monet Menu.
Monet uses Claude Code's hook system to track agent state. When you create a session:
- A terminal is created with a unique session ID, project color, and matching icon
- Hooks are installed into the project's
.claude/settings.local.json - As Claude works, hooks fire shell scripts that write status to
~/.monet/status/{sessionId}.json - A file watcher polls these status files and renames terminals in real time
- On session end, the terminal is renamed to
zsh [ex-claude]and state is cleaned up
All state lives in ~/.monet/ — status files, hook scripts, and launch requests. Nothing is stored in your project directory except the hooks in .claude/settings.local.json (which are cleaned up when the last session for a project closes).
| Setting | Default | Description |
|---|---|---|
monet.projectsRoot |
~/Projects |
Root directory to scan for projects |
monet.colorOrder |
fixed |
fixed or shuffle — how colors are assigned to projects |
- VS Code 1.85+ or Cursor
- Claude Code CLI installed and authenticated
- Node.js (for hook scripts)
MIT