Game Changer 😱: Nvim x Codex
Verwendung vom Coding Assistant in nvim
Mittlerweile ist es normal, dass man ein KI-Coding Buddy stets zur Verfügung hat. Die Zeiten, wo man seine Google Suchskills verfeinert hatte, in Foren gesucht oder auf StackOverflow fragen gestellt hat und gebetet hat, dass ein Experte seine Gnade erweist und deine Frage beantwortet scheinen längst in weite Ferne gerückt zu sein.
Wer VSCode verwendet kann direkt Copilot ausprobieren. Eine andere beliebt alternative ist Cursor.
Ich wollte auch gerne einen Coding-Assistenten in meiner Entwicklungsumgebung nvim haben. Der wichtigste Punkt war, dass ich kein Geld für API-Tokens ausgeben wollte. Ich hatte gelesen, dass man mit der normalen ChatGPT-Plus Abo auch Codex ohne einen API-Key, der Tokens verbraucht nutzen kann.
Unter anderem habe ich https://github.com/yetone/avante.nvim und https://github.com/olimorris/codecompanion.nvim ausprobiert. Diese scheiterten entweder an den Funktionsumfang, die ich erwartet hatte oder an mangelnden Support sich mit einem ChatGPT-Plus Abo anzumelden (Stand 04.03.2026).
Das für mich beste Tool einen Coding Assistenten in nvim einzubinden ist opencode.nvim!
Was macht opencode.nvim? Es integriert den gleichnamigen KI-Coding Agent opencode.
Installation
- Nvim Plugin opencode.nvim in
~/.conf /nvim/lua/plugin/opencode.lua - Opencode Software:
brew install --cask opencode-desktop
Nvim Plugin Konfiguration

Füge folgenden Datei mit dem opencode.plugin in dein ~/.conf /nvim/lua/plugin/ rein
return {
"nickjvandyke/opencode.nvim",
dependencies = {
-- Recommended for `ask()` and `select()`.
-- Required for `snacks` provider.
---@module 'snacks' <- Loads `snacks.nvim` types for configuration intellisense.
{ "folke/snacks.nvim", opts = { input = {}, picker = {}, terminal = {} } },
},
config = function()
---@type opencode.Opts
vim.g.opencode_opts = {
-- Your configuration, if any — see `lua/opencode/config.lua`, or "goto definition" on the type or field.
}
-- Required for `opts.events.reload`.
vim.o.autoread = true
-- Recommended/example keymaps.
vim.keymap.set({ "n", "x" }, "<leader>oa", function()
require("opencode").ask("@this: ", { submit = true })
end, { desc = "OpenCode: Ask (@this)" })
vim.keymap.set({ "n", "x" }, "<leader>oo", function()
require("opencode").select()
end, { desc = "OpenCode: Actions" })
vim.keymap.set({ "n", "t" }, "<leader>ot", function()
require("opencode").toggle()
end, { desc = "OpenCode: Toggle" })
-- Add range (operator-pending / visual)
vim.keymap.set({ "n", "x" }, "<leader>or", function()
return require("opencode").operator("@this ")
end, { desc = "OpenCode: Add range", expr = true })
-- Add current line
vim.keymap.set("n", "<leader>ol", function()
return require("opencode").operator("@this ") .. "_"
end, { desc = "OpenCode: Add line", expr = true })
vim.keymap.set("n", "<S-C-u>", function() -- Shift Control u
require("opencode").command("session.half.page.up")
end, { desc = "Scroll opencode up" })
vim.keymap.set("n", "<S-C-d>", function()
require("opencode").command("session.half.page.down")
end, { desc = "Scroll opencode down" })
-- You may want these if you stick with the opinionated "<C-a>" and "<C-x>" above — otherwise consider "<leader>o…".
-- C-a war vorherig für ask
vim.keymap.set("n", "+", "<C-a>", { desc = "Increment under cursor", noremap = true })
vim.keymap.set("n", "-", "<C-x>", { desc = "Decrement under cursor", noremap = true })
end,
}
Opencode installieren
Installiere Opencode brew install --cask opencode-desktop.
In nvim öffne das opencode plugin <leader>ot ➡ ctrl+p ➡ OpenAI

Opencode Features
Opencode bietet ein Plan und Build-Modus. Der Plan Modus ändert nichts anderes Code-Basis. Der Build-Modus ändert aktiv Code. Bevor man den Build-Modus nimmt, sollte man ein git commit machen.

Plan und Build wechseln.Opencode kann auch den git commits lesen und die Änderungen nachvollziehen. Wenn man vergangen commits nachvollziehen will, dann ist das schon echt eine große Hilfe.
