0x0.nvim plugin spawns the 0x0 TUI in a Neovim terminal and bridges editor context (files,
selections, diagnostics) to the agent via HTTP. It reacts to SSE events for file reloads, permission
dialogs, and notifications.
Commands, agents, and skills are defined in your config.yaml and .zeroxzero/ directory — the
plugin fetches them from the server at runtime.
Requirements
- Neovim >= 0.10
curlin PATH0x0CLI installed
Installation
lazy.nvim
packer.nvim
Configuration
All options and their defaults:Keymaps
All keymaps are configurable via thekeymaps table. Set any key to "" (empty string) to disable it.
| Keymap | Mode | Action |
|---|---|---|
<leader>0 | n | Toggle terminal |
<leader>0a | n, v | Ask (with selection context in visual mode) |
<leader>0f | n | Add current file to prompt |
<leader>0s | v | Add selection to prompt |
<leader>0l | n | List sessions |
<leader>0n | n | New session |
<leader>0i | n | Interrupt session |
<leader>0m | n | List models |
<leader>0c | n, v | Command picker |
<leader>0g | n | Agent picker |
Commands
| Command | Description |
|---|---|
:ZeroOpen | Open 0x0 terminal |
:ZeroToggle | Toggle terminal visibility |
:ZeroClose | Hide terminal |
:ZeroAsk [prompt] | Ask a question (optional inline prompt) |
:ZeroAddFile | Add current file to prompt |
:ZeroAddSelection | Add visual selection to prompt |
:ZeroSessionList | Pick a session |
:ZeroSessionNew | New session |
:ZeroSessionInterrupt | Interrupt current session |
:ZeroModelList | Open model picker |
:ZeroCommandPicker | Pick from available commands |
:ZeroAgentPicker | Pick from available agents |
Statusline
Integrate with lualine or any statusline plugin:How it works
The plugin communicates with the 0x0 HTTP server using the same routes as the VS Code extension:- Spawn — Opens
0x0 --port <random>in a Neovim terminal buffer - Poll — Waits for the server to be ready via
GET /app - Inject — Sends file references and prompts via
POST /tui/append-promptandPOST /tui/submit-prompt - React — Listens to
GET /app/eventSSE stream for file changes, permissions, and notifications - Manage — Sessions, models, commands, and agents are fetched from the server
(
GET /session,GET /command,GET /agent)
ZEROXZERO_CALLER=neovim when spawning the process. Buffers auto-reload when the
agent edits files via SSE file-watcher events. The process is gracefully stopped on VimLeavePre.
Health check
Run the built-in health check to verify your setup:curl availability, 0x0 binary presence, and server connectivity.
See also
- ACP — IDE integration via Agent Client Protocol
- Server — headless HTTP server mode
- Network — hostname, port, and CORS options
- CLI Reference — full command reference