local provider = vim.env.AI_PROVIDER return { { 'olimorris/codecompanion.nvim', dependencies = { { 'nvim-treesitter/nvim-treesitter', build = ':TSUpdate' }, { 'nvim-lua/plenary.nvim' }, { 'ibhagwan/fzf-lua' }, { -- Make sure to set this up properly if you have lazy=true 'MeanderingProgrammer/render-markdown.nvim', opts = { file_types = { 'markdown', 'codecompanion' }, }, ft = { 'markdown', 'codecompanion' }, }, }, keys = { { 'cc', 'CodeCompanionChat Toggle', desc = 'Open AI chat' }, { 'ca', 'CodeCompanionAction', desc = 'Perform AI action' }, }, cmd = { 'CodeCompanion', 'CodeCompanionAction', 'CodeCompanionChat', 'CodeCompanionCmd' }, opts = { adapters = { opts = { show_defaults = false, show_model_choices = true, }, ollama = function() return require('codecompanion.adapters').extend('ollama', { schema = { model = { default = 'qwen3:14b', }, }, }) end, anthropic = function() return require('codecompanion.adapters').extend('anthropic', { schema = { model = { default = 'claude-sonnet-4-20250514', }, }, env = { api_key = vim.env.ANTHROPIC_API_KEY, }, }) end, allow_insecure = true, }, --Refer to: https://github.com/olimorris/codecompanion.nvim/blob/main/lua/codecompanion/config.lua strategies = { chat = { adapter = provider or 'anthropic' }, inline = { adapter = provider or 'anthropic' }, cmd = { adapter = provider or 'anthropic' }, }, }, }, }