local ignore = require('ignoreConfig.codeCompanionModel'); --[[ -- ignore file should be formatted as: local opts = { model = "claude_code", } return opts -- but change model to desired model, ex. ollama --]] return { "olimorris/codecompanion.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", "hrsh7th/nvim-cmp", -- Optional: for autocompletion inside chat { "MeanderingProgrammer/render-markdown.nvim", ft = { "markdown", "codecompanion" } }, -- Optional: pretty markdown render }, config = function() require("codecompanion").setup({ -- Define strategies (Chat vs. Inline code generation/refactor) strategies = { chat = { adapter = ignore.model, }, inline = { adapter = ignore.model, }, }, -- Configure the actual connections (adapters) adapters = { claude_code = function() return require("codecompanion.adapters").extend("claude_code", { env = { -- Looks for your export ANTHROPIC_API_KEY="your-key" in your .bashrc/.zshrc command = "/usr/local/bin/claude-code-acp", }, }) end, ollama = function() return require("codecompanion.adapters").extend("ollama", { schema = { model = { default = "jean:latest", -- Your downloaded local model }, }, }) end, }, interactions = { cli = { agent = "claude_code", agents = { claude_code = { cmd = "claude", args = {}, description = "Claude Code CLI", provider = "terminal", }, }, }, }, }) -- Quick Keymaps vim.keymap.set({ "n", "v" }, "ac", "CodeCompanionChat Toggle", { desc = "Toggle AI Chat" }) vim.keymap.set({ "n", "v" }, "ai", "CodeCompanionActions", { desc = "AI Actions Menu" }) end, }