return { "yetone/avante.nvim", event = "VeryLazy", version = false, opts = { provider = "copilot", -- work is paying for this so it's free for me providers = { copilot = { model = "claude-sonnet-4", }, }, file_selector = { provider = "snacks", -- Avoid native provider issues provider_opts = {}, }, }, keys = { { "aA", function() require("avante.api").ask() end, desc = "avante: ask", mode = { "n", "v" }, }, { "ar", function() require("avante.api").refresh() end, desc = "avante: refresh", }, { "ae", function() require("avante.api").edit() end, desc = "avante: edit", mode = "v", }, }, build = "make", dependencies = { "nvim-treesitter/nvim-treesitter", "stevearc/dressing.nvim", "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", --- The below dependencies are optional, "nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons "zbirenbaum/copilot.lua", -- for providers='copilot' { -- support for image pasting "HakonHarnes/img-clip.nvim", event = "VeryLazy", opts = { -- recommended settings default = { embed_image_as_base64 = false, prompt_for_file_name = false, drag_and_drop = { insert_mode = true, }, -- required for Windows users use_absolute_path = true, }, }, }, { "MeanderingProgrammer/render-markdown.nvim", optional = true, ft = function(_, ft) vim.list_extend(ft, { "Avante" }) end, opts = function(_, opts) opts.file_types = vim.list_extend(opts.file_types or {}, { "Avante" }) end, }, { "folke/which-key.nvim", optional = true, opts = { spec = { { "a", group = "ai" }, }, }, }, }, }