neo
April 3, 2026 ยท View on GitHub
neo is a terminal-native, extensible code editor written in Go.
It combines a custom text buffer engine, syntax highlighting, tabbed editing, dockable panels, built-in terminal emulation, and Git tooling in a single TUI application.
Highlights
- Fast text editing core with undo/redo, selections, multi-line operations, and bracket-aware navigation.
- Extension-based architecture for commands, keybindings, menus, and panels.
- Syntax highlighting powered by Chroma with configurable themes.
- Integrated autocomplete (document words, language keywords, snippets, and paths).
- Search stack: incremental find, replace, search in open tabs, and find-in-files.
- Code folding with fold levels, fold region detection, and open/close controls.
- Git integration: log view, working/staged diffs, and ref-to-ref diff.
- Workspace UI tooling: file tree, quick open, tab switcher, markdown preview, search results panel.
- Session persistence (restore tabs, cursor position, scroll state) and MRU history.
- External file change watching with reload prompts.
- Image viewing support, including Sixel rendering helpers for capable terminals.
Git Log / Diff and many other features
Getting Started
Prerequisites
- Go
1.25+ - A terminal with mouse support recommended
gitonPATH(for Git features)
Build
go build -o neo .
Run
# Open editor
./neo
# Open a file directly
./neo path/to/file.go
# Pick a syntax theme
./neo --theme dracula path/to/file.go
Common Shortcuts
Ctrl+N: new fileCtrl+O: open fileCtrl+S: saveCtrl+W: close tabCtrl+Q: quitCtrl+P: quick openCtrl+F: findCtrl+H: replaceCtrl+Shift+F: find in filesCtrl+Space: autocompleteCtrl+B: toggle file tree- `Ctrl+``: open terminal tab
Ctrl+Shift+G: Git logF2: toggle bookmarkF9: open settings
Configuration
neo stores user settings as JSON.
- Windows:
%APPDATA%/neo/settings.json - macOS:
$HOME/Library/Application Support/neo/settings.json - Linux:
$XDG_CONFIG_HOME/neo/settings.json(or$HOME/.config/neo/settings.json)