whatisgithub

What is coc.nvim?

neoclide/coc.nvim — explained in plain English

Analysis updated 2026-06-21

25,145TypeScriptAudience · developerComplexity · 3/5Setup · moderate

In one sentence

Coc.nvim is a Vim and Neovim plugin that adds VS Code-style smart coding features, autocomplete, error highlighting, go-to-definition, and formatting, by connecting your editor to Language Server Protocol servers.

Mindmap

mindmap
  root((coc.nvim))
    What it does
      Adds IDE features to Vim
      Connects to LSP servers
      Runs Node.js background process
    Features
      Autocomplete
      Error highlighting
      Go to definition
      Code formatting
    Tech stack
      TypeScript
      Node.js
      Vim Script
    Use cases
      TypeScript in Neovim
      Python type checking
      Multi-language IDE setup
    Requirements
      Vim 9 or Neovim 0.8
      Node.js 20 plus
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Get intelligent TypeScript autocomplete and inline error checking inside Neovim without switching to VS Code.

USE CASE 2

Add language-aware go-to-definition and find-references to Vim for any language that has an LSP server.

USE CASE 3

Auto-format code on save inside Neovim using coc extensions like coc-prettier or coc-eslint.

USE CASE 4

Install coc-pyright to get full Python type checking and autocomplete in Vim directly from the terminal.

What is it built with?

TypeScriptNode.jsVim Script

How does it compare?

neoclide/coc.nvimwithfig/autocompletegooglechromelabs/squoosh
Stars25,14525,16825,170
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderateeasy
Complexity3/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Vim 9.0+ or Neovim 0.8+ and Node.js 20+, each language needs its own coc extension installed separately.

So what is it?

Coc.nvim is a plugin for the Vim and Neovim text editors that adds the kind of smart code features normally found only in full IDEs like Visual Studio Code. Vim is a powerful, keyboard-driven text editor beloved by developers, but by default it has no awareness of programming language semantics, it does not auto-complete based on available functions, highlight errors, or let you jump to a function's definition. Coc.nvim solves this by running a separate Node.js process alongside your editor that communicates with language servers via the Language Server Protocol (LSP). A language server is a background process that understands a specific programming language, it knows the syntax, can find references, suggest completions, detect type errors, and more. Because LSP is a standard protocol, the same language servers that power VS Code also work with coc.nvim. In practical terms, once installed you get features like intelligent autocomplete as you type, inline error and warning indicators, go-to-definition, find-references, code formatting, and one-click fixes, all inside Vim. You install language-specific support as coc extensions (for example, coc-tsserver for TypeScript). It requires Vim 9.0 or Neovim 0.8 and Node.js 20 or newer, and is written in TypeScript.

Copy-paste prompts

Prompt 1
Write a Neovim init.lua configuration that installs coc.nvim using lazy.nvim and sets up TypeScript support via coc-tsserver.
Prompt 2
Show me how to configure coc.nvim to auto-format Python code on save using the coc-pyright extension.
Prompt 3
How do I add a custom LSP server to coc.nvim for a language that has no official coc extension?
Prompt 4
Write a coc-settings.json snippet that enables inlay type hints and signature help for TypeScript.
Prompt 5
How do I use coc.nvim's built-in snippet support to expand custom code templates as I type in Neovim?

Frequently asked questions

What is coc.nvim?

Coc.nvim is a Vim and Neovim plugin that adds VS Code-style smart coding features, autocomplete, error highlighting, go-to-definition, and formatting, by connecting your editor to Language Server Protocol servers.

What language is coc.nvim written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, Vim Script.

How hard is coc.nvim to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is coc.nvim for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.