The calm, terminal-first workspace for Claude Code — run claude, with files, Git, diffs & MCP on demand, and munu, a notch mascot that watches Claude for you. Local-only, no telemetry.
See the codeEnglish | 简体中文
Run Claude Code, then go do something else.
A terminal-first workspace for Claude Code — keep your real claude session, with checkpoints, live agents, diffs, Git, files, MCP & usage one keypress away.
And munu, a face in your notch — or pinned anywhere on screen — tells you the moment Claude needs you, even in a fullscreen app on another desktop.
macOS, Windows and Linux. Free, open source (MIT), no account, no telemetry.
Download · Website · Report a bug
One calm window — your real claude sessions front and center, with files, diffs, Git, MCP and usage on demand. A project per pane.
▶ Watch the 54-second tour (sound on)
/rewind.Running Claude Code means living next to a terminal — alt-tabbing to read a diff, to commit, to check whether it's stuck on a [y/n]. DockTerm keeps that terminal central and brings the rest to you, so you can let Claude work and actually step away. Claude Code does the work; DockTerm is the calm window around it.
It keeps your real claude — it doesn't replace it. Unlike Claude Code GUIs that swap your terminal for a custom chat UI (Claudia/Opcode), DockTerm wraps your actual session and builds views around it. Nothing to relearn, and it stays compatible as Claude Code evolves.
| Raw terminal | Full IDE | Claude GUIs | DockTerm | |
|---|---|---|---|---|
Keeps your real claude session | ✅ | ✅ | ❌ replaces it | ✅ |
| Highlighted diff review of Claude's changes | ❌ | ✅ | ~ | ✅ |
Stage & commit without raw git | ❌ | ~ | ~ | ✅ |
| Tells you when Claude needs you (even fullscreen) | ❌ | ❌ | ❌ | ✅ munu |
| Shows Claude subagents while they run | ❌ | ❌ | ~ | ✅ |
| Checkpoints for the current Claude session | ❌ | ❌ | ~ | ✅ |
| Send selected terminal text back to Claude | manual | manual | ~ | ✅ |
| Usage limits & reset times at a glance | ❌ | ❌ | ❌ | ✅ |
| Stays out of the way | ✅ | ❌ heavy | ~ | ✅ |
| No telemetry, local-only | ~ | ❌ | ~ | ✅ |
A terminal alone can't show a highlighted diff of what Claude changed, or let you commit safely, or tell you Claude is waiting while you're in another window. Opening a full IDE to review three lines breaks the flow. DockTerm sits in between.
DockTerm reads Claude's state from the terminal output and shows it as munu, a small face near your menu bar — in the notch, on a MacBook. At a glance you can tell whether Claude is working, finished, or waiting for a [y/n], even when DockTerm is behind another window. When Claude pauses to ask permission, munu surfaces the prompt so you can answer with one click — including multi-choice and free-text answers — and never lose your flow. It infers everything from the terminal; it never auto-answers and never calls an API.

Go watch something fullscreen — munu floats over it (even on another desktop/Space) and brings Claude's prompt to you, so you never miss it.
By default munu tucks into the notch, slides out on hover, and peeks for a few seconds when Claude's state changes. Prefer it always in view? Pin it and drag it anywhere on screen — it stays put and visible wherever you put it. On Windows and Linux it's a small auto-hiding (or pinned) pill at the top of the screen.
| munu | nvurd | guru | adanana |
| resting | working | needs you | done | no project |
⌘R / Ctrl Shift R on any pane to read Claude's session as a clean conversation, with a working timer, permission prompts as buttons, and a composer for attachments, smart paste, / and @ menus, history and drafts. Hold the mic to talk through Claude's own voice mode. The real terminal keeps running underneath; press the shortcut again to go back.⌘. / Ctrl Shift .) that dims the panes you're not using.claude / claude --resume, a checkpoint rail for the current conversation, and a Send to Claude selection toolbar for turning terminal text into a referenced prompt snippet.claude --resume to continue Claude's actual conversation.⌘/Ctrl, and drag the actual files into other apps.cd.⌘K / Ctrl Shift P to jump anywhere.⌘/Ctrl + / − / 0 to scale the whole UI.




