smterm
Open-source, cross-platform terminal for agentic coding and running coding agents. An AI terminal alternative to Warp and tmux, with a live agents board, git diffs, and a file browser.
Links
README
From the repo.
smterm
A minimal terminal for agentic coding, built to keep you in the loop (yes we love reading the code).
If smterm looks useful to you, a ⭐ helps other people find it.
smterm is a fast, cross-platform terminal (tabs, split panes, real shells) for people who run coding agents all day. It stays out of your way like a normal terminal, then adds a few panels that show you what the agents are actually doing: git diffs, files, and a live agents board that works with Claude Code. If you have looked for an open-source Warp alternative, or a tmux built for coding agents, this is that.
- 🔔 Notifications when a session needs you. Working, waiting for input, or done, shown as a dot on the tab and in the sidebar, plus a native OS notification when a background pane wants you. No more finding a finished agent an hour late.
- 🔍 Changes panel. A git diff for the focused pane's working directory, so you can read what an agent just touched. Branch and ahead/behind show in the status bar.
- 📁 Files browser. A lazy per-folder listing rooted at the focused pane's cwd, with git decorations (badges on changed files, tinted folders). Click a file to open it in your editor.
- 🤖 Agents board. A live view of the Claude Code agents you launched inside smterm: the root session, its sub-agents, what each is doing, its cwd, and its recent files. Click one to jump to its pane.
- 🪟 Real multiplexer. Tabs and resizable splits. Split a pane and it keeps your shell and directory. Quit and reopen and your layout comes back.
- 🖥️ Cross-platform. macOS, Linux, and Windows, with WSL as a first-class shell target.
- ⌨️ Command palette (⌘K). New sessions, splits, theme switching, settings.
- 🎨 Themes and fonts. Minimal Dark, Tokyo Night, Catppuccin, Gruvbox; bundled fonts and ligatures.
Install
macOS and Linux:
curl -fsSL https://raw.githubusercontent.com/vcmf/smterm/main/install.sh | sh
Windows (PowerShell):
irm https://raw.githubusercontent.com/vcmf/smterm/main/install.ps1 | iex
A closer look
![]() | Agents board. A live tree of the Claude Code agents you launched: each session, its sub-agents, what they are doing, and token usage. Click one to jump to its pane. |
![]() | Notifications when a session needs you. A dot on the tab and a native OS notification the moment a background pane wants input or finishes. |
![]() | Every session and pane at a glance. The sidebar tree shows each session, its panes, and a status dot: running, needs input, or idle. |
![]() | Changes panel. A live git diff for the focused pane's working directory, with per-file counts and the full unified diff. |
![]() | Files browser. A lazy per-folder listing rooted at the pane's cwd, with git decorations on changed files. |
![]() | Open a file and read it. Click a file to open an inline preview and read what an agent wrote, without leaving the terminal. |
Works with Claude Code
Run claude in any pane and the Agents board lights up: the root session, its sub-agents, what
each is doing, its working directory, and the files it touched. It reads Claude Code's own hook
events, so there is zero setup and no global config to edit; smterm only wires the panes it
launches. Agents started outside smterm do not show up.
Why I built this
I love the terminal, and the easiest way to put an agent like Claude Code to work is to launch it from a CLI. But I also like reading the code an agent writes and making the edits myself, and a plain terminal makes that hard: you lose track of which session needs you, and you never really see what changed. smterm keeps the shell I already like and adds just enough to stay in the loop: the Changes, Files, and Agents panels show what happened, not just that something did. It also behaves the same on macOS, Linux and WSL, which helps since my work moves between all three.
Also
Beyond the headline features above:
- Copy and paste, find in scrollback (
Cmd/Ctrl+Shift+F) - Collapsible sidebar and a shell picker for new tabs
- The Agents board needs zero setup: it is wired only for panes smterm spawns
Configuration
Settings live in a single JSON file that is the source of truth. Edit it by hand or through the in-app settings panel; a live watcher re-applies changes as you save.
- macOS and Linux:
~/.config/smterm/settings.json - Windows:
%APPDATA%\smterm\settings.json
{
"font": { "family": "JetBrains Mono", "size": 13, "ligatures": true, "lineHeight": 1.2 },
"theme": "minimal-dark",
"cursorBlink": true,
"scrollback": 5000,
}
What is still rough
This is v0. I use it every day, and it will still surprise you sometimes.
- On macOS it is Apple Silicon only for now. Intel is not built yet.
- The app is not code-signed or notarized, so installing it outside the script gives you a security prompt the first time.
- Agent status comes from a heuristic (is the pane still producing output, or has it gone quiet?), so it reads the state wrong once in a while.
- The Agents board only knows about Claude Code today, since it reads Claude's hook events. The code under it does not assume any particular agent, so others can plug in later.
- Windows and WSL have had far less real-world use than macOS and Linux, so expect rougher edges there.
- After a full quit, your tabs and layout come back on relaunch, but running processes are not restored yet.
Most of these are already on the near-term roadmap, so they should not be rough for long.
Found a bug? Open an issue. What you did, what happened, and what you expected is all it takes for a useful report.
Build from source
git clone https://github.com/vcmf/smterm
cd smterm
make install # deps, native module rebuild, git hooks
make run # dev mode
make dist # package an installable build for your OS
Run make help for the full list of targets (make check runs lint + tests, make fmt
formats). Logic lives in small pure modules with real tests (make test).
Stack, if you care: Electron, React, TypeScript, xterm.js on the WebGL renderer, and node-pty
for the shells. Zustand for state, react-resizable-panels for the layout, Vitest for tests.
Design and decisions live in docs/: start with
ARCHITECTURE.md and ROADMAP.md.
License
MIT. Do what you want with it.
Collected info
- ★ 4 stars
- Language: TypeScript
- Source updated: 8/16/2026
Config for your environment
Replace {MCP_ENDPOINT_URL} with this MCP’s endpoint URL (from its repo or docs above). No API key — you connect directly.
Tool
OS
Config file: ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"url": "{MCP_ENDPOINT_URL}"
}
}
}Paste into mcpServers in the config file. Restart Cursor after saving.
If this MCP is also published on mcpchannel.ai, you can subscribe from Browse and use the gateway config there instead.





