Guide · Agent skill
How to use the LLDB Debugger Control agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The LLDB Debugger Control skill (skill name cli-anything-lldb) teaches an AI agent to drive the LLDB native debugger through a command-line wrapper that returns structured JSON. It is aimed at developers and engineers who debug C, C++ or other native programs and want an assistant to step through crashes, inspect state or analyse core dumps. After this guide you will know what the skill does, how to install it, how to phrase requests so the agent triggers it, and what safety limits to keep in mind.
Quick start
- 1Install LLDB with Python bindings. Confirm that lldb is available with its Python bindings, since the skill will not work without them.
- 2Install the tool. Run pip install cli-anything-lldb. This also brings in click 8.0 or newer and prompt-toolkit 3.0 or newer.
- 3Add the skill folder. Unzip the downloaded ZIP into ~/.claude/skills/ or a project's .claude/skills/, or upload it under Settings → Capabilities → Skills in the Claude apps.
- 4Ask for a debugging task. Describe the program, the breakpoint or crash you care about, and what you want to see.
- 5Review the commands. Check the JSON output the agent gets back and confirm that it targets the right executable or pid.
- 6Close the session. Let the agent run cli-anything-lldb --json session close so attached processes detach and launched programs are cleaned up.
What is an agent skill and what does this one do?
An agent skill is a folder containing a SKILL.md file that tells an AI agent when and how to use a tool. This skill's SKILL.md describes a stateful LLDB workflow: the agent runs cli-anything-lldb commands and reads the JSON they return, instead of guessing at debugger output.
Once installed, the agent can create a debug target from an executable, launch or attach to a process by pid or name, manage breakpoints, inspect threads, frames, locals and backtraces, evaluate expressions in the current frame, read and find process memory, and load core dumps. It can also run a stdio Debug Adapter Protocol server for editor or AI clients.
Install the LLDB Debugger Control skill
Download the ZIP from this page and unzip it into one of two places. For a personal setup, unzip it into ~/.claude/skills/. For a single project, unzip it into the project's .claude/skills/ folder. Alternatively, in the Claude apps, go to Settings → Capabilities → Skills and upload the ZIP there.
The skill also depends on the underlying tool. The source lists the install as pip install cli-anything-lldb, and it needs lldb with Python bindings, click 8.0 or newer and prompt-toolkit 3.0 or newer. Check that the Python bindings import correctly before you rely on the skill, because the tool will not work without them.
- Requires lldb with Python bindings
- Requires click>=8.0 and prompt-toolkit>=3.0
- Install the tool with pip install cli-anything-lldb
pip install cli-anything-lldbHow do you trigger the skill with a natural request?
You do not need to name the command. Describe the debugging task in plain terms that mention a program, a crash, a process or a breakpoint, and the agent can pick the skill. Name the executable or pid when you have it, since the agent needs a target before it can launch or attach.
Good requests say what you have and what you want to learn, for example: 'Load ./build/parser into LLDB, break at main when i is over 10, and show me the backtrace when it stops.' Vague requests such as 'fix my app' give the agent little to work with.
- Name the executable path, pid or process name
- State the function, file and line for breakpoints
- Say whether you want a launch, an attach or a core dump analysis
Run the commands the agent uses
The agent normally runs these commands itself, but knowing them helps you check its work. Every command uses the --json flag, which the source recommends for automated flows. Target creation must come before process or core commands.
Commands are grouped into target, process, breakpoint, thread, frame, step, expr, memory and core. Errors come back as an object with error and type fields.
- Create target: target create --exe PATH
- Launch or attach: process launch, process attach --pid or --name
- Breakpoints: breakpoint set, list, delete, enable, disable
- Inspect: thread backtrace, frame locals, expr
cli-anything-lldb --json target create --exe /path/to/exe
cli-anything-lldb --json breakpoint set --function main
cli-anything-lldb --json process launch --arg foo --arg bar
cli-anything-lldb --json thread backtrace --limit 20
cli-anything-lldb --json frame locals
cli-anything-lldb --json session closeUse the session and clean-up behaviour correctly
Separate non-REPL invocations share a persistent session daemon by default. To keep a task on its own session, pass --session-file PATH or set the CLI_ANYTHING_LLDB_SESSION_FILE environment variable.
When the work is finished, run session close. The source says this detaches attached processes and cleans up launched debuggees. Unresolved CLI breakpoints fail by default, so pass --allow-pending only when you expect a module or symbol to load later.
- Use --session-file PATH to pin a session
- Always finish with cli-anything-lldb --json session close
- Use the REPL only when an interactive shell is more convenient
Use the Debug Adapter Protocol server for editors and AI clients
When an AI client needs a standard debug adapter lifecycle instead of separate shell commands, start the DAP entry point. It speaks stdio Content-Length frames and needs exclusive stdout, so do not print logs to stdout around it. Supported requests include launch, attach, setBreakpoints, stackTrace, variables, evaluate, continue, pause, next, stepIn, stepOut and disconnect, among others.
Stop rules let you filter internal startup or shader-JIT breakpoints using a profile JSON file. Restart the adapter after changing a profile, because running processes do not hot-load new rules.
- Start with cli-anything-lldb-dap or cli-anything-lldb dap
- Optional profile: --profile /path/to/stop-rules.json
- Restart the adapter after profile changes
cli-anything-lldb-dap
cli-anything-lldb-dap --profile /path/to/stop-rules.jsonSafety notes: scripts and what they touch
This skill runs scripts, so review what the agent is about to execute, particularly process launch and attach commands. The source says the skill does not use the network.
Attaching to a process and reading its memory can expose sensitive data and can disrupt a running service. Only use it on programs you own or are authorised to debug, and avoid live production systems.
- Runs scripts: yes
- Uses network: no
- Only attach to processes you own or are allowed to inspect
What people use it for
- Load a crashing executable, set a breakpoint on a function and show the backtrace when it stops.
- Analyse a core dump by loading it and inspecting frames and locals.
- Attach to a running process by name with --wait-for and read a memory region.
- Evaluate expressions such as a variable's value in the current frame while stepping.
- Give an AI client or editor a standard Debug Adapter Protocol server to control a native app.
Frequently asked questions
Is the LLDB Debugger Control skill free?
The source lists the licence as Apache-2.0 for the HKUDS/CLI-Anything repository that contains this skill. Check the repository's licence file for full terms before you redistribute it.
What do I need to use cli-anything-lldb?
You need lldb with Python bindings, click 8.0 or newer, and prompt-toolkit 3.0 or newer. The tool is installed with pip install cli-anything-lldb, and it will not work without the LLDB Python bindings.
How do I install the skill in Claude?
Download the ZIP and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder. In the Claude apps you can instead upload the ZIP under Settings → Capabilities → Skills.
Does the skill need an internet connection?
The source says it does not use the network. It does run scripts, so review what the agent executes, especially launch and attach commands.
Can I use it on a running production service?
The source warns against it. Attaching to and reading memory from running processes can expose sensitive data and disrupt services, so limit it to processes you own or are authorised to debug.
Why does my breakpoint fail to set?
Unresolved CLI breakpoints fail by default. If the symbol will only load later, such as from a plugin, use --allow-pending. Also make sure you ran target create first, since process and core commands need a target.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
This skill suits developers and engineers who debug native C, C++ or similar programs and want an AI agent to handle breakpoints, frames, memory and core dumps through structured JSON. It is a poor fit for people without a native program to debug, for anyone who needs to inspect live production systems they do not own, or for environments where the LLDB Python bindings cannot be installed.
Download the skill