Suzuri means inkstone — the stone where ink is ground before writing.
A native terminal host for macOS and Windows: your window, PTY, GPU chrome (glass, rain, tabs, settings, workspace). Not a TUI inside someone else’s emulator, and not a Charm/Bubble Tea app.
Site: stephenshorton.github.io/suzuri · Download: latest release
Most “pretty terminals” are either a full host (Windows Terminal, WezTerm) or a TUI that lives inside another terminal.
suzuri is a host. It owns the native window + PTY + paint. The interactive UI is a native GPU shell (Rust / wgpu) — optical glass, glyph rain, product chrome — not HTML and not Charm.
| Area | Highlights |
|---|---|
| Host | Native window, ConPTY / POSIX PTY, scrollback, selection, copy/paste |
| Chrome | Tabs, splits, command palette (⌘K / ⌘P), settings (⌘,), help (⌘/) |
| Look | Glass panes · glyph rain · primary + derived accent colors · Gohu mono |
| Input | Warp-style compose · echo filter · command blocks |
| Agents | Spawn-on-demand MCP (suzuri mcp) for diagnostics / control |
| Workspace | Shared local channels, presence, tinted chat bubbles |
| Transfer | Peer-to-peer send/receive (palette + CLI) |
| Updates | Startup check + palette Check for updates (GitHub Releases; confirm before install; disabled in Microsoft Store / MSIX builds) |
macOS (Apple Silicon)
- Grab
suzuri-*-darwin-arm64.dmgfrom Releases. - Drag suzuri into Applications.
- Config / logs:
~/Library/Application Support/suzuri/.
Windows
- Grab
suzuri-*-windows-amd64-setup.exefrom Releases. - User install under
%LOCALAPPDATA%\Programs\suzuri\(no admin). - Config / logs:
%LOCALAPPDATA%\suzuri\.
Portable .zip builds ship host + UI + transfer side by side. In-app
updates replace the same layout.
One product, small process split:
| Binary | Role |
|---|---|
suzuri |
Go host — CLI, MCP, config, update, launches UI |
| UI process | Rust GPU shell (packaged next to host; internal name suzuri-chrome) |
suzuri-transfer |
Optional P2P engine |
You only run suzuri. Details: docs/ARCHITECTURE.md.
Requires Go (see go.mod), Rust (stable), and a C toolchain for CGO on
the host where needed for other modules — the product UI is pure Rust.
git clone https://github.com/StephenSHorton/suzuri.git
cd suzuri
# UI (required for the window)
cd chrome && cargo test --bins && cargo build --release && cd ..
# Host
go test ./...
go build -ldflags "-s -w -X main.version=dev" -o suzuri ./cmd/suzuri
# Run — host finds chrome/target/release/suzuri-chrome
./suzuriWindows GUI subsystem (no spare console on double-click):
go build -ldflags "-H windowsgui -s -w -X main.version=dev" -o suzuri.exe ./cmd/suzuriOptional transfer engine:
./tools/build-transfer.sh| Command | Purpose |
|---|---|
suzuri |
Launch the app |
suzuri version |
Print version |
suzuri mcp |
Stdio MCP (spawn-on-demand) |
suzuri transfer … |
P2P transfer CLI |
suzuri chrome … |
Alias that forwards args to the UI process |
Open Settings (⌘,). Primary color is the brand color; Accent is
derived from it (or set manually). Reset defaults restores factory prefs.
Release builds embed a version via -ldflags -X main.version=…. On startup
(and via palette Check for updates), suzuri queries GitHub Releases. If a
newer version exists, a confirmation modal offers install. The portable zip
payload updates host + UI + transfer together when present. Microsoft Store /
MSIX installs skip GitHub self-update (the Store owns updates).
| Workflow | Purpose |
|---|---|
| CI | go test + build |
| Release | Tag v*.*.* → macOS / Windows assets + Store MSIX + SHA256SUMS (includes UI binary) |
| Pages | Site under docs/site |
git tag v0.9.112
git push origin v0.9.112MIT © Stephen S. Horton.
Bundled GohuFont uni14 Nerd Font Mono is WTFPL — see assets/fonts.
Romanization: suzuri · Japanese: 硯 · English: inkstone