coc.nvim
AGENTS.md25k starsChanged 3 years agoMITView on GitHub
coc.nvim is a language client framework for Vim and Neovim. It provides LSP integration, extension APIs, completion, diagnostics, workspace management and plugin infrastructure. This project is performance-sensitive and must maintain compatibility with existing Vim/Neovim users. Maintain compatibility with: Be careful with: Every created resource should have a clear cleanup path. Before editing: Do not remove existing code only because it looks unused.
We split this AGENTS.md into the rules it gives an agent
12 rules. About 0 are common, 6 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 33
Avoid any unless unavoidable.
- Distinctive: line 34
Prefer existing utility functions over introducing new helpers.
- Distinctive: line 49
Every created resource should have a clear cleanup path.
- Distinctive: line 67
Do not remove existing code only because it looks unused.
- Distinctive: line 76
remove compatibility code without proof
- Distinctive: line 80
When add new feature and introduce break changes, add the change to history.md.
- Very specific: line 81
Update doc/coc.txt after vim interface change.
- Very specific: line 82
Update doc/coc-api.txt after API change.
- Very specific: line 83
Update doc/coc-config.txt after coc.nvim configuration change.
- Very specific: line 88
Check that public coc.nvim APIs remain stable and properly typed.
- Distinctive: line 89
Check Vim and Neovim behavior, buffer switching, cancellation, disposal, and asynchronous race conditions.
- Very specific: line 95
Use node scripts/test/cli.mjs <path_to_file> for run specific test file.
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
AGENTS.md
Project Overview
coc.nvim is a language client framework for Vim and Neovim. It provides LSP integration, extension APIs, completion, diagnostics, workspace management and plugin infrastructure.
This project is performance-sensitive and must maintain compatibility with existing Vim/Neovim users.
Compatibility Requirements
Maintain compatibility with:
- Vim 9+ and neovim
- Existing coc.nvim extensions
- Existing user configurations
Avoid:
- breaking public APIs
- changing extension behavior unintentionally
- changing configuration semantics
TypeScript Rules
- Use strict TypeScript.
- Avoid
anyunless unavoidable. - Prefer existing utility functions over introducing new helpers.
Async and Resource Management
Be careful with:
- promises
- event listeners
- timers
- child processes
- RPC channels
- Vim/Neovim lifecycle
Every created resource should have a clear cleanup path.
Check:
- error handling
- cancellation
- process shutdown
- disposal behavior
Git Rules
Before editing:
- inspect git history when behavior is unclear
- understand why existing code exists
Do not remove existing code only because it looks unused.
Forbidden Actions
Do not:
- change public APIs without discussion
- remove compatibility code without proof
Add documentation
- When add new feature and introduce break changes, add the change to history.md.
- Update doc/coc.txt after vim interface change.
- Update doc/coc-api.txt after API change.
- Update doc/coc-config.txt after coc.nvim configuration change.
Code Review Rules
- Report only consequential correctness, compatibility, lifecycle, concurrency, and performance issues.
- Check that public coc.nvim APIs remain stable and properly typed.
- Check Vim and Neovim behavior, buffer switching, cancellation, disposal, and asynchronous race conditions.
- Ignore formatting and lint issues already covered by CI.
Testing
- Jest is not used by this project, never invoke Jest.
- Use
node scripts/test/cli.mjs <path_to_file>for run specific test file.
Trending
Quiet since August.about the whole repository
Who's talking about neoclide/coc.nvim
- Jake Wiesler“Up And Running With Neovim + LSP”YouTube · Dec 17, 2021 · 47k views
- s1n7ax“[DEMO] Vim as a Java IDE”YouTube · Oct 27, 2020 · 27k views
- Avahe Kellenberger“Setting up Neovim for Typescript - Part 1”YouTube · Apr 5, 2020 · 24k views
- NeuralNine“Vim Snippets Are Next Level”YouTube · Feb 24, 2022 · 14k views
- Mr Devlogger“Install autocomplete intellisense plugin in neovim in Windows 10 | Latest”YouTube · Sep 11, 2021 · 7.7k views
The biggest 5 of 76 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 76
Talked about on GitHub, Stack Overflow, YouTube, Hacker News, the web and Bluesky (76 times).
On GitHub · 28
- Jul 16, 2021E1208: -complete used without -nargs — jremmen/vim-ripgrep28 reactions
- Feb 15, 2019[RFC]: add MenuPopupChanged autocmd — neovim/neovim27 reactions · 53 comments
- May 1, 2022Error Missing quote (lua/packer/load.lua:139) — wbthomason/packer.nvim12 reactions · 1 comment
- May 7, 2023Diagnostics option to display virtual text only in current line — neovim/neovim10 reactions · 6 comments
- Apr 12, 2020Support coc.nvim — vala-lang/vala-language-server10 reactions · 1 comment
23 more on GitHub
- Nov 23, 2019coc.nvim signatureHelp / floating windows break Undo history — neovim/neovim10 reactions · 23 comments
- Jan 28, 2019Conflict with coc.nvim tab action. — SirVer/ultisnips9 reactions · 5 comments
- Aug 28, 2021`COQLater` command to disable — ms-jpq/coq_nvim8 reactions · 3 comments
- Apr 17, 2020Support javascriptreact and typescriptreact filetypes — sbdchd/neoformat8 reactions
- Jan 2, 2020crash with statusline + coc.nvim — neovim/neovim8 reactions · 11 comments
- Mar 11, 2022lsp server doesn't start using coc.vim — graphql/graphiql7 reactions · 65 comments
- Apr 2, 2021Vim freezing on write: How can I debug? Anyone else getting this? — neoclide/coc-prettier6 reactions · 9 comments
- Aug 26, 2022inlay hints — jdhao/nvim-config5 reactions · 1 comment
- Dec 21, 2019Stop using doHover? — fannheyward/coc-ecdict5 reactions · 2 comments
- Sep 7, 2020new qmk subcommand for creating `compile_commands.json` for better clangd/IDE interop — qmk/qmk_firmware4 reactions · 13 comments
- Jul 7, 2019vimPlugins: Init various coc extension plugins — NixOS/nixpkgs4 reactions · 13 comments
- Sep 7, 2021feat: add semanticTokens support — neoclide/coc-tsserver3 reactions
- Jan 24, 2020add coc.nvim for "intellisense" code completion — ContinuityControl/dotfiles3 reactions · 2 comments
- Apr 10, 2019Add support for coc.nvim — wellle/tmux-complete.vim3 reactions · 15 comments
- Oct 31, 2025feat: add :NeovideConfig command to open the config file — neovide/neovide2 reactions · 3 comments
- Aug 12, 2020Coc config file requires a {} nesting everything — haskell/haskell-language-server2 reactions
- Apr 25, 2020add argument to `qmk compile` to build compile_commands.json for you — qmk/qmk_firmware2 reactions · 13 comments
- Feb 10, 2020Add `.jsonc` extension — github-linguist/linguist2 reactions · 4 comments
- Jun 25, 2021fix(actions): Extract client ID from command — antoinemadec/coc-fzf1 reaction · 1 comment
- Feb 20, 2020Clear highlights instead of link to Normal — derekwyatt/vim-scala1 reaction · 5 comments
- Dec 22, 2019Open new tab in jumping to definition — himkt/config1 reaction
- Oct 22, 2019Resolve problem with coc.nvim installation — scalameta/metals1 reaction
- Jul 26, 2019Removed neocomplete in favor of coc.nvim — mattjmorrison/jarrod-taylor-made-dotfiles1 reaction
On Stack Overflow · 20
- Aug 13, 2020how to move up and down in vim(coc) autocomplete12 votes
- Jan 10, 2023vimscript: calling function inside inoremap throws "unknown function"10 votes
- Oct 17, 2020Which is the current setup to use OCaml in Vim?7 votes
- Oct 11, 2023coc-rust-analyzer does not have inlay type hint anymore4 votes
- Aug 31, 2022Set up c# language server (omnisharp) for neovim to develop app with .NET Core 5.0.173 votes
15 more on Stack Overflow
- Sep 3, 2020How to trigger autocomplete suggestion box in vim or neovim (Plugin neoclide/coc.vim)3 votes
- Aug 11, 2020How to select first item in popup menu and close menu in a single keybind for autocomplete in nvim?2 votes
- May 8, 2020Coc: Change setting from key or script2 votes
- Aug 29, 2026How do I run Haskell with ghcid in terminal Vim (i.e. not Neovim, GVim, ...)?1 vote
- Feb 20, 2023coc.vim failing with :checkhealth command1 vote · 1 answer
- Oct 4, 2021How to configure vim for auto complete in Python file and Javascript file too1 vote
- Feb 15, 2021A way to display a general invalid status of a buffer using Vim CoC1 vote
- Aug 25, 2022When I installed coc completion on neovim, Then I open nvim as usual and see this error0 votes
- Aug 25, 2022How to get autocomplete working in Coc version 0.0.82?0 votes · 1 answer
- May 12, 2022In a vim expression, how can I return back to normal mode?0 votes · 1 answer
- Jan 1, 2021Refactoring in Vim0 votes
- Aug 27, 2020Vim Coc error message when executing :CocCommand clangd.install0 votes · 1 answer
- May 10, 2020How to make coc show linting popup no matter where the cursor is on the line?0 votes
- Jun 23, 2022Why can't I change a coc/neoclide key binding in Vim 8.1?-1 votes · 1 answer
- Aug 28, 2020coc.nvim - no rome found in your project root-2 votes · 2 answers
On YouTube · 15
- Dec 17, 2021Up And Running With Neovim + LSP — Jake Wiesler47k views · 90 comments
- Oct 27, 2020[DEMO] Vim as a Java IDE — s1n7ax27k views · 31 comments
- Apr 5, 2020Setting up Neovim for Typescript - Part 1 — Avahe Kellenberger24k views · 22 comments
- Feb 24, 2022Vim Snippets Are Next Level — NeuralNine14k views · 16 comments
- Sep 11, 2021Install autocomplete intellisense plugin in neovim in Windows 10 | Latest — Mr Devlogger7.7k views · 19 comments
10 more on YouTube
- Nov 6, 2022Set up VIM for Flutter and Dart with COC — I code you to death4.1k views · 6 comments
- Feb 15, 2023How to configure coc.nvim for Neovim | Neovim setup for Competitive Programming | Part 7 — Codingsuju3.6k views · 2 comments
- May 29, 20218. "Go to definition", autocomplete, diagnostic, snippets, colorpicker, etc. в NeoVim/Vim с LSP/COC — mrquake3.4k views · 69 comments
- Feb 15, 2023C++ LSP for Neovim | Neovim setup for Competitive Programming| Part 6 | coc.nvim using vim-plug — Codingsuju2.5k views · 3 comments
- Dec 3, 2021Conquer of Completion // 25 Days of Linux — MAKC1k views · 8 comments
- Nov 6, 2021Neovim (nvim) — HC Academy 902 views
- Nov 8, 2021coc-java possible bug | duplicate keywords | Help :c — Orlando809 views · 5 comments
- Jul 13, 2025Vim 裸写 C++ 算法题太痛苦?用 coc.nvim 加上 VSCode 级别自动补全 - EP 29 — HU Xiaoxu183 views · 1 comment
- Jun 30, 2021Neovim Kursi 4-Dars | Neovim-ni Coc bilan VSCode kabi sozlaymiz — Komil Sobitov127 views · 4 comments
- Nov 17, 2020Gource visualisation: neoclide/coc.nvim on 2020-11-17 — Gourcer27 views
On Hacker News · 8
- Mar 30, 2019Coc.nvim – Intellisense Engine for Vim8 and Neovim267 points · 198 comments
- Apr 15, 2022Neoclide/coc.nvim: use Anti 996 license4 points
- Oct 12, 2021Vim Conqueror of Completion3 points
- Jul 1, 2020Make Vim as Smart as VSCode3 points · 1 comment
- Mar 31, 2021Coc.nvim: Make your Vim/neovim smart as VSCode2 points
3 more on Hacker News
- Nov 30, 2018Neovim Server Language Support with codelens feature based on virtual text2 points
- Nov 28, 2018Language Server Protocol (LSP) support for vim and neovim, featured as VSCode2 points
- Jan 25, 2019List support of coc.nvim1 point
On the web · 3
- Aug 28, 2026Home · neoclide/coc.nvim Wiki — google.com
- Nov 19, 2018Can not install extensions · Issue #163 · neoclide/coc.nvim — google.com
- Aug 17, 2018coc.nvim conflict with vim-go · Issue #53 — google.com
On Bluesky · 2
- Jul 10, 2025일본은 Neovim 못지 않게 Vim을 쓰는 사람이 많은데... Vim을 그대로 쓸 수 이유가 나름대로 있는데.. 첫번째로는, coc.nvim 이라는 걸로 nodejs 런타임으로 랭귀지서버/포매터 등등을 가져쓸 수 있어서 그냥 쓰는 것이다....… — @kodingwarrior.hackers.pub.ap.brid.gy3 likes and reposts
- Dec 27, 2024i'm going back to coc. i can't believe we've deluded ourselves into collectively thinking that native lsp is somehow a better experience… — @texoport.in1 likes and repost · 1 reply
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

