Skip to content

vcmf/smterm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

smterm

smterm

A minimal terminal for agentic coding, built to keep you in the loop (yes we love reading the code).

CI License: MIT Platforms

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.

  • 🔔 Knows which session needs you. Working, waiting for input, or done, shown as a dot on the tab and in the sidebar, plus a native 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.
  • ⌨️ Command palette (⌘K). New sessions, splits, theme switching, settings.
  • 🎨 Themes and fonts. Minimal Dark, Tokyo Night, Catppuccin, Gruvbox; bundled fonts and ligatures.

Why

Agents write the code now, but you are still the one who reviews it and ships it. So the terminal should help you read and stay in the loop, not just scroll text past you. That is the whole point of the Changes, Files, and Agents panels: see what changed, not just that something did.

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 simply do not show up.

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

Prefer to click things? Grab a build from the releases page. Read the honest bit below first.

The honest bit about that curl command

Piping a script from the internet straight into your shell is exactly the kind of thing you should be suspicious of. Good instinct. The script is short and it is right here, so read it before you run it. All it does is grab the newest release for your OS from GitHub and put the app in /Applications (macOS) or ~/.local/bin (Linux).

We lead with the curl install on purpose. smterm is not notarized by Apple yet (that costs money and we are getting to it). If you download the .dmg in a browser, macOS will show you a stern "could not verify this app is free of malware" box and hide the Open button. Files fetched from the terminal skip that check, so the curl install just works. Once we notarize, the double-click download will be smooth too. Same story on Windows: the terminal install avoids the SmartScreen warning a browser download triggers.

If you already downloaded the .dmg and macOS is refusing to open it, this clears it:

xattr -dr com.apple.quarantine /Applications/smterm.app

Also

Beyond the headline features above:

  • macOS, Linux, and Windows, with WSL as a first-class shell target
  • 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. It is genuinely useful and it will also occasionally surprise you. Honesty beats a pristine-looking README.

  • macOS is Apple Silicon only for now. An Intel build is on the list.
  • Nothing is code-signed or notarized yet, so expect a security prompt if you go around the installer. This is the next thing on the roadmap.
  • The "is this agent actually working or just sitting there" detection is a heuristic. It is good, not psychic.
  • The Agents board is Claude Code specific right now (it reads Claude's own hook events). Other agents will come; the underlying reducer is agent-agnostic.
  • Windows and WSL work but have had less real-world mileage than macOS and Linux.
  • Live processes do not survive a full quit yet. Your layout comes back, your running programs do not.

Found a bug? Open an issue. A report that says "here is what I did, here is what happened, here is what I expected" is worth its weight in gold.

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.