debug-that CLI

Отладчик dbg для ИИ-агентов: точки останова, шаги и переменные через короткие @ref вместо print-отладки и длинных логов

  • 159 ★ репозитория
  • Последний коммит
  • MIT
CLI

Расширенный доступ

Почему такой уровень

  • Запускает ваши программы и выполняет выражения внутри процесса, меняет переменные и подменяет код командой `hotpatch`
  • Фоновый демон держит сеанс открытым и слушает Unix-сокет, пока не вызван `dbg stop`
Все причины и проверки

theodo-group/debug-that

Установка

Работает в

В терминале, через 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` без правки кода и длинных логов. Ответы короткие, поэтому тратят мало токенов.

Обсуждение

Вопросов и отзывов пока нет.

MCP-сервер отладчика Node.js: агент ставит точки останова, идет по шагам, смотрит переменные и вычисляет выражения в паузе

MCP-серверШирокий доступ350Звезды репозитория

Nietzschian Debugger, CLI отладки вопросами, выбирает модель для одного запуска; выбор не переносится на следующую команду.

CLIШирокий доступ552Звезды репозитория

Скилл отладки по гипотезам: агент ставит логи, воспроизводит ошибку сам, сверяет записи с догадками и чистит код после правки

СкиллРасширенный доступ120Звезды репозитория

Расширение VS Code с MCP-сервером: агент ставит точки останова, запускает отладку по вашему launch.json и вычисляет выражения на любом языке

MCP-серверШирокий доступ514Звезды репозитория
Официальный

Официальный сервер MCP от Microsoft для отладки: расширение VS Code и CLI дают агенту точки останова, шаги, переменные и вычисление выражений

MCP-серверШирокий доступ579Звезды репозитория

CLI превращает изменения Git в пошаговый разбор с кодом, вопросами и объяснениями от подключенного ИИ-агента

CLIРасширенный доступ363Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
debug-that (эта карточка)нет159
DebugMCPдане нужна579официальный MCP-сервер Microsoft с расширением VS Code, подключается через протокол MCP
Node.js Debugger MCPнетне нужна350MCP-сервер отладчика только для 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;

Сообщить о проблеме

Foxx AIdebug-that
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.