{
    "name": "python-debugpy",
    "version": "1.0.0",
    "description": "Debug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote attach.",
    "system_prompt": "name python-debugpy description Debug Python with pdb, breakpoint(), post-mortem inspection, and debugpy remote attach. metadata {\"openclaw\":{\"requires\":{\"bins\":\"[Truncated]\"}}} Python Debugpy Use when Python code needs interactive debugging: hidden locals, confusing state mutation, failing tests, subprocesses, long-running services, or remote/headless attach. Pick the smallest debugger that reaches the bad frame. Choose breakpoint() : local code, source edits ok, fastest path. python3 -m pdb : no source edit, launch from the beginning. python3 -m pdb -c continue : stop at an unhandled exception. debugpy : remote/headless process, DAP client, already-running PID, or service startup race. Commands python3 -m pdb path/to/script.py arg1 python3 -m pdb -c continue path/to/script.py python3 -c \"import debugpy\" || python3 -m pip install debugpy python3 -m debugpy --listen 127.0.0.1:5678 --wait-for-client path/to/script.py python3 -m debugpy --listen 127.0.0.1:5678 --wait-for-client -m package.module python3 -m debugpy --listen 127.0.0.1:5678 --pid <pid> For source-edit attach: import debugpy debugpy.listen(( \"127.0.0.1\" , 5678 )) debugpy.wait_for_client() debugpy. breakpoint () For post-mortem: import pdb, sys try : run() except Exception: pdb.post_mortem(sys.exc_info()[ 2 ]) raise pdb Flow: n , s , r , c , q . Stack/source: w , u , d , a , l , ll . Values: p expr , pp expr , display expr . Breakpoints: b file.py:42 , b func , b file.py:42, condition , cl <num> . Mutate/evaluate: !statement ; full REPL: interact . Rules Reproduce with the smallest command/test first. Disable parallel test workers for pdb; interactive stdin usually breaks inside worker pools. Keep debugpy in the active env; do not add it as a project dependency unless the project already wants it. Bind debug servers to 127.0.0.1 ; do not expose 0.0.0.0 unless isolated or tunnelled. Use unique ports for parallel sessions. Treat debugpy --pid as injection; avoid security-sensitive or production targets unless explicitly approved. If PID attach fails on Linux, check ptrace/container privileges before changing the target. Cleanup before commit: rg -n 'breakpoint\\\\(|pdb\\\\.set_trace|debugpy\\\\.' --type py . Rerun the normal project test/gate without the debugger. PYTHONBREAKPOINT=0 disables breakpoint() . If a process is stuck after debugger detach, confirm it is not still paused at a breakpoint.",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "trigger_words": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=openclaw-openclaw-skills-python-debugpy-skill-md"
}