___ ___
/' __` __`\
/\ \/\ \/\ \
\ \_\ \_\ \_\
\/_/\/_/\/_/
magenta is for agentic flow
Magenta provides transparent tools to empower AI workflows in neovim. It allows fluid shifting of control between the developer and the AI, from targeted context-powered inline edits to AI automation and agent-led feature planning and development.
Developed by dlants.me: I was tempted by other editors due to lack of high-quality agentic coding support in neovim. I missed neovim a lot, though, so I decided to go back and implement my own. I now happily code in neovim using magenta, and find that it's just as good as cursor, windsurf, ampcode & claude code.
I sometimes write about AI, neovim and magenta specifically:
🔍 Also check out pkb: A CLI for building a local knowledge base with LLM-based context augmentation and embeddings for semantic search. Can be used as a claude skill.
Note: I mostly develop using the Anthropic provider, so Claude Opus is recommended. I decided to drop support for other providers for now, since I am more interested in exploring the features space. If another provider becomes significantly better or cheaper, I'll probably add it.
đź“– Documentation: Run :help magenta.nvim in Neovim for complete documentation.
@fork: it now clones the thread. Can now fork while streaming or pending tool use, and continue the original thread afterward/tmp/magenta/threads/...) with abbreviated results sent to the model@compact command for manual thread compaction:help magenta documentationrg and fd support.claude/skills directory)@fork for thread forking with context retention<S-C-l>)@fast modifier<leader>m.)spawn_foreach for parallel sub-agentsRequirements: Node.js v20+ (node --version), nvim-cmp
Recommended: fd and ripgrep for better file discovery
{
"dlants/magenta.nvim",
lazy = false,
build = "npm ci --production",
opts = {},
},
local vim = vim
local Plug = vim.fn['plug#']
vim.call('plug#begin')
Plug('dlants/magenta.nvim', {
['do'] = 'npm ci --production',
})
vim.call('plug#end')
require('magenta').setup({})
For complete configuration documentation, run :help magenta-config in Neovim.
require('magenta').setup({
profiles = {
{
name = "claude-sonnet",
provider = "anthropic",
model = "claude-sonnet-4-5",
fastModel = "claude-haiku-4-5",
apiKeyEnvVar = "ANTHROPIC_API_KEY"
}
}
})
See :help magenta-providers for detailed provider configuration.
Note: Other providers (openai, bedrock, ollama, copilot) were removed in Jan 2026. The new provider architecture is simpler - contributions welcome!
Create .magenta/options.json for project-specific configuration:
{
"profiles": [...],
"autoContext": ["README.md", "docs/*.md"],
"skillsPaths": [".claude/skills"],
"mcpServers": { ... }
}
See :help magenta-project-settings for details.
| Keymap | Description |
|---|---|
<leader>mt |
Toggle chat sidebar |
<leader>mf |
Pick files to add to context |
<leader>mi |
Start inline edit |
<leader>mn |
Create new thread |
<S-C-l> |
Trigger/accept edit prediction |
Input commands: @fork, @file:, @diff:, @diag, @buf, @qf, @fast
For complete documentation:
:help magenta-commands - All commands and keymaps:help magenta-input-commands - Input buffer @ commands:help magenta-tools - Tools and sub-agents:help magenta-mcp - MCP server configuration:UpdateRemotePlugins! (h/t wallpants).It's neovim baby! Use your hard-won muscle memory to browse the agent output, explore files, gather context, and hand-edit when the agent can't swing it!
I've taken care to implement the best parts of claude code (context management, subagents, skills), so you shouldn't miss anything terribly.
Another thing is that magenta is a lot more transparent about what is happening to your context. For example, one major aspect of claude skills is that claude secretly litters the context with system reminders, to get the agent to actually use skills defined early in the context window. In magenta you can see everything the agent sees, and manipulate it to customize to your use case.
The closest plugins are avante.nvim and codecompanion.nvim. I haven't used either in a while, so take this with a grain of salt—both are actively developed and may have added features since I last checked.
That said, I've spent a lot of time building magenta's abstractions around agentic coding. Here's what I think sets it apart:
Context management
spawn_subagent, spawn_foreach), then coordinate resultsPermissions system
filePermissions option—control which directories can be read/written without confirmation, including support for hidden/secret filesProvider features
Architecture