debug-that CLI
Отладчик dbg для ИИ-агентов: точки останова, шаги и переменные через короткие @ref вместо print-отладки и длинных логов
- 159 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Запускает ваши программы и выполняет выражения внутри процесса, меняет переменные и подменяет код командой `hotpatch`
- Фоновый демон держит сеанс открытым и слушает Unix-сокет, пока не вызван `dbg stop`
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/debug-thatОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Запускает ваши программы и выполняет выражения внутри процесса, меняет переменные и подменяет код командой `hotpatch`
- Фоновый демон держит сеанс открытым и слушает Unix-сокет, пока не вызван `dbg stop`
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
debug-that ставит командную программу `dbg`, которой агент отлаживает код в живом процессе. Вместо добавления `print` и разбора длинных логов агент запускает программу под отладчиком командой `dbg launch --brk`, ставит точки останова через `dbg break`, идет по шагам и читает локальные переменные, стек и вывод консоли. Сущности получают короткие метки `@v1`, `@f0`, `BP#1`, поэтому ответы занимают мало токенов. Для JavaScript и TypeScript работает протокол V8 Inspector в Node.js и WebKit Inspector в Bun, для C, C++, Rust и Swift подключается LLDB через DAP, для Python `debugpy`. Команда `dbg attach` цепляется к уже запущенному процессу. Среди команд есть вычисление выражений, смена значения переменной, условные точки останова, `logpoint`, пропуск библиотек при шагах (`blackbox`) и `hotpatch` для правки скрипта из файла без перезапуска. CLI не хранит состояние: сеанс держит фоновый демон, с которым команды общаются через Unix-сокет. В комплект входит скилл `debug-that`, который учит агента этому циклу.
Для кого. Разработчикам на Node.js, Bun, Python и нативных языках, чей агент тратит токены на `print`-отладку и догадки о значениях переменных.
Подходит, если
- Тест падает, и значение переменной в момент ошибки неочевидно, поэтому агент ставит точку останова и смотрит `dbg vars`
- Сервер Node.js уже запущен с флагом `--inspect`, и агенту нужно подключиться по порту через `dbg attach 9229`
- Программа на C++ или Rust падает в нативном коде, и стек читают через LLDB
- Правку функции хочется проверить на живом процессе: `dbg hotpatch` подменит код из файла без перезапуска
- Логи раздувают контекст агента, а нужны три значения в одной точке: помогает `dbg logpoint`
Не подходит, если
- Отладка идет в браузере или в среде, где нельзя запускать процессы и открывать сокеты
- Язык не из списка поддерживаемых: Deno и Go автор пока отмечает как планируемые
- Ошибку проще поймать юнит-тестом, чем пошаговой отладкой живой программы
Пример запроса к агенту
Запусти src/app.ts под dbg, поставь точку останова на 19 строке, дойди до нее и покажи локальные переменные и стекОграничения
- Для установки пакета нужен Bun.
- Несколько функций исполняют код внутри отлаживаемого процесса: `catch exit` ставит обработчик выхода, `break-fn` оборачивает нативную функцию, `logpoint` в Bun вызывает пустую функцию в `globalThis`. Вывод команд это сообщает.
- README помечает Java как планируемую, хотя текст скилла упоминает запуск через JDWP, и работу с Java стоит проверить на своем проекте.
- `hotpatch` правит только JavaScript и TypeScript.
Как отключить. Завершите сеансы командой `dbg stop` и удалите пакет, например `bun remove --global debug-that`. Скилл убирается удалением папки `debug-that` из каталога скиллов агента. Сеансы без остановки оставляют фоновый демон, список показывает `dbg sessions`, а чистит `dbg sessions --cleanup`.
Частые вопросы
Как поставить debug-that для Claude Code?
Установите отладчик командой `bun install --global debug-that` (нужен Bun) и добавьте скилл командой `npx skills add theodo-group/debug-that`. После этого агент запускает программы через `dbg launch --brk`.
Как отладить TypeScript?
Запустите программу командой `dbg launch --brk tsx src/app.ts`. Отладчик читает карты исходников и показывает строки TypeScript, а не скомпилированного кода.
Как подключиться к процессу, который уже работает?
Командой `dbg attach` с `pid`, портом или адресом ws. Процесс Node.js должен быть запущен с флагом `--inspect`, а процесс Bun с переменной `BUN_INSPECT`.
Какие языки поддерживает debug-that?
JavaScript и TypeScript на Node.js и Bun, Python через `debugpy`, C, C++, Rust и Swift через LLDB. Deno, Go и Java README пока отмечает как планируемые.
Почему агенту выгоднее отладчик, чем вывод в консоль?
Отладчик отдает переменные, стек и точки останова короткими метками `@v1` и `@f0` без правки кода и длинных логов. Ответы короткие, поэтому тратят мало токенов.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыMCP-сервер отладчика Node.js: агент ставит точки останова, идет по шагам, смотрит переменные и вычисляет выражения в паузе
Nietzschian Debugger, CLI отладки вопросами, выбирает модель для одного запуска; выбор не переносится на следующую команду.
Скилл отладки по гипотезам: агент ставит логи, воспроизводит ошибку сам, сверяет записи с догадками и чистит код после правки
Расширение VS Code с MCP-сервером: агент ставит точки останова, запускает отладку по вашему launch.json и вычисляет выражения на любом языке
Официальный сервер MCP от Microsoft для отладки: расширение VS Code и CLI дают агенту точки останова, шаги, переменные и вычисление выражений
CLI превращает изменения Git в пошаговый разбор с кодом, вопросами и объяснениями от подключенного ИИ-агента
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| debug-that (эта карточка) | нет | 159 | ||
| DebugMCP | да | не нужна | 579 | официальный MCP-сервер Microsoft с расширением VS Code, подключается через протокол MCP |
| Node.js Debugger MCP | нет | не нужна | 350 | MCP-сервер отладчика только для Node.js, без Bun, Python и LLDB |
Коротко о README
README объясняет идею (агенты тратят токены на `print`-отладку), перечисляет поддерживаемые среды таблицей и показывает пример сеанса с ответами. Дальше идут примеры запуска, таблица команд по категориям, полный вывод справки, описание того, что отладчик вносит в процесс, и схема архитектуры.
Бейдж для README
Исходный SKILL.md
--- name: dbg description: > Debug applications using the dbg CLI debugger. Supports Node.js (V8/CDP), Bun (WebKit/JSC), Python (debugpy/DAP), Java (JDWP/DAP), and native code via LLDB (DAP). Use when: (1) investigating runtime bugs by stepping through code, (2) inspecting variable values at specific execution points, (3) setting breakpoints and conditional breakpoints, (4) evaluating expressions in a paused context, (5) hot-patching code without restarting (JS/TS), (6) debugging test failures by attaching to a running process, (7) debugging C/C++/Rust/Swift with LLDB, (8) debugging Python via debugpy, (9) any task where understanding runtime behavior requires a debugger. Triggers: "debug this", "set a breakpoint", "step through", "inspect variables", "why is this value wrong", "trace execution", "attach debugger", "runtime error", "segfault", "core dump". --- # dbg Debugger `dbg` is a CLI debugger that supports **Node.js** (V8/CDP), **Bun** (WebKit/JSC), **Python** (via debugpy/DAP), **Java** (via JDWP/DAP) and **native code** (C/C++/Rust/Swift via LLDB/DAP). It uses short `@refs` for all entities -- use them instead of long IDs. ## Supported Runtimes | Runtime | Language | Launch example | |---------|----------|----------------| | Node.js | JavaScript | `dbg launch --brk node app.js` | | tsx / ts-node | TypeScript | `dbg launch --brk tsx src/app.ts` | | Bun | JavaScript / TypeScript | `dbg launch --brk bun app.ts` | | Bun executable (`bun build --compile`) | JavaScript / TypeScript | `dbg launch --brk ./my-cli --its-flags` | | debugpy | Python | `dbg launch --brk python3 app.py` (or attach -- see Python section) | | LLDB | C / C++ / Rust / Swift | `dbg launch --brk --runtime lldb ./program` | | JDWP | Java | `dbg launch --brk --runtime java ./program` | The runtime is auto-detected from the launch command for JS and Python runtimes, including executables compiled by Bun (else pass `--runtime bun`). Everything after the program's name goes to it unchanged. For native code, use `--runtime lldb`. Python can also attach to a running `debugpy` listener over TCP (`--runtime python`). ## Core Debug Loop ```bash # 1. Launch with breakpoint at first line dbg launch --brk node app.js # Or: dbg launch --brk bun app.ts # Or: dbg launch --brk python3 app.py # Or: dbg launch --brk --runtime lldb ./my_program # Or attach to a running process with the --inspect flag dbg attach 9229 # 2. Set breakpoints at suspicious locations dbg break src/handler.ts:42 dbg break src/utils.ts:15 --condition "count > 10" # 3. Run to breakpoint (--wait blocks until it pauses or the program ends;