eugenioenko/ttt

Developer Tools

A terminal code editor for developers who want IDE-grade editing (LSP, multi-cursor, git) without leaving the shell.

831
94
Go
MIT
9 months old

The problem

Terminal editing usually forces a choice: Vim/Neovim with a config and plugin ecosystem to assemble, or a GUI editor (VS Code, Zed, Sublime) that pulls you out of the shell and into a separate window. TTT aims at the middle ground — a full-screen TUI with the editing affordances people expect from a GUI IDE, shipped as one Go binary with no configuration required.

What's different

The distinguishing bet is breadth of GUI-style editing inside a terminal: multi-cursor with select-next-occurrence, code folding, split/unified git diffs that update as you type, inline git blame, and LSP-backed completion, diagnostics, signature help and formatting. Syntax highlighting comes from the author's own pure-Go TextMate port, which the README claims handles multi-line constructs across 124 languages — the usual TUI route is tree-sitter or regex grammars, so the trade-off is fidelity to VS Code's grammar behaviour versus independence from that ecosystem. Compared with Neovim, TTT trades composability and a mature plugin culture for zero-config defaults; compared with VS Code it trades extensions, debugging and a large contributor base for living in the terminal. Multi-root workspaces and opening a PR URL or piped git diff directly are small but practical touches.

Who it's for

Developers already happy in a terminal who want LSP completion, a file explorer and a git staging workflow without maintaining an editor config — especially on Linux/FreeBSD/Termux, or over SSH where GUI editors are awkward. Look elsewhere if you depend on a deep plugin ecosystem, debugger integration, notebook-style work, or if your team standardises on VS Code extensions. Neovim users with a tuned setup will find little reason to switch.

Cost of adoption

Requires Git and ripgrep for search; install is a single binary (Homebrew tap, AUR, scoop, Nix flake, or the install script — the flake still tracks main, which is a warning sign for Nix users). MIT licensed, so no constraints. The README is long on features but thin on stability guarantees, release history and performance claims; Nerd Font icons are opt-in and default off, so nothing forces a font change. The main risk is maturity: no published benchmarks and no Hacker News discussion in the signals, so real-world behaviour on large repositories is unverified.

Verdict

The project is roughly nine months old and gained 211 stars in a single week, landing at #15 on the Go weekly board without ever appearing on the daily board. That pattern — a concentrated spike, no sustained daily traction — reads as a launch moment rather than an established tool. The feature list is unusually complete for that age, and the zero-config single binary is a genuine differentiator for terminal users. But an editor is a daily-driver decision: give it a month of side-by-side use on your real repos before replacing anything.

Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.