nvim-agentic-devenv
Terminal-native development environment built on Neovim, tmux, and Ghostty. Replaces VSCode + devcontainers with hand-rolled, transparent config.
What's included
Editor (Neovim)
- Multi-language LSP — Python, Rust, TypeScript/JS, Go, Elixir, C#, Lua
- Autocompletion (blink.cmp) with LSP, buffer, path, and snippet sources
- Format-on-save (conform.nvim) — ruff, rustfmt, prettier, gofmt, stylua, mix, csharpier
- Linting (nvim-lint) — eslint, golangci-lint; Python/Rust/Elixir/C# via LSP
- Diagnostics panel (trouble.nvim), TODO highlighting, auto-pairs
- Debugging (nvim-dap) — DAP UI, virtual text, Python debugpy, Mason adapter install
- Test runner (neotest) — inline pass/fail, adapters for Python, Rust, Go
- Git integration — gitsigns (hunk navigation/staging), lazygit (floating terminal)
- Navigation — telescope (fuzzy finder), flash.nvim (jump), aerial (code outline)
- Editing — mini.surround, mini.ai textobjects, treesitter textobjects, inc-rename (live preview)
- Refactoring — extract function/variable, inline variable
- Search and replace — grug-far.nvim (project-wide)
- UI — neo-tree (file explorer), bufferline (tabs), lualine (statusline with breadcrumbs), which-key, indent guides, dashboard
- Sessions — auto-save/restore per directory (persistence.nvim)
- Markdown rendering in-editor (render-markdown.nvim)
- AI assistant (devenv-agent) — inline chat with explain/do modes, Ollama (local) or Anthropic providers
- Tokyodark color scheme with Nerd Font icons
Terminal multiplexer (tmux)
Ctrl-a prefix, window switching via Alt+1-9
Terminal emulator (Ghostty/iTerm2)
Cmd+1-9 mapped to Alt+1-9 for tmux window switching
Requirements
Quick start
git clone https://github.com/ondrasek/nvim-agentic-devenv.git
cd nvim-agentic-devenv
make install
This runs the full bootstrap: installs Homebrew packages, CLI tools, and copies configs to ~/.config/.
Makefile targets
make install # Full bootstrap (brew, tools, copy configs)
make copy # Copy configs only (no brew install)
make diff # Show differences between repo and installed configs
make setup-project # Init current dir as dev project
Configs are copied (not symlinked). Use chezmoi to track installed dotfiles — the bootstrap script detects it automatically.
Key bindings
The leader key is Space. Press it and wait for which-key to show available commands.
Navigation
| Key | Action |
|---|
<leader>ff | Find files (telescope) |
<leader>fg | Live grep (telescope) |
<leader>fb | Search buffers |
<leader>fr | Recent files |
<leader>fh | Help tags |
<leader>e | Toggle file explorer |
<leader>E | Reveal current file in explorer |
s | Flash jump |
S | Flash treesitter select |
<leader>cs | Toggle code outline (aerial) |
<leader>cS | Symbols nav (aerial) |
LSP (Neovim 0.11 built-in + custom)
| Key | Action |
|---|
gd | Go to definition |
grr | Find references |
K | Hover documentation |
gra | Code actions |
grn | Rename symbol (live preview) |
gri | Go to implementation |
grt | Go to type definition |
gO | Document symbols |
[d / ]d | Previous/next diagnostic |
<leader>cd | Line diagnostics float |
<leader>cf | Format file |
Editing
| Key | Action |
|---|
gcc | Toggle line comment |
gsa | Add surrounding |
gsd | Delete surrounding |
gsr | Replace surrounding |
af / if | Select around/inside function |
ac / ic | Select around/inside class |
]f / [f | Next/previous function |
]c / [c | Next/previous class |
Refactoring
| Key | Action |
|---|
<leader>re | Extract function (visual) |
<leader>rv | Extract variable (visual) |
<leader>ri | Inline variable |
<leader>sr | Search and replace (grug-far) |
Git
| Key | Action |
|---|
<leader>gg | Open lazygit |
]h / [h | Next/previous hunk |
<leader>ghs | Stage hunk |
<leader>ghr | Reset hunk |
<leader>ghp | Preview hunk |
<leader>ghb | Blame line |
<leader>ghS | Stage buffer |
<leader>ghR | Reset buffer |
Debugging
| Key | Action |
|---|
<leader>db | Toggle breakpoint |
<leader>dB | Conditional breakpoint |
<leader>dc | Continue / start |
<leader>di | Step into |
<leader>do | Step over |
<leader>dO | Step out |
<leader>du | Toggle DAP UI |
<leader>dr | Toggle REPL |
Testing
| Key | Action |
|---|
<leader>tt | Run nearest test |
<leader>tf | Run file tests |
<leader>td | Debug nearest test |
<leader>ts | Toggle test summary |
<leader>to | Show test output |
]t / [t | Next/previous failed test |