Dapper is a Python implementation of the Debug Adapter Protocol (DAP), with support for core debugging workflows, VS Code integration, and lower-overhead runtime instrumentation.
The full documentation is available at https://jnsquire.github.io/dapper/.
- Implements the Debug Adapter Protocol for Python debugging clients
- Integrates with Python runtime debugging facilities and DAP-compatible tooling
- Supports TCP sockets and IPC transports for adapter-launcher communication
- Provides breakpoints, stepping, stack inspection, and variable evaluation
For a detailed checklist of implemented and planned debugger features, see:
- Debugger Features Checklist - Complete feature matrix with implementation status
Dapper works directly with VS Code's built-in debugger. See Using Dapper with VS Code for setup, launch configuration, attach configs, and all VS Code-specific features.
Dapper is currently installed from source for development and evaluation:
git clone https://github.com/jnsquire/dapper.git
cd dapper
uv syncFor development setup, see Development Setup.
For a full walkthrough, see the Getting Started section of the documentation:
- Quick Start — first debugging session in minutes
- Using Dapper with VS Code — launch configs, attach, IPC, and VS Code-specific features
- Examples — practical code examples
When developing locally, run tests through uv to ensure the expected environment is used and to avoid spurious async-test warnings. The development testing page contains the full workflow, and VS Code also exposes the bundled tasks:
Tasks → Run Test Task → Tests: run all (uv)- runs the full suite withuv run pytestTasks → Run Test Task → Tests: unit+integration (uv)- runs the unit and integration suites only
These tasks provide a consistent way to run the test suite directly from the editor.
MIT