debugging-code
Helps your agent debug code line by line. It allows viewing variable states and understanding how the program is running.
What it does
Helps find errors in programming code. You can pause the program, see variable values, and step line by line to understand what's happening.
When to use it
- ✓When a program crashes or throws an error.
- ✓When the program's output is incorrect.
- ✓When you need to understand how the code reached a certain point.
Example of what to ask your AI
“Help me debug this Python code: `my_script.py`”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The tool pauses your code's execution at specific points. You can then examine the current state, like variable values, and control the execution step by step.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill debugging-codeOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/debugging-code/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
Interactive Debugger
When to Use
Use this skill when you need interactively debug source code — set breakpoints, step through execution line by line, inspect live variable state, evaluate expressions against the running program, and navigate the call stack to trace root causes. Use when a program crashes, raises unexpected exceptions, produces...
Use when a program crashes, produces wrong output, or you need to understand exactly how execution reached a particular state — and running it again with more print statements won't give you the answer fast enough.
You can pause a running program at any point, read live variable values and the call stack at that exact moment, step forward line by line or jump to the next breakpoint, and evaluate arbitrary expressions against the live process — all without restarting.
Setup
This skill uses dap, a CLI tool that background daemon to interact with the debugger via the DAP Protocol, maintain
the debugger state, so you can simply interact with it with multiple calls.
If dap isn't installed (check: command -v dap), install it NOW.
Ask/notify the user before proceeding to install it.
From Homebrew (macOS)
brew install AlmogBaku/tap/dap
Installer script:
bash scripts/install-dap.sh
Install from sources:
go install github.com/AlmogBaku/debug-skill/cmd/dap@latest
This tool is open-sourced and available on GitHub, maintained and follows best practices.
Supports natively Python, Go, Node.js/TypeScript, Rust, C/C++, and any other language that supports DAP.
If a debugger backend is missing or fails to start, see references/installing-debuggers.md
For all commands and flags: dap --help or dap <cmd> --help.
Starting a Session
dap debug <file> launches the program under the debugger. Backend is auto-detected from the file extension.
Choose your starting strategy based on what you know:
- Have a hypothesis — set a breakpoint where you expect the bug:
dap debug script.py --break script.py:42 - Conditional breakpoint — only stop when a condition is met:
dap debug script.py --break "script.py:42:x > 5"( always quote specs with conditions) - Multi-file app — breakpoints across modules:
--break src/api/routes.py:55 --break src/models/user.py:30 - No hypothesis, small program — walk from entry:
dap debug script.py --stop-on-entry(avoid for large projects — startup code is noisy; bisect with breakpoints instead) - Exception, location unknown —
dap debug script.py --break-on-exception raised(Python) /all(Go/JS) - Remote process —
dap debug --attach host:port --backend <name> - Process already running (stuck server, live issue) — attach without restarting:
dap debug --pid <PID> --backend <name>macOS + Go gotcha:
dlv --pidrequires SIP disabled (csrutil disable). Prefer starting the program under the debugger instead or attaching to a remote debugger!
Session isolation: --session <name> keeps concurrent agents from interfering.
Tip: You might want to use your session id(${CLAUDE_SESSION_ID}) if available.
Run dap debug --help for all flags, backends, and examples.
The Debugging Mindset
Reach for a debugger when reading source alone can't validate the root cause. A debugger lets you observe what does happen: actual values, actual path, actual state. When that diverges from what should happen, you've found your bug.
Two strikes, rethink. If two hypotheses fail at the same location, your mental model is wrong. Re-read the code, form a completely different theory with different breakpoints.
Escalate gradually. Start with dap eval to test a quick hypothesis. Use conditional breakpoints
to filter noise. Fall back to full breakpoints + stepping only when you need interactive control.
Mimic the user journey. If you're debugging a user flow, set breakpoints along the path you expect the code to take.
If you expected compute() to be called, but it never is, then the bug is in the caller — not compute(), but whatever
was supposed to call it.
Set breakpoints instead of prints. When you feel the urge to print something, set a breakpoint instead.
Know Your State
Every dap execution command returns full context automatically: current location, source, locals, call stack, and
output. At each stop, ask:
- Do the local variables have the values I expected?
…
FAQ
How do I install this tool?
You can install using Homebrew on macOS (`brew install AlmogBaku/tap/dap`), an installation script (`bash scripts/install-dap.sh`), or by compiling from source (`go install github.com/AlmogBaku/debug-skill/cmd/dap@latest`).
What programming languages are supported?
It supports Python, Go, Node.js/TypeScript, Rust, C/C++, and other languages that use the DAP protocol.
What is a 'breakpoint'?
A 'breakpoint' is a point you set in your code where execution should temporarily stop, allowing you to inspect the program's state.
Details
Original description by the author
Interactively debug source code — set breakpoints, step through execution line by line, inspect live variable state, evaluate expressions against the running program, and navigate the call stack to trace root causes.
Popularity
- GitHub stars
- 48k
- Ranking position
- #2740
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
cpp-testing
Makes your agent write and improve tests for C++ code. It helps set up testing tools and fix errors.
affaan-m/ECC
csharp-testing
Helps your agent create tests for C# and .NET code. It uses best practices to ensure tests are efficient and reliable.
affaan-m/ECC
django-tdd
Enables your agent to apply testing strategies for Django with pytest-django and TDD. It's useful for writing robust tests and ensuring code quality, especially for DRF APIs.
affaan-m/ECC