DockTerm does not replace Claude Code with a chat clone. It watches the real terminal and local Claude transcripts, then adds small workflow surfaces around them:
/rewind when you choose to restore.


DockTerm uses the shortcuts you already know from each platform's default terminal, and never steals keys the shell needs (plain Ctrl C/Ctrl W always go to the shell).
| Action | macOS | Windows / Linux |
|---|---|---|
| New tab | ⌘T | Ctrl Shift T |
| New window | ⌘N | Ctrl Shift N |
| Close tab | ⌘W | Ctrl Shift W |
| Command palette | ⌘K | Ctrl Shift P |
| Open project | ⌘O | Ctrl Shift O |
| Files / Git / Review panel | ⌘B / ⌘G / ⌘E | Ctrl Shift B / G / E |
| Chat mode for the focused pane | ⌘R | Ctrl Shift R |
| Zen mode | ⌘. | Ctrl Shift . |
| Compose a long prompt | ⌘⇧⏎ | Ctrl Shift Enter |
| Split right | ⌘D | Ctrl Shift D |
| MCP panel | ⌘⇧M | Ctrl Shift M |
| Mini terminal | ⌘J | Ctrl Shift J |
| Settings | ⌘, | Ctrl Shift , |
| Zoom in / out / reset | ⌘ + / − / 0 | Ctrl Shift + / − / 0 |
| Scroll to top / bottom | ⌘↑ / ⌘↓ | Shift PageUp / PageDown |
| Summon / hide DockTerm (global) | `⌘⇧`` | `Ctrl Shift `` |
macOS, with Homebrew:
brew install --cask munvard/dockterm/dockterm
Or download from Releases:
| System | File |
|---|---|
| macOS (Apple Silicon) | DockTerm-<version>-macOS-Apple-Silicon.dmg |
| macOS (Intel) | DockTerm-<version>-macOS-Intel.dmg |
| Windows 10/11 | DockTerm-<version>-Windows.exe |
| Linux (x86-64) | DockTerm-<version>-Linux.AppImage |
macOS builds are signed and notarized, so they open normally. Windows builds are unsigned for now — if SmartScreen appears, choose More info → Run anyway. Installs per-user, no admin. After that, DockTerm can keep itself up to date from inside the app.
DockTerm is built to be trusted with your code:
claude.~/.claude transcripts, read-only — token counts only, never message content, and nothing is uploaded.contextIsolation and sandbox are on; production loads over a custom protocol with a strict CSP and no remote content.~/.claude is a separate opt-in.~/.claude read-only; they do not modify, upload, or execute them.git call runs with core.hooksPath=, so a malicious repo's hooks can't execute.More in docs/SECURITY_MODEL.md.
Does my code or any data leave my machine?
No. DockTerm has no telemetry and never calls an AI of its own. Usage stats come from your local ~/.claude transcripts, read-only.
Do I keep using my normal claude?
Yes — DockTerm wraps your real Claude Code session in a real shell. Nothing to relearn, and it stays compatible as Claude Code evolves.
Are the usage percentages exact to my plan? Anthropic doesn't expose your exact quota locally, so DockTerm calibrates the percentage from your own history — it tracks your real limits closely (especially once you've hit one), and the reset times are exact.
Windows says "unknown publisher." The Windows build is unsigned for now: choose More info → Run anyway. macOS is signed and notarized.
Does munu ever answer Claude for me? Never. It only surfaces the prompt; you click. It infers state from the terminal and never calls an API.
git clone https://github.com/munvard/dockterm && cd dockterm
npm install
npm run dev # run with hot reload
npm test # unit tests (vitest)
npm run build # production bundles
Requires Node 22+. Architecture notes are in CONTRIBUTING.md.
Early but actively developed, used daily, and built and maintained with Claude Code itself. It's an Electron app, so the download is fairly large. macOS builds are notarized; Windows is unsigned for now. Bugs and rough edges are expected — issues and PRs are welcome.
MIT. Built with Electron, xterm.js, Monaco, and simple-git.
TypeScript
90.4%
CSS
7.6%
JavaScript
1.8%
The calm, terminal-first workspace for Claude Code — run claude, with files, Git, diffs & MCP on demand, and munu, a notch mascot that watches Claude for you. Local-only, no telemetry.
See the codeEnglish | 简体中文
Run Claude Code, then go do something else.
A terminal-first workspace for Claude Code — keep your real claude session, with checkpoints, live agents, diffs, Git, files, MCP & usage one keypress away.
And munu, a face in your notch — or pinned anywhere on screen — tells you the moment Claude needs you, even in a fullscreen app on another desktop.
macOS, Windows and Linux. Free, open source (MIT), no account, no telemetry.
Download · Website · Report a bug
One calm window — your real claude sessions front and center, with files, diffs, Git, MCP and usage on demand. A project per pane.
▶ Watch the 54-second tour (sound on)
/rewind.Running Claude Code means living next to a terminal — alt-tabbing to read a diff, to commit, to check whether it's stuck on a [y/n]. DockTerm keeps that terminal central and brings the rest to you, so you can let Claude work and actually step away. Claude Code does the work; DockTerm is the calm window around it.
It keeps your real claude — it doesn't replace it. Unlike Claude Code GUIs that swap your terminal for a custom chat UI (Claudia/Opcode), DockTerm wraps your actual session and builds views around it. Nothing to relearn, and it stays compatible as Claude Code evolves.
| Raw terminal | Full IDE | Claude GUIs | DockTerm | |
|---|---|---|---|---|
Keeps your real claude session | ✅ | ✅ | ❌ replaces it | ✅ |
| Highlighted diff review of Claude's changes | ❌ | ✅ | ~ | ✅ |
Stage & commit without raw git | ❌ | ~ | ~ | ✅ |
| Tells you when Claude needs you (even fullscreen) | ❌ | ❌ | ❌ | ✅ munu |
| Shows Claude subagents while they run | ❌ | ❌ | ~ | ✅ |
| Checkpoints for the current Claude session | ❌ | ❌ | ~ | ✅ |
| Send selected terminal text back to Claude | manual | manual | ~ | ✅ |
| Usage limits & reset times at a glance | ❌ | ❌ | ❌ | ✅ |
| Stays out of the way | ✅ | ❌ heavy | ~ | ✅ |
| No telemetry, local-only | ~ | ❌ | ~ | ✅ |
A terminal alone can't show a highlighted diff of what Claude changed, or let you commit safely, or tell you Claude is waiting while you're in another window. Opening a full IDE to review three lines breaks the flow. DockTerm sits in between.
DockTerm reads Claude's state from the terminal output and shows it as munu, a small face near your menu bar — in the notch, on a MacBook. At a glance you can tell whether Claude is working, finished, or waiting for a [y/n], even when DockTerm is behind another window. When Claude pauses to ask permission, munu surfaces the prompt so you can answer with one click — including multi-choice and free-text answers — and never lose your flow. It infers everything from the terminal; it never auto-answers and never calls an API.

