whatisgithub

What is nvim-dap?

mfussenegger/nvim-dap — explained in plain English

Analysis updated 2026-06-24

7,110LuaAudience · developerComplexity · 3/5Setup · hard

In one sentence

nvim-dap is a Neovim plugin that adds interactive debugging, breakpoints, step-through execution, and variable inspection, by implementing the same Debug Adapter Protocol used by VS Code.

Mindmap

mindmap
  root((nvim-dap))
    What it does
      Set breakpoints
      Step through code
      Inspect variables
    Tech Stack
      Lua
      Neovim
      DAP protocol
    Use Cases
      Debug any language
      Replace print debugging
    Extensions
      UI companion plugins
      Language adapters
    Audience
      Neovim developers
      Power users
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

Set breakpoints and step through your code line by line inside Neovim instead of adding print statements everywhere.

USE CASE 2

Inspect variable values and call stacks at runtime using the built-in interactive console during a debugging session.

USE CASE 3

Build a full IDE-style debugging workspace in Neovim by combining nvim-dap with community UI extension plugins.

What is it built with?

LuaNeovim

How does it compare?

mfussenegger/nvim-dapcraftzdog/dotfiles-publicfolke/which-key.nvim
Stars7,1107,1017,120
LanguageLuaLuaLua
Setup difficultyhardhardeasy
Complexity3/53/52/5
Audiencedeveloperdeveloperdeveloper

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

How do you get it running?

Difficulty · hard Time to first run · 1h+

Each language requires separately installing and configuring its own debug adapter, consult the community wiki for per-language setup instructions.

So what is it?

Neovim is a text-based code editor that runs in a terminal. This plugin, nvim-dap, adds interactive debugging to Neovim by implementing the Debug Adapter Protocol, a standard interface that many programming tools use to communicate with debuggers. In plain terms, debugging means pausing a running program at specific points, stepping through it line by line, and inspecting what values variables hold at any given moment. Without a tool like this, developers often resort to printing values to the screen to understand what their code is doing. nvim-dap gives Neovim users the same kind of interactive debugging experience found in graphical editors like VS Code or IntelliJ. The plugin lets you set breakpoints (pause points) in your code, step over or into functions one line at a time, and examine the state of the program through a built-in interactive console or through optional UI extensions. It supports many programming languages because it relies on separate debug adapters, small programs that translate between the Debug Adapter Protocol and each language's own debugger. You install and configure the adapter for each language you want to debug separately, with the community wiki providing per-language setup instructions. The project is written in Lua, which is the scripting language Neovim uses for plugins. Installation follows the standard Neovim plugin process, and the README explicitly notes that installing debug adapters for specific languages is outside its scope, leaving that to the user. There are companion plugins from the community that build on top of nvim-dap to provide richer user interfaces, such as full IDE-style panels or inline variable display during a debugging session. The core plugin is intentionally minimal, designed to serve as a foundation that other tools can extend.

Copy-paste prompts

Prompt 1
Set up nvim-dap with a Python debug adapter so I can set breakpoints and step through a Flask app inside Neovim.
Prompt 2
Show me the Lua config to add a keybinding in Neovim that toggles a breakpoint on the current line using nvim-dap.
Prompt 3
How do I configure nvim-dap to launch a Node.js script and pause at the first breakpoint automatically?
Prompt 4
What community UI plugins work with nvim-dap to give me VS Code-style variable panels, a call stack view, and inline variable display?
Prompt 5
Walk me through installing and configuring a Rust debug adapter for nvim-dap so I can debug a Cargo project.

Frequently asked questions

What is nvim-dap?

nvim-dap is a Neovim plugin that adds interactive debugging, breakpoints, step-through execution, and variable inspection, by implementing the same Debug Adapter Protocol used by VS Code.

What language is nvim-dap written in?

Mainly Lua. The stack also includes Lua, Neovim.

How hard is nvim-dap to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is nvim-dap for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.