A terminal for running many AI agents at once and keeping track of them.
Vertical tabs with live agent status, split panes, per-pane context tracking, desktop notifications, and auto-updates. Built with Tauri 2 + xterm.js.
📖 Docs: https://clawterm.github.io/clawterm/docs/
ClawTerm is macOS only (Apple Silicon and Intel).
curl -fsSL https://raw.githubusercontent.com/clawterm/clawterm/main/install.sh | bashOr grab the universal DMG manually from the latest release. Updates are automatic.
macOS note: You may need
xattr -cr /Applications/ClawTerm.appto clear the quarantine flag until Apple notarization is set up.
- Live tab status — see which agents are idle, running, waiting for input, or errored without clicking through tabs
- Desktop notifications — get notified when agents need input or long commands finish
- Split panes —
Cmd+D/Cmd+Shift+Dto split horizontally or vertically - Command palette —
Cmd+Shift+Pfor quick access to all actions - Git worktrees — run agents on isolated branches from a single project
- Auto-updates — built-in update checker with release notes and silent install option
- Settings page — shortcuts reference, version info, and update controls
- Fully configurable — config at
~/.config/clawterm/config.json, all keybindings remappable
By default, ClawTerm creates new git worktrees in a sibling directory next to your repo, namespaced by repo name:
~/Code/
├── myrepo/ ← your main repo (working tree untouched)
│ └── .git/
└── .clawterm-worktrees/ ← sibling, hidden, namespaced
└── myrepo/
├── feature-x-wt-1/ ← actual worktrees
└── feature-y-wt-2/
This isolation is deliberate: tools that walk a repo (Biome, Vitest, tsc, ESLint) would otherwise discover the worktrees' copies of your root config files (biome.jsonc, vitest.config.mts, etc.) and break your pre-commit hooks, double-run tests, or refuse to start. Sibling worktrees stay structurally invisible to anything invoked from the main repo (#415).
You can override the default with worktree.directory in ~/.config/clawterm/config.json:
| Value | Resolves to | Use case |
|---|---|---|
"" (default) |
<parent-of-repo>/.clawterm-worktrees/<repo-name>/ |
Most users — just works |
"/Users/me/.cache/wt" |
/Users/me/.cache/wt/<repo-name>/ |
Central worktree cache |
"~/wt" |
~/wt/<repo-name>/ |
Same, with tilde expansion |
".clawterm-worktrees" |
<repo-root>/.clawterm-worktrees/ |
Legacy in-repo — opt-in only, breaks tools that walk the repo |
Existing worktrees from older installs continue to work — the resolver only runs at creation time, and existing worktree paths are stored as absolute paths in your session.
git clone https://github.com/clawterm/clawterm.git && cd clawterm
npm install && npm run tauri devRequires Rust and Node.js 18+.
See CONTRIBUTING.md. Bug reports: open an issue.
