debugging-code
Interactively debug source code — set breakpoints, step through execution, inspect live variables, evaluate expressions, and trace root caus
Open source Repository Open in the app JSON README (API)
About
Interactively debug source code — set breakpoints, step through execution, inspect live variables, evaluate expressions, and trace root causes.
Details
- Kind
- Plugins
- Topic
- Developer tools
- Publisher
- almogbaku
- Origin
- marketplace
- Category
- ferramentas
- Stars
- 318
- Forks
- 27
- Open pull requests
- 1
- Last push
- 2026-04-17T20:40:54Z
- Repository state
- ativo
- Language
- Go
- License
- MIT
- Added
- 2026-08-30 01:48:58
- Updated
- 2026-08-30 01:48:58
- Origin id
almogbaku/debug-skill/debugging-code
README
<p align="center"> <img src=".github/logo.png" alt="debug-skill" width="220"> </p> <p align="center"> <strong>Let your coding agent debug like a human developer.</strong><br> Set breakpoints, step through code, evaluate expressions — the way you actually debug. </p> <p align="center"> <a href="https://github.com/AlmogBaku/debug-skill/releases/latest"><img src="https://img.shields.io/github/v/release/AlmogBaku/debug-skill?style=flat-square&color=00c853" alt="Latest Release"></a> <a href="https://github.com/AlmogBaku/debug-skill/actions/workflows/release.yml"><img src="https://img.shields.io/github/actions/workflow/status/AlmogBaku/debug-skill/release.yml?style=flat-square" alt="Build Status"></a> <a href="https://github.com/AlmogBaku/debug-skill/blob/master/go.mod"><img src="https://img.shields.io/github/go-mod/go-version/AlmogBaku/debug-skill?style=flat-square" alt="Go Version"></a> <a href="https://github.com/AlmogBaku/debug-skill/blob/master/LICENSE"><img src="https://img.shields.io/github/license/AlmogBaku/debug-skill?style=flat-square" alt="License: MIT"></a> <a href="https://github.com/AlmogBaku/debug-skill/stargazers"><img src="https://img.shields.io/github/stars/AlmogBaku/debug-skill?style=flat-square&color=yellow" alt="GitHub Stars"></a> </p> <p align="center"> If this saves you a debugging session, please <a href="https://github.com/AlmogBaku/debug-skill"><strong>star the repo</strong></a> — it helps others find it. </p> --- AI coding agents (Claude Code, Codex, Opencode, Cursor) are stuck with `print` statements and guesswork. **debug-skill** gives them what human developers have: a real debugger they can actually use. It ships two things: - **A Claude Code skill** — teaches Claude *how* to debug: when to set breakpoints, how to step through code, how to inspect state - **The `dap` CLI** — a stateless CLI wrapper around the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) so any agent can drive a real debugger from Bash --- ## Demo [](https://youtu.be/ZxXvTtilZr0) --- ## The Skill > Install the skill, and Claude debugs your code the way *you* would — not with print statements. The `debugging-code` skill gives Claude structured knowledge of the debugging workflow: setting breakpoints, stepping through execution, inspecting locals and the call stack, evaluating expressions mid-run. It uses the `dap` CLI as its tool. ### Install for Claude Code Via the plugin marketplace — no manual setup needed: ``` /plugin marketplace add AlmogBaku/debug-skill /plugin install debugging-code@debug-skill-marketplace ``` ### Install for other agents Via [skills.sh](https://skills.sh) — works with Cursor, GitHub Copilot, Windsurf, Cline, and [20+ more agents](https://skills.sh/docs): ```bash npx skills add AlmogBaku/debug-skill # or: bunx skills add AlmogBaku/debug-skill ``` Or manually copy `skills/debugging-code/` into your agent's skills. --- ## The `dap` CLI `dap` wraps the Debug Adapter Protocol behind simple, stateless CLI commands. A background daemon holds the session; the CLI sends one command and gets back the full context — no interactive terminal required. ### Install ```bash # One-liner (Linux & macOS) bash <(curl -fsSL https://raw.githubusercontent.com/AlmogBaku/debug-skill/master/skills/debugging-code/scripts/install-dap.sh) ``` <details> <summary>Other install methods</summary> **From Homebrew (for macOS):** ```bash brew install AlmogBaku/tap/dap ``` **From sources:** ```bash # Go install go install github.com/AlmogBaku/debug-skill/cmd/dap@latest ``` Or download a pre-built binary from the [releases page](https://github.com/AlmogBaku/debug-skill/releases/latest). </details> ### Quick Start ```bash dap debug app.py --break app.py:42 # start, stop at breakpoint dap eval "len(items)" # inspect a value dap inspect data --depth 2 # expand nested objects dap step # step over dap continue # next breakpoint dap continue --to app.py:50 # run to specific line dap pause # interrupt if hanging dap restart # re-run, preserving breakpoint changes dap stop # end session ``` Execution commands (`debug`, `continue`, `step`) return **full context automatically**: current location, surrounding source, local variables, call stack, and program output. No follow-up calls needed. ### Usage Examples ```bash # Python dap debug app.py --break app.py:42 # Go dap debug main.go --break main.go:15 # Node.js / TypeScript dap debug server.js --break server.js:10 # Rust / C / C++ dap debug hello.rs --break hello.rs:4 # Attach to a remote debugger (e.g. debugpy in a container) dap debug --attach container:5678 --backend debugpy --break handler.py:20 # Attach to a running process by PID dap debug --pid 12345 --backend debugpy # Pass arguments to the program dap debug app.py --break app.py:10 -- --config prod.yaml --verbose ``` ### Commands | Command | Description | |--------------------------------------|----------------------------------------------------------------| | `dap debug <script>` | Start debugging (local or `--attach host:port` or `--pid PID`) | | `dap stop` | End session | | `dap step [in\|out\|over]` | Step (default: over) | | `dap continue` | Resume execution (`--to file:line` for temp breakpoint) | | `dap context [--frame N]` | Re-fetch current state | | `dap eval <expr> [--frame N]` | Evaluate expression in current frame | | `dap inspect <var> [--depth N]` | Inspect variable (expand nested objects) | | `dap output` | Drain buffered stdout/stderr since last stop | | `dap pause` | Pause a running program | | `dap restart` | Restart session, preserving breakpoint changes | | `dap threads` | List all threads | | `dap thread <id>` | Switch to a different thread | | `dap break list\|add\|remove\|clear` | Manage breakpoints mid-session | **Global flags:** `--json` (machine-readable output), `--session <name>` (named sessions), `--socket <path>` (custom socket path), `--context-lines <int>` (lines of source context) ### Supported Languages | Language | Backend | Auto-detected | |--------------------|-------------|:-------------:| | Python | debugpy | yes | | Go | dlv (Delve) | yes | | Node.js/TypeScript | js-debug | yes | | Rust / C / C++ | lldb-dap | yes | Backend is inferred from the file extension. Override with `--backend <name>`. ### How It Works ``` dap <cmd> → Unix socket → Daemon → DAP protocol → debugpy / dlv / js-debug / lldb-dap → your program ``` The daemon starts automatically on `dap debug` and shuts down on `dap stop` (or after 10 min idle). It's invisible — you never manage it directly. ### Multi-Session Multiple agents can debug independently with named sessions: ```bash dap debug app.py --session agent1 --break app.py:10 dap debug main.go --session agent2 --break main.go:8 dap stop --session agent1 # stops agent1 only ``` Each session has its own daemon and socket. Omit `--session` to use the default session. --- ## Contributing PRs and issues welcome. See `claudedocs/` for architecture details and `CLAUDE.md` for code conventions. ## Support the Project If debug-skill saves you from a painful debugging session, consider [starring the repo](https://github.com/AlmogBaku/debug-skill/stargazers) — it helps others find it and keeps the project going. ## License MIT