Lazyide
A full IDE experience anywhere you have a terminal. SSH into a server, run lazyide, and pair with your agentic coding tool.
Install / Use
/learn @TysonLabs/LazyideREADME
lazyide
A lightweight terminal IDE built with Rust and ratatui. File tree, tabbed editing, LSP, syntax highlighting, code folding, git integration, project search, 32 themes, and customizable keybindings — all in a single binary.
A full IDE experience anywhere you have a terminal. SSH into a server, run lazyide, and pair with your agentic coding tool.


Install
Linux / macOS / WSL2:
curl -fsSL https://tysonlabs.dev/lazyide/install.sh | sh
Windows (PowerShell):
irm https://tysonlabs.dev/lazyide/install.ps1 | iex
<details>
<summary>More install options</summary>
Homebrew (macOS):
brew tap TysonLabs/tap && brew install lazyide
Scoop (Windows):
scoop bucket add lazyide https://github.com/TysonLabs/scoop-bucket
scoop install lazyide
From source:
cargo install --git https://github.com/TysonLabs/lazyide
Prebuilt binaries: GitHub Releases
Installer flags:
sh install.sh --with-deps # also install ripgrep + rust-analyzer
sh install.sh --prefix /usr/local/bin
sh install.sh --version v0.3.0
</details>
After installing, run lazyide --setup to detect and install optional tools (rust-analyzer, ripgrep).
Features
Editor
- LSP integration — rust-analyzer completions with inline ghost text, diagnostics, go-to-definition
- Syntax highlighting — Rust, Python, JS/TS, Go, PHP, CSS/SCSS, HTML/XML, Shell, JSON/TOML/YAML, Markdown
- Code folding — brace-based (Rust, JS, Go), indentation-based (Python), tag-based (HTML/XML)
- Bracket pair colorization —
{}()[]colored by nesting depth - Find & replace — regex search in file, ripgrep-powered project search
- Word wrap — toggle with
Alt+Z, with full cursor/selection/mouse support - Horizontal scrolling —
Shift+scrollwhen word wrap is off
Git
- Gutter markers — added
+, modified~, deleted-per line viagit diff - File status — tree colors files by status (modified, added, untracked) with directory propagation
- Branch display — branch name and change summary in the top bar
Interface
- 32 themes — dark and light, with live preview browser
- Customizable keybindings — remap ~40 actions via config file or in-app editor
- Tabbed editing — preview tabs, sticky tabs, dirty indicators
- File tree — folders-first sorting, expand/collapse, context menus, resizable divider
- Command palette —
Ctrl+Pfor quick access to all actions - Autosave & recovery — buffers saved every 2s, crash recovery on reopen
Keyboard
<details> <summary>Global</summary>| Key | Action |
|-----|--------|
| Ctrl+P | Command palette |
| Ctrl+O | Quick open (fuzzy search) |
| Ctrl+S | Save |
| Ctrl+W | Close tab |
| Ctrl+Q | Quit (press twice if unsaved) |
| Ctrl+B | Toggle file tree |
| Ctrl+F | Find in file |
| Ctrl+H | Find and replace |
| Ctrl+Shift+F | Search project (ripgrep) |
| Ctrl+N | New file |
| Ctrl+R | Refresh tree |
| Alt+Z | Toggle word wrap |
| F1 / F2 | Previous / next tab |
| F4 | Help |
| Tab / Shift+Tab | Focus tree / editor |
| Key | Action |
|-----|--------|
| Ctrl+Space | LSP completion |
| Ctrl+D | Go to definition |
| Ctrl+G | Go to line |
| Ctrl+J | Toggle fold |
| Ctrl+U | Toggle fold all |
| Ctrl+Z / Ctrl+Y | Undo / redo |
| Ctrl+/ | Toggle comment |
| Ctrl+C / Ctrl+X / Ctrl+V | Copy / cut / paste |
| Ctrl+A | Select all |
| Shift+Alt+Down / Up | Duplicate line |
| F3 / Shift+F3 | Find next / previous |
| PageUp / PageDown | Scroll page |
| Ctrl+Home / Ctrl+End | Start / end of file |
| Key | Action |
|-----|--------|
| Up / Down / K / J | Navigate |
| Right / L / Enter | Open / expand |
| Left / H | Collapse / parent |
| Delete | Delete (with confirmation) |
- Click file/folder in tree to open
- Drag divider to resize panes
- Right-click tree for context menu (New File, Rename, Delete)
- Click + drag in editor to select text
- Right-click editor for edit menu
- Click gutter fold icons to toggle folds
- Shift+scroll to pan horizontally
Override any shortcut in ~/.config/lazyide/keybinds.json:
{
"save": "ctrl+s",
"redo": ["ctrl+shift+z", "ctrl+y"],
"fold_toggle": "ctrl+j"
}
Or use the in-app keybind editor: Ctrl+P > "Keybind Editor"
Build from source
cargo build --release
cargo run -- /path/to/project
cargo test
Requires Rust 2024 edition.
Optional tools
| Tool | Purpose | Install |
|------|---------|---------|
| rust-analyzer | LSP completions, diagnostics, go-to-definition | lazyide --setup |
| ripgrep | Project-wide search | lazyide --setup |
| git | Branch display, gutter markers | System package manager |
Documentation
- Architecture — module structure, data flow, rendering pipeline
- Contributing — themes, bug reports, code contributions
Acknowledgements
- lazygit and lazyssh — inspiration for the terminal-native approach
- ratatui — TUI framework
- rust-analyzer — LSP server
- ripgrep — project search engine
