0.5.0 (2026-10-31)
This release starts 2 refactoring:
- move more of the backend code to rust libraries: this release moves ACP support from homemade lua code to a rust library relying on the official ACP SDK. The goal is to make the backend more robust/featureful while keeping the ability to hack advanced stuff with lua. There is no point in redeveloping the whole backend from scratch, with all the bugs it entails. This frees maintainer time to focus on the actual neovim integration. 0.6 will move the classical LLM API backend to rust as well. This means the rust libraries are likely to evolve more often so we encourage users to pin to a tagged release instead of using the nighlty version if you want to avoid recompiling libraries on every update. AvanteBuild now accepts a version like this
:AvanteBuild --version=v0.5.0, contrary to its name, it downloads the libraries rather than compiling (naming to be fixed). - a redesign of the avante commands from
:AvanteXXXto:Avante xxxas per neovim/neovim#32263
On the CI front, we provide a nix cache avante-nvim.cachix.org and started doing release through the "release-please" workflow, hopefully making it easier to create more frequent releases.
The generated changelog contains some already released changes for some reason. Might be new in case you missed it or a welcome refresher ;)
⚠ BREAKING CHANGES
- dont include out of cwd templates
- rag: change default folder from /tmp to $XDG_STATE_HOME
- rag: dont read log level from env
- rag: dont read port from env anymore
- change default header to show current model
- replace plenary.curl with vim.net for web_search
- rename rag-service -> avante-rag-service
- select models for current provider only
- better respect of XDG standard
- deprecate dressing.nvim input provider
- move some of the sidebar setup code to ftplugin/
- bump required neovim from 0.10 to 0.11
- use vim.ui.select for AvanteSwitchProvider (#2935)
Features
- acp: add :Avante acp sessions to list and resume agent sessions (99ee143)
- acp: support mcp_servers in acp_providers config (#2883) (148998b)
- add cerebras provider (c1eb391)
- add contrib/avante (317a16d)
- add deepseek provider (d6ccb3a)
- add logging to file (#2947) (6c00a52)
- Add mapping to delete avante history via fzf-lua (#2869) (a9a558d)
- Add mapping to delete avante history via snacks.nvim (#2868) (92f972a)
- Add mapping to delete avante history via telescope.nvim (#2867) (08977a4)
- add model name to sidebar (#2914) (865cee5)
- add openrouter provider (d026d86)
- Add support for Claude Code Subscriptions (#2909) (2159c0c)
- Add support for gpt 6 model family (8e54c3f)
- add top-level mistral provider (#2932) (fde9a52)
- added /model command (44af014)
- adding timeout override in list_models (3905a42)
- allow to override timeout when listing models (e474fc0)
- AvanteBuild: accept a --version flag (303b06b)
- AvanteBuild: catch download errors (534b396)
- AvanteSwitchProvider: accepter filters (1edd5e5)
- bedrock: support Bedrock API key (bearer token) auth (f6732cd), closes #2479
- better respect of XDG standard (ccfb182)
- bump required neovim from 0.10 to 0.11 (4ece2d2)
- bump required neovim version to > 0.12 (76cda3f)
- bumped default python from 3.11 to 3.14 (3ac2008)
- change default header to show current model (34fefab)
- config: add option
allow_access_to_git_ignored_files(#2882) (5cad31d) - deprecate dressing.nvim input provider (63c2062)
- display current provider name on error (72d07f2)
- doc: add code to generate doc via code annotations (259e61d)
- docgen: check the generated doc (07b1696)
- dont include out of cwd templates (1b19261)
- dont override user cursorline preference (0f59641)
- expose all search engines at once (1e81d32)
- improve error message for 404 (8daf90a)
- introduce mega.cmdparse and applies it to a RAG (a70bdaa)
- keep AvanteSwitchProvider in alphabetical order (#3222) (3f9737a)
- label ACP providers in switch selector (a75581d)
- let user to select model and "plan" mode when using ACP (#2998) (8c84af0)
- log absence of lazy just once at startup (54575ec)
- log failed command (18f7be9)
- log: use standard neovim log folder (9180f9b)
- lua-ls: bumped from 3.13.6 to 3.18.2 (059cb2a)
- no need to pass ALLOW_RESET anymore in env (b3466a3)
- providers: update GLM model from glm-4.6 to glm-4.7 (#2897) (5e37159)
- rag: ability to configure embedding size from client (968381c)
- rag: ability to set log level (de32da1)
- rag: ability to set worker number on CLI (a12d992)
- rag: accept custom runner functions (2b4d100)
- rag: better handle timeout errors (dfe860c)
- rag: change default folder from /tmp to $XDG_STATE_HOME (cd157ef)
- rag: configure service URL and derive launch port (aa05b85)
- rag: correctly forwards some errors (a495a49)
- rag: dont read log level from env (25f47a6)
- rag: dont read port from env anymore (098b9cb)
- rag: dont start the server when calling --help (2933f4d)
- rag: export starters and accept Docker launch options (12ae386)
- rag: expose run_rag_service (2a87492)
- rag: hardcode available provider to give better error feedback (d13d8ea)
- rag: load ignore file from XDG_CONFIG_HOME when available (49a3e85)
- rag: log persisting storage directory (7ec367c)
- rag: pass arguments on the CLI (2a87492)
- rag: pass arguments via CLI instead of environment variables (2a87492)
- rag: try to ignore .jj folder (24715bd)
- relocate acp log (#3063) (99ff1cf)
- rename "nix" runner with "native" (1840a5a)
- rename AvanteToggle into Avante toggle (d55d6ee)
- rename rag-service -> avante-rag-service (24f223b)
- restore last selected model if no default provider is set in config (ae96612)
- save choice of SwitchProvider with --save (568669f)
- select models for current provider only (39c1e4e)
- Show acp mode header info (162c0b6)
- show selected item for native selector (#2915) (e1e70be)
- sidebar: focus the input when pressing i in the result window (7f3fbf9)
- slashcommands: add /resume (b7de9ec)
- speedup loading (#3177) (2865859)
- speedup: require pkce when needed (71df5ad)
- support bedrocks inference profile ARNs (#2910) (a45acbf)
- support configuration via global vim.g.avante (d2184db)
- support llama.cpp embeddings (24715bd)
- use vim.ui.select for AvanteSwitchProvider (#2935) (9b72d16)
- web_search: add Firecrawl search engine (fc82420)
- web_search: add Serply search engine (86d5740)
- zen: accept prompt on cli (1f90503)
Bug Fixes
- acp: align initialization and capabilities with ACP v1 (bf7507e)
- acp: align session setup and lifecycle with ACP v1 (ea24ed7)
- acp: avoid stale client state (131b40b)
- acp: clarify client implementation errors (944db77)
- acp: clarify rejected operation state (04064dd)
- acp: clarify unrecoverable client error (35597dd)
- acp: declare _replayed on BaseSessionUpdate for typecheck (cc8d467)
- acp: don't replay previous session when opening a new chat (664d298)
- acp: encode file URIs with vim.uri_from_fname (7af6d62)
- acp: fix error when using in acp repos (#2904) (a27b821)
- acp: Fix session reload status (8a26d93)
- acp: follow agent locations on tool_call_update and reduce grace period (#3141) (460af39)
- acp: hardcode version info until version is managed automatically (6c9fdf7)
- acp: identify provider in config warning (8d77787)
- acp: ignore replayed session/load updates (317b026)
- acp: never send an empty prompt array for the edit flow (b4cc3c9)
- acp: preserve message boundaries using message IDs (35bea9f)
- acp: recover Codex stale sessions (2fd012c)
- acp: reduce pending event queue limit (2d19258)
- acp: report unsupported transport type (4baa1f8)
- acp: return JSON-RPC error for fs/read_text_file on missing files (#2849) (0336666)
- acp: switch history before opening sidebar in select_history (e4f0a7b)
- add missing
localto platform variable in utils (#2983) (98b7fc2) - Add model_name to top container with optional styling (#2984) (348be57)
- address review comments on provider API compat PR (adec759)
- api: fix error detection (9d4adc9)
- apply StyLua formatting to bedrock.lua (#2912) (e89eb79)
- avante.llm_tools.helpers.is_ignored error (#2895) (2ffe820)
- AvanteBuild would not select the correct tag (3c0341b)
- AvanteBuild: dont use local remote name (#3178) (d8dd379)
- AvanteBuild: properly download prebuilt binaries on linux (98c58de)
- avoid "Content is not an image" warning with CJK IME input (fd1ba0a)
- avoid avante.Sidebar appearing twice in help (242b3d4)
- bedrock: skip sigv4 curl check when using bearer token (eba4ac8)
- bedrock: strip temperature for Claude 4+ models (98d4e97)
- build: fetch remote tags in Build.ps1 to support shallow clones (#3213) (94afb84)
- bumped the nvim-0.11 check (2bd6012)
- ci: make lua-typecheck stopped working (bbe840a)
- claude: match "claude-sonnet-4-6" as well (b62caf5)
- config: match versioned gpt codex models (#2963) (35f94a9)
- doc: replaced yetone/ with avante-corp where it makes sense (88aa523)
- don't set reasoning_content to empty string on assistant messages (a4efe2b)
- dont source jinja.vim twice (0222885)
- enhance CI builds, dynamic fork testing, and fix Windows paths (#3119) (09d571d)
- error message was incorrect (7f90a33)
- Fix missing path argument (d3d28cd)
- Fix not closed file handle in view.lua (#3228) (4d1601f)
- fix openai responses api calling (cdd5b77)
- fix switches between acp and provider (2cfb470)
- Fix tool calling status (00f6ffb)
- flake: add missing lockfile (1448c52)
- gemini: bump the default model (d1fa2c8)
- gitignore: ignore generated tags-* (bdf42ce)
- gpt-5-chat is not a reasoning model (f8a7cd1)
- gracefully handle utf-8 errors (#2834) (d3ec7c7)
- Handle Unicode surrogate pairs (#3068) (e1ca93e)
- hangs on tool calling to read_todos (#2835) (de6febb)
- history selector snacks.nvim live search error (#2870) (483c570)
- history: correct title type check in History.from_file() (#2898) (7a9fbbd)
- history: don't write a new chat to disk until it's used (8b38e85)
- history: improve parameter display in get_tool_display_name function (#2822) (44b5948)
- history: preserve valid timestamps when loading (c1157be)
- history: render ACP tool output from standard content (e2303e3)
- history: use ACP titles directly for tool display (4de38ae)
- kimi-acp: kimi acp tool call update is missing the kind field (#2814) (7f48770)
- list_models: inherit list_models as well (b340a18)
- llm_api_key error in launch_rag_service (#2866) (521633a)
- llm: address review feedback (16dc348)
- llm: keep API keys off curl's command line (efb9798)
- log: build reverse log level lookup without mutating the iterated table (a5cb87b)
- lua_ls: could not find plenary.Path (2cab1e1)
- lua-ls: previous change broke .luarc.json (d5832b6)
- make acp client send requests async (#2848) (cf352f6)
- missing 'die' function from setup-deps.sh (d9c326f)
- mistral: 'Tool call id was call_0fypS1hVX but must be a-z, A-Z, … (#2951) (2475e71)
- name for reasoning_context for openai provider (#2940) (ecc669a)
- openai: improve GPT-5/GPT-6 Responses routing and preserve finalized reasoning state (faf1ae6)
- openai: make reasoning work for both mistral and deepseek (6314998)
- openai: preserve Responses API phases and skip legacy role padding (bdffd74)
- Optimize the UUID generator to prevent duplicate UUIDs. (ec8392d)
- platform and APDDATA folder detection (#2973) (4016332)
- Prevent duplicate instruction appending in generate_prompts (#2916) (a9690b9)
- prevent provider and model switches during generation (ba86bb1)
- provider API compatibility and tool schema robustness (4465809)
- rag: fix the =error at startup (2973bbd)
- rag: fixed openai_like llm call (24715bd)
- rag: fixed you should define
IndexingHistory, (404ae2a) - rag: mismatch between python and lua code when requesting indexing_status (f8c4dca)
- rag: schedule project registration independently of launch (113beb5)
- rag: updated BASE_DATA_DIR to use the same as specified in lua (2a87492)
- remove default result header title (9f13c15)
- resolve CI typecheck and unit test failures (#2981) (6976258)
- respect Config.debug during acp client session (#2857) (bbf6d8f)
- revert vim.text.diff to vim.diff for Neovim 0.10 compatibility (0670b91)
- set execute bit on contrib/avante (3053d7a)
- setup-deps: make shebang nixos-compatible (#3026) (0764277)
- silence log error when flush doesnt exist (3d1e0a8)
- Silient codex _auth/status_update notification (#3233) (18fc40b)
- simplify ACP session not found matching (52b5457)
- skip Cargo.lock hook when no release PR is returned (a9d3454)
- Snacks picker format config (#2828) (ca95e03)
- suggestion: fix nil current_lines when the buffer gets padded (b93f9f7)
- support cancelling acp providers (#2847) (80f7079)
- templates: incorrect templates lead to uncomprehensible crash (07a1df8)
- test: now are now using vim.schedule for the response so let's wait for result to (4eb9c1f)
- typo in vertex claude endpoint url (#2871) (2afb705)
- Update avante's winbar after selecting new provider (62e1d93)
- use dictionaries for empty objects (#2929) (d80b796)
- use revision as version (68ff1c4)
- web_search: call on_complete outside the fast event context (a22876b)
- win: correct project directory path resolution on Windows (#3099) (66bc692)
- wrap nvim_del_autocmd in vim.schedule to avoid fast event context error (#2873) (b62b637)
Miscellaneous Chores
- we never used REPO_OWNER/REPO_NAME (5f0d09e)
Code Refactoring
- move some of the sidebar setup code to ftplugin/ (ea06bb7)
- replace plenary.curl with vim.net for web_search (1831636)
Continuous Integration
- build before creating release (3c63a9e)
- dont chaincall luarocks-upload (5e16297)
- fix target-branch (1219b2d)
What's Changed
- feat: Add support for gpt 6 reasoning model family by @cybaol in #3269
- fix(acp): stop session/load replay from leaking into new chats, history selection, and editor navigation by @yashanand1910 in #3262
- doc: moved avante-tools before avante-custom-tools by @teto in #3272
- fix(log): build reverse log level lookup without mutating the iterated table by @Schwick3 in #3273
- feat(acp): add :Avante acp sessions to list and resume agent sessions by @Schwick3 in #3271
- doc: add missing events by @teto in #3276
- build(nix): expose rust libraries by @teto in #3282
- feat(web_search): add Firecrawl search engine by @JuampiHernandez in #3279
- fix(web_search): call on_complete outside the fast event context by @JuampiHernandez in #3280
- fix(test): now are now using vim.schedule for the response so let's w… by @teto in #3284
- fix(acp): align initialization and capabilities with ACP v1 by @cybaol in #3281
- ci: nix-build libraries by @teto in #3283
- fix(acp): align session setup and lifecycle with ACP v1 by @cybaol in #3285
- feat!: dont include out of cwd templates by @teto in #3278
- refactor(AvanteACPModes): expose as
Avante acp modesinstead by @teto in #3287 - feat: label ACP providers in provider switch by @Tiancheng-Xu in #3266
- ci: the nix build was not pushed to cache by @teto in #3289
- feat(AvanteSwitchProvider): accepter filters by @teto in #3288
- fix: fix switches between acp and provider by @cybaol in #3290
- fix(acp): never send an empty prompt array for the edit flow by @burner in #3218
- fix: remove default result header title by @cybaol in #3265
- feat: Show acp mode header info by @cybaol in #3267
- refactor: set AvantePromptInput options in ftplugin/ by @teto in #3296
- fix(history): don't write a new chat to disk until it's used by @yashanand1910 in #3304
- feat(sidebar): focus the input when pressing i in the result window by @shivenaggarwal in #3306
- feat(web_search): add Serply search engine by @googio in #3307
- fix(history): preserve valid timestamps when loading by @teto in #3308
- ci: have pre-commit workflow use nix by @teto in #3314
- chore: pre-commit: v5.0.0 -> v6.0.0 by @teto in #3315
- fix(acp): recover Codex stale sessions by @sean0407 in #3311
- fix(llm): keep API keys off curl's command line by @shivenaggarwal in #3309
- feat(zen): accept prompt on cli by @teto in #3297
- ci: improve release process by @teto in #3316
- backport fixes done to release process in v0.4 branch by @teto in #3322
- fix(suggestion): fix nil current_lines when the buffer gets padded by @tt67wq in #3332
- chore: rename AvanteHistory into Avante resume by @teto in #3333
- refactor(acp): move protocol handling to the official Rust SDK by @cybaol in #3303
- bump luarocks action which now uses lux by @teto in #3337
- chore: fixed version in lockfile by @teto in #3341
- ci: fix prerelease change by @teto in #3342
- ci: another try by @teto in #3343
- chore: we never used REPO_OWNER/REPO_NAME by @teto in #3345
- ci: enable cargo-workspace plugin by @teto in #3346
- fix(history): render ACP tool output from standard content by @cybaol in #3347
- fix(acp): encode file URIs with vim.uri_from_fname by @cybaol in #3349
- ci: run release workflow for main-tests branch by @teto in #3350
- ci: remove code that does nothing by @teto in #3351
- fix(acp): preserve message boundaries using message IDs by @cybaol in #3353
- refactor: rename AvanteACPModels into
Avante acp modelsby @teto in #3354 - feat(AvanteBuild): accept a --version flag by @teto in #3335
- ci: factorize nix install by @teto in #3358
- feat: rename AvanteToggle into Avante toggle by @teto in #3356
- feat: dont override user cursorline preference by @teto in #3359
- ci: speed up docgen action by @teto in #3361
- ci: update nix cargoHash on cargo lockfile update by @teto in #3362
- chore(main): release 0.5.0 by @github-actions[bot] in #3365
New Contributors
- @yashanand1910 made their first contribution in #3262
- @Schwick3 made their first contribution in #3273
- @JuampiHernandez made their first contribution in #3279
- @Tiancheng-Xu made their first contribution in #3266
- @burner made their first contribution in #3218
- @shivenaggarwal made their first contribution in #3306
- @googio made their first contribution in #3307
- @sean0407 made their first contribution in #3311
- @tt67wq made their first contribution in #3332
Full Changelog: v0.4.0...v0.5.0