Go watch something fullscreen — munu floats over it (even on another desktop/Space) and brings Claude's prompt to you, so you never miss it.
By default munu tucks into the notch, slides out on hover, and peeks for a few seconds when Claude's state changes. Prefer it always in view? Pin it and drag it anywhere on screen — it stays put and visible wherever you put it. On Windows and Linux it's a small auto-hiding (or pinned) pill at the top of the screen.
| munu | nvurd | guru | adanana |
| resting | working | needs you | done | no project |
⌘R / Ctrl Shift R on any pane to read Claude's session as a clean conversation, with a working timer, permission prompts as buttons, and a composer for attachments, smart paste, / and @ menus, history and drafts. Hold the mic to talk through Claude's own voice mode. The real terminal keeps running underneath; press the shortcut again to go back.⌘. / Ctrl Shift .) that dims the panes you're not using.claude / claude --resume, a checkpoint rail for the current conversation, and a Send to Claude selection toolbar for turning terminal text into a referenced prompt snippet.claude --resume to continue Claude's actual conversation.⌘/Ctrl, and drag the actual files into other apps.cd.⌘K / Ctrl Shift P to jump anywhere.⌘/Ctrl + / − / 0 to scale the whole UI.




DockTerm does not replace Claude Code with a chat clone. It watches the real terminal and local Claude transcripts, then adds small workflow surfaces around them:
/rewind when you choose to restore.


