From 4d0e3c71b8f52a0687f8042820508399109e34eb Mon Sep 17 00:00:00 2001 From: Janghoon Lee <44862514+savagemanage@users.noreply.github.com> Date: Mon, 19 Oct 2026 06:09:54 +0000 Subject: [PATCH] feat: CodeCompanion chat runs on Redrob Code via ACP Add a redrob ACP adapter (extends opencode, runs `redrob acp`) and make it the chat default. Inline edit stays HTTP-only in CodeCompanion. --- lua/custom/plugins/ai.lua | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/lua/custom/plugins/ai.lua b/lua/custom/plugins/ai.lua index 9e5c8b3..702838a 100644 --- a/lua/custom/plugins/ai.lua +++ b/lua/custom/plugins/ai.lua @@ -40,7 +40,24 @@ vim.keymap.set({ 'n', 'x' }, 'ap', function() sk().prompt() end, { desc vim.keymap.set('n', 'ac', function() sk().toggle { name = 'claude', focus = true } end, { desc = 'Sidekick [C]laude' }) -- [[ codecompanion.nvim ]] -require('codecompanion').setup {} +-- Redrob Code speaks ACP (opencode-compatible), so reuse the opencode adapter. +-- Inline edit stays HTTP-only in CodeCompanion; chat edits files via ACP with a diff to accept. +require('codecompanion').setup { + adapters = { + acp = { + redrob = function() + return require('codecompanion.adapters').extend('opencode', { + name = 'redrob', + formatted_name = 'Redrob Code', + commands = { default = { 'redrob', 'acp' } }, + }) + end, + }, + }, + interactions = { + chat = { adapter = 'redrob' }, + }, +} vim.keymap.set({ 'n', 'v' }, 'cc', 'CodeCompanionChat Toggle', { desc = 'CodeCompanion [C]hat' }) vim.keymap.set({ 'n', 'v' }, 'ca', 'CodeCompanionActions', { desc = 'CodeCompanion [A]ctions' }) vim.keymap.set('v', 'ce', ":'<,'>CodeCompanion ", { desc = 'CodeCompanion inline [E]dit' })