nvim
Arugula works with the nvim you already run in a pane, with nothing to set up for most of it. It needs nvim 0.10 or later. The first time nvim runs in one of your panes, Arugula shows the nvim in Arugula card over that pane. To see it again, choose nvim help in the pane’s menu, or Help › nvim in Arugula in the account menu.
What Arugula does with nvim
Section titled “What Arugula does with nvim”- Following: the pane’s card and the swarm show the file and line nvim has open, its unsaved buffers and its diagnostics. The daemon reads them over nvim’s own server socket, so this works without any plugin.
- One entry: your nvim is the pane. It shows once in the swarm, not as a pane and an editor.
- Open in editor: with Settings › Editor set to nvim, Open in editor (a pane’s menu, a diff card, a file, a link) opens the file in the nvim already running there, at its line. With none running, it opens a new nvim editor block. Ask each time offers VS Code or nvim on every open.
- Key tips: each time nvim starts in a pane, the pane’s header shows one
nvim key tip. Its button opens that tip’s
:helpin that nvim. Each tip shows once before any repeats.
Claude Code’s edits in nvim
Section titled “Claude Code’s edits in nvim”With arugula.nvim, when Claude Code runs in a pane in the same session, each edit it proposes opens in nvim as a vimdiff tab: the file as it is on the left, the proposed text on the right, with a header naming the agent and the file. The edit’s card says it’s also open in nvim.
<leader>aaor:ArugulaAcceptaccepts it. Edit the proposed side first to send your text instead.<leader>aror:ArugulaRejectrejects it.- Answering in nvim, on the card or in Claude Code’s terminal answers all three.
- Two edits in a row open a tab each, in order.
Change the keys with keys = { accept = …, reject = … } in the plugin’s
setup (false for none). :help arugula-diff has the details.
arugula.nvim
Section titled “arugula.nvim”The plugin adds live following of your buffer, merge conflicts and debugger stops (from nvim-dap, if you have it) as reasons on the pane, and Claude Code’s edits as a vimdiff.
When nvim runs in a pane without it, the pane’s header offers Add
arugula.nvim. That installs it into nvim’s own package directory
(site/pack/arugula in stdpath("data")) and loads it into the running
nvim, with no restart and no change to your config. The daemon refreshes
that copy when Arugula is upgraded. A copy your plugin manager loads is
never offered over or touched.
To install it yourself instead, point your plugin manager at
editors/nvim in a checkout of the
code repository, for example
with lazy.nvim:
{ dir = "~/src/arugula/editors/nvim" }To remove Arugula’s copy, choose Settings › Editor › Remove
arugula.nvim, or delete site/pack/arugula in nvim’s data directory
(:echo stdpath('data')). An nvim that has it loaded keeps it until it
quits.
Commands
Section titled “Commands”:ArugulaJoinshows the current folder in the swarm and remembers it, so nvim joins by itself the next time it starts there. Outside an Arugula pane, nvim joins as an entry of its own.:ArugulaLeavetakes it out at once and forgets it. In a pane, the pane stays, read without the plugin.:ArugulaStatussays whether it’s in and how many people follow it.require("arugula").status()gives the same for a statusline.:checkhealth arugulachecks the daemon’s socket, says which daemon answers on it, and names the pane this nvim is tied to.
The plugin talks to the daemon on the same machine ($ARUGULA_SOCK, else
~/.local/state/arugula/sock). Over ssh, nvim runs on the remote machine,
so that’s the daemon there. Set vim.g.arugula = { socket = "…" } before
the plugin loads to use another socket.
nvim editor blocks
Section titled “nvim editor blocks”An nvim editor block is a pane running nvim with arugula.nvim loaded from the daemon’s own copy, even if you never installed it. Your config still loads. Open one with + Pane › Editor, choosing nvim, or with Open in editor when your Editor is nvim and no nvim is running.
The block takes the page’s colors: the plugin applies them as the
colorscheme arugula, and again whenever the page’s palette changes. Set
vim.g.arugula = { theme = false } to keep your own colorscheme, or pick
another with :colorscheme to keep it for the rest of that nvim.
Next steps
Section titled “Next steps”- Blocks: VS Code editor blocks.
- Agents: Claude Code and other agents in panes.
- Attention and history: the swarm.