toe is a modal terminal editor for Go development. toe edits Go projects, not the universe.
Experimental but usable. Keep your work in Git or another backup.
toe is opinionated because it is built for one tight workflow: editing Go projects from a terminal without growing into a general-purpose IDE. It favors modal editing, gopls, TOML config, project-local state, Git diff gutters and a changed-file picker, and a small set of deliberate defaults over plugin sprawl or endless knobs.
- Modal editing: normal, insert, and selection modes; multi-cursor editing; undo and redo
- Project navigation: multiple buffers, split views, fuzzy file/buffer pickers, global search, file and diff previews, image panes, binary/hex panes, and an integrated terminal pane
- Go-focused language tooling: syntax highlighting, LSP completion, hover, signature help, formatting, symbols, code actions, rename, go-to navigation, and diagnostics
- Editor display: soft wrap, rulers, whitespace rendering, indent guides, gutters, configurable cursor shapes, and statusline elements
- Version control: git diff gutters, changed-hunk navigation and reset, and a changed-file picker with unified diff previews
- Project state: workspace trust, user/workspace TOML config, EditorConfig, session persistence, external file change detection, and clean-buffer reloads
- 4 Catppuccin themes: frappe, latte, macchiato, mocha
- Go 1.26 when building from source
- A terminal with ANSI color support
goplsonPATHfor Go language features- A Kitty graphics capable terminal
- Nerd Font glyphs for enhanced UI
Install the latest stable release with Homebrew (recommended):
brew install kode4food/tap/toeTo build the current source:
make build # writes to dist/toe
make install # installs to $GOPATH/bintoe
toe path/to/file.go
toe file1 file2
toe path/to/projectWhen the first argument is a directory, toe uses it as the project root.
$XDG_CONFIG_HOME/toe/config.toml
$XDG_CONFIG_HOME/toe/languages.toml
Workspace config goes in .toe/config.toml and .toe/languages.toml at the project root.
Workspace config is trust-gated. See docs/content/docs/configuration.md for details.
:workspace-trust
:workspace-untrust
make pre-commit # run this before committing
make test
make coveragetoe is possible because of excellent terminal UI, parsing, syntax highlighting, and theme projects:
- The Charm team for Bubble Tea, which gives toe its TUI runtime, input handling, and terminal output
- The Tree-sitter project for the incremental parsing stack and grammars behind toe's Tree-sitter highlighting
- The Chroma project, the pure-Go syntax highlighter toe uses as its highlighting fallback
- The Catppuccin project for the Latte, Frappe, Macchiato, and Mocha palettes. toe ships only Catppuccin themes because I love them and I don't care if you don't ;-)

