{
  "markdown": "<p align=\"center\">\n  <img src=\".github/logo.png\" alt=\"debug-skill\" width=\"220\">\n</p>\n\n<p align=\"center\">\n  <strong>Let your coding agent debug like a human developer.</strong><br>\n  Set breakpoints, step through code, evaluate expressions — the way you actually debug.\n</p>\n<p align=\"center\">\n  <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>\n  <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>\n  <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>\n  <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>\n  <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>\n</p>\n\n<p align=\"center\">\n  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.\n</p>\n\n---\n\nAI coding agents (Claude Code, Codex, Opencode, Cursor) are stuck with `print` statements and guesswork. **debug-skill**\ngives them what human developers have: a real debugger they can actually use. It ships two things:\n\n- **A Claude Code skill** — teaches Claude *how* to debug: when to set breakpoints, how to step through code, how to\n  inspect state\n- **The `dap` CLI** — a stateless CLI wrapper around\n  the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/) so any agent can drive a real\n  debugger from Bash\n\n---\n\n## Demo\n\n[![Watch the demo](.github/demo.gif)](https://youtu.be/ZxXvTtilZr0)\n\n---\n\n## The Skill\n\n> Install the skill, and Claude debugs your code the way *you* would — not with print statements.\n\nThe `debugging-code` skill gives Claude structured knowledge of the debugging workflow: setting breakpoints, stepping\nthrough execution, inspecting locals and the call stack, evaluating expressions mid-run. It uses the `dap` CLI as its\ntool.\n\n### Install for Claude Code\n\nVia the plugin marketplace — no manual setup needed:\n\n```\n/plugin marketplace add AlmogBaku/debug-skill\n/plugin install debugging-code@debug-skill-marketplace\n```\n\n### Install for other agents\n\nVia [skills.sh](https://skills.sh) — works with Cursor, GitHub Copilot, Windsurf, Cline,\nand [20+ more agents](https://skills.sh/docs):\n\n```bash\nnpx skills add AlmogBaku/debug-skill\n# or: bunx skills add AlmogBaku/debug-skill\n```\n\nOr manually copy `skills/debugging-code/` into your agent's skills.\n\n---\n\n## The `dap` CLI\n\n`dap` wraps the Debug Adapter Protocol behind simple, stateless CLI commands. A background daemon holds the session; the\nCLI sends one command and gets back the full context — no interactive terminal required.\n\n### Install\n\n\n```bash\n# One-liner (Linux & macOS)\nbash <(curl -fsSL https://raw.githubusercontent.com/AlmogBaku/debug-skill/master/skills/debugging-code/scripts/install-dap.sh)\n```\n\n<details>\n<summary>Other install methods</summary>\n\n**From Homebrew (for macOS):**\n```bash\nbrew install AlmogBaku/tap/dap\n```\n\n**From sources:**\n```bash\n# Go install\ngo install github.com/AlmogBaku/debug-skill/cmd/dap@latest\n```\n\nOr download a pre-built binary from the [releases page](https://github.com/AlmogBaku/debug-skill/releases/latest).\n\n</details>\n\n### Quick Start\n\n```bash\ndap debug app.py --break app.py:42   # start, stop at breakpoint\ndap eval \"len(items)\"                # inspect a value\ndap inspect data --depth 2           # expand nested objects\ndap step                             # step over\ndap continue                         # next breakpoint\ndap continue --to app.py:50          # run to specific line\ndap pause                            # interrupt if hanging\ndap restart                          # re-run, preserving breakpoint changes\ndap stop                             # end session\n```\n\nExecution commands (`debug`, `continue`, `step`) return **full context automatically**: current location, surrounding source, local variables, call stack,\nand program output. No follow-up calls needed.\n\n### Usage Examples\n\n```bash\n# Python\ndap debug app.py --break app.py:42\n\n# Go\ndap debug main.go --break main.go:15\n\n# Node.js / TypeScript\ndap debug server.js --break server.js:10\n\n# Rust / C / C++\ndap debug hello.rs --break hello.rs:4\n\n# Attach to a remote debugger (e.g. debugpy in a container)\ndap debug --attach container:5678 --backend debugpy --break handler.py:20\n\n# Attach to a running process by PID\ndap debug --pid 12345 --backend debugpy\n\n# Pass arguments to the program\ndap debug app.py --break app.py:10 -- --config prod.yaml --verbose\n```\n\n### Commands\n\n| Command                              | Description                                                    |\n|--------------------------------------|----------------------------------------------------------------|\n| `dap debug <script>`                 | Start debugging (local or `--attach host:port` or `--pid PID`) |\n| `dap stop`                           | End session                                                    |\n| `dap step [in\\|out\\|over]`           | Step (default: over)                                           |\n| `dap continue`                       | Resume execution (`--to file:line` for temp breakpoint)        |\n| `dap context [--frame N]`            | Re-fetch current state                                         |\n| `dap eval <expr> [--frame N]`        | Evaluate expression in current frame                           |\n| `dap inspect <var> [--depth N]`      | Inspect variable (expand nested objects)                       |\n| `dap output`                         | Drain buffered stdout/stderr since last stop                   |\n| `dap pause`                          | Pause a running program                                        |\n| `dap restart`                        | Restart session, preserving breakpoint changes                 |\n| `dap threads`                        | List all threads                                               |\n| `dap thread <id>`                    | Switch to a different thread                                   |\n| `dap break list\\|add\\|remove\\|clear` | Manage breakpoints mid-session                                 |\n\n**Global flags:** `--json` (machine-readable output), `--session <name>` (named sessions), `--socket <path>` (custom\nsocket path), `--context-lines <int>` (lines of source context)\n\n### Supported Languages\n\n| Language           | Backend     | Auto-detected |\n|--------------------|-------------|:-------------:|\n| Python             | debugpy     |      yes      |\n| Go                 | dlv (Delve) |      yes      |\n| Node.js/TypeScript | js-debug    |      yes      |\n| Rust / C / C++     | lldb-dap    |      yes      |\n\nBackend is inferred from the file extension. Override with `--backend <name>`.\n\n### How It Works\n\n```\ndap <cmd>  →  Unix socket  →  Daemon  →  DAP protocol  →  debugpy / dlv / js-debug / lldb-dap  →  your program\n```\n\nThe daemon starts automatically on `dap debug` and shuts down on `dap stop` (or after 10 min idle). It's invisible — you\nnever manage it directly.\n\n### Multi-Session\n\nMultiple agents can debug independently with named sessions:\n\n```bash\ndap debug app.py  --session agent1 --break app.py:10\ndap debug main.go --session agent2 --break main.go:8\n\ndap stop --session agent1   # stops agent1 only\n```\n\nEach session has its own daemon and socket. Omit `--session` to use the default session.\n\n---\n\n## Contributing\n\nPRs and issues welcome. See `claudedocs/` for architecture details and `CLAUDE.md` for code conventions.\n\n## Support the Project\n\nIf debug-skill saves you from a painful debugging session,\nconsider [starring the repo](https://github.com/AlmogBaku/debug-skill/stargazers) — it helps others find it and keeps\nthe project going.\n\n## License\n\nMIT\n",
  "bytes": 8285,
  "sha": "d59bcefca8932793962dafa48e4df61627046f1378b4f327ac2cc373e3986ae1",
  "repo_slug": "almogbaku/debug-skill",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_almogbaku_debug_skill_debugging_code_bcf558aa/readme"
}