DockTerm uses the shortcuts you already know from each platform's default terminal, and never steals keys the shell needs (plain Ctrl C/Ctrl W always go to the shell).
| Action | macOS | Windows / Linux |
|---|---|---|
| New tab | ⌘T | Ctrl Shift T |
| New window | ⌘N | Ctrl Shift N |
| Close tab | ⌘W | Ctrl Shift W |
| Command palette | ⌘K | Ctrl Shift P |
| Open project | ⌘O | Ctrl Shift O |
| Files / Git / Review panel | ⌘B / ⌘G / ⌘E | Ctrl Shift B / G / E |
| Chat mode for the focused pane | ⌘R | Ctrl Shift R |
| Zen mode | ⌘. | Ctrl Shift . |
| Compose a long prompt | ⌘⇧⏎ | Ctrl Shift Enter |
| Split right | ⌘D | Ctrl Shift D |
| MCP panel | ⌘⇧M | Ctrl Shift M |
| Mini terminal | ⌘J | Ctrl Shift J |
| Settings | ⌘, | Ctrl Shift , |
| Zoom in / out / reset | ⌘ + / − / 0 | Ctrl Shift + / − / 0 |
| Scroll to top / bottom | ⌘↑ / ⌘↓ | Shift PageUp / PageDown |
| Summon / hide DockTerm (global) | `⌘⇧`` | `Ctrl Shift `` |
macOS, with Homebrew:
brew install --cask munvard/dockterm/dockterm
Or download from Releases:
| System | File |
|---|---|
| macOS (Apple Silicon) | DockTerm-<version>-macOS-Apple-Silicon.dmg |
| macOS (Intel) | DockTerm-<version>-macOS-Intel.dmg |
| Windows 10/11 | DockTerm-<version>-Windows.exe |
| Linux (x86-64) | DockTerm-<version>-Linux.AppImage |
macOS builds are signed and notarized, so they open normally. Windows builds are unsigned for now — if SmartScreen appears, choose More info → Run anyway. Installs per-user, no admin. After that, DockTerm can keep itself up to date from inside the app.
DockTerm is built to be trusted with your code:
claude.~/.claude transcripts, read-only — token counts only, never message content, and nothing is uploaded.contextIsolation and sandbox are on; production loads over a custom protocol with a strict CSP and no remote content.~/.claude is a separate opt-in.~/.claude read-only; they do not modify, upload, or execute them.git call runs with core.hooksPath=, so a malicious repo's hooks can't execute.More in docs/SECURITY_MODEL.md.
Does my code or any data leave my machine?
No. DockTerm has no telemetry and never calls an AI of its own. Usage stats come from your local ~/.claude transcripts, read-only.
Do I keep using my normal claude?
Yes — DockTerm wraps your real Claude Code session in a real shell. Nothing to relearn, and it stays compatible as Claude Code evolves.
Are the usage percentages exact to my plan? Anthropic doesn't expose your exact quota locally, so DockTerm calibrates the percentage from your own history — it tracks your real limits closely (especially once you've hit one), and the reset times are exact.
Windows says "unknown publisher." The Windows build is unsigned for now: choose More info → Run anyway. macOS is signed and notarized.
Does munu ever answer Claude for me? Never. It only surfaces the prompt; you click. It infers state from the terminal and never calls an API.
git clone https://github.com/munvard/dockterm && cd dockterm
npm install
npm run dev # run with hot reload
npm test # unit tests (vitest)
npm run build # production bundles
Requires Node 22+. Architecture notes are in CONTRIBUTING.md.
Early but actively developed, used daily, and built and maintained with Claude Code itself. It's an Electron app, so the download is fairly large. macOS builds are notarized; Windows is unsigned for now. Bugs and rough edges are expected — issues and PRs are welcome.
MIT. Built with Electron, xterm.js, Monaco, and simple-git.
TypeScript
90.4%
CSS
7.6%
JavaScript
1.8%