A terminal UI for managing multiple Git repositories with integrated Claude Code support. Work on several projects simultaneously, each with its own Claude Code session, git worktrees, and persistent conversation history.
- Multi-Project Tabs - Open multiple repositories as tabs, switch instantly with
1-9keys - Embedded Claude Code - Full Claude Code terminal per project with session persistence
- Git Worktree Management - Create, switch, and manage worktrees without leaving the app
- Session Resume - Claude conversations persist across restarts via
--resume - Activity Indicators - See which tab has active Claude thinking/tool execution
- Script Runner - Quick access to
devandbuildscripts per project
bunx multicodeThat's it! Requires Bun to be installed.
bun install -g multicode
multicodegit clone https://github.com/twdnhfr/multicode.git
cd multicode
bun install
bun run devOn first launch, press Ctrl+S to open setup:
- Set your repository folder (e.g.,
~/projects) - Set your worktree base path (where new worktrees are created)
- Claude CLI path is auto-detected
| Key | Action |
|---|---|
Ctrl+O |
Open repository picker |
Ctrl+S |
Open setup |
Ctrl+Q |
Quit |
Tab |
Cycle focus between areas |
1-9 |
Switch to tab/worktree by number |
| Key | Action |
|---|---|
x |
Close current tab |
c |
Open Claude Code |
| Key | Action |
|---|---|
w |
Open worktree manager |
| Key | Action |
|---|---|
↑/↓ |
Navigate |
Enter |
Expand/collapse folder |
Ctrl+F |
File search |
. |
Toggle hidden files |
| Key | Action |
|---|---|
Escape |
Return focus to file tree |
┌─[1:project-a]─[2:project-b]─[3:project-c]────────────────────────┐
├─[1:main↑0↓0]─[2:feature-x↑2↓0]───────────────────────────────────┤
│ 📁 project-a │ │
│ ├── src/ │ Claude Code Terminal │
│ ├── tests/ │ │
│ └── ... │ > How can I help you today? │
│ │ │
├─────────────────┴────────────────────────────────────────────────┤
│ [t] OTLP:4319 │ Scripts: [d] dev [b] build │
└──────────────────────────────────────────────────────────────────┘
Multicode automatically saves and restores:
- Open tabs and their repositories
- Active worktree per tab
- Claude session IDs for conversation resume
- Last active tab
Sessions are stored in ~/.multicoderc.
Each tab maintains its own Claude session ID. When you open Claude Code:
- First time: Creates new session with
--session-id - Subsequent opens: Resumes with
--resume - If session expired: Automatically creates new session
Multicode runs an OTLP receiver on port 4319 to receive telemetry from Claude Code. This enables:
- Real-time activity indicators (⚡ for tools, ◉ for thinking)
- Session ID matching to show status on correct tab
Create isolated worktrees for parallel development:
- Focus worktree bar and press
w - Enter branch name
- New worktree is created and switched to
Each worktree shows sync status (↑ahead ↓behind).
- Bun runtime
- Claude Code CLI installed
- Git
Config file: ~/.multicoderc
{
"repoDirectory": "/Users/you/projects",
"claudePath": "/usr/local/bin/claude",
"worktreeBasePath": "/Users/you/worktrees",
"openTabs": [...],
"activeTabIndex": 0
}This project is open source and we'd love your help! Whether it's:
- 🐛 Reporting bugs
- 💡 Suggesting new features
- 🔧 Submitting pull requests
- 📖 Improving documentation
Feel free to open an issue or submit a PR. All contributions are welcome!
MIT
