A terminal-native, agent-first IDE. The AI coding agent shares your open buffers, diagnostics, git diff and terminal output — and proposes edits as reviewable inline diffs, not a chat box bolted to the side.
The terminal already has excellent focused tools. Rebuilding those adds nothing. The part nobody has built well in a terminal is the agent being a structural peer rather than a sidebar.
Human and agent drive one action registry and one transaction-based edit path. Proposals arrive as diffs in the editor — accept, reject, or accept per hunk. Nothing reaches disk until you accept, and a hunk you edited inside is flagged rather than overwritten.
An ACP client: bring your own agent and
model, no vendor assumed or bundled. Inline diff review engages when the agent checks with
the client before touching the file — verified against Codex in read-only and
opencode with permission.edit: "ask", where
rejecting leaves the file byte-identical. Agents that edit first still show the diff, but
as a record rather than a gate; the
support boundaries
say which is which.
GUI agent IDEs cannot. This runs anywhere a terminal runs — SSH, containers, minimal servers — and degrades cleanly to 16 colours or none.
A real session: opening a project, quick-opening a file, reviewing git changes, and a rust-analyzer diagnostic arriving. Recorded by driving the editor with real key chords, so it can be regenerated rather than going stale.
add.Nothing above needs taking on trust. The same interface renders headlessly — no terminal, no language server, no agent — and comes out byte-identical on any machine:
termesh --dump-frame . --lsp-demo # a diagnostic, a hover, the error count termesh --dump-frame . --git-demo # conflicts, staged and worktree groups termesh --dump-frame . --agent-demo --open README.md
cargo install termesh --locked
Or take a signed binary from the
latest release — Linux
(x86-64, AArch64), macOS (Intel, Apple Silicon) and Windows (x86-64), each with
SHA256SUMS. The macOS builds are signed with a Developer ID certificate and
notarized, so a browser download runs without a Gatekeeper prompt. Requires Rust 1.88 or
newer to build from source.
termesh . # open a project termesh # reopen the last one termesh --dump-frame . --lsp-demo # see a frame without a TTY
The support boundaries say exactly what is tested and what is not, rather than leaving you to find out. The ones most likely to matter: