DM-Code-Agent CLI

Локальный кодинг-агент на Python: каждый шаг пишется в журнал, который можно разобрать, воспроизвести и продолжить.

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

Широкий доступ

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

  • Агент читает и пишет файлы рабочей папки, запускает тесты, линтеры и команды без песочницы.
  • Подключенные MCP-инструменты получают возможность действовать от вашего имени, а ключи API лежат в локальном файле `.env`.
Все причины и проверки

hwfengcs/dm-code-agent

Установка

Ручная установка

git clone https://github.com/hwfengcs/DM-Code-Agent.git && cd DM-Code-Agent
uv sync --frozen --extra dev

Затем `cp .env.example .env` и ключ API хотя бы одного провайдера. Вместо `uv` подойдет `pip install -e ".[dev]"`.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Агент читает и пишет файлы рабочей папки, запускает тесты, линтеры и команды без песочницы.
  • Подключенные MCP-инструменты получают возможность действовать от вашего имени, а ключи API лежат в локальном файле `.env`.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

DM-Code-Agent — консольный агент для программирования с одним циклом ReAct в основе. Он читает и правит файлы рабочей папки, запускает тесты и линтеры, подключает инструменты по MCP и записывает каждый шаг плана, вызов инструмента и результат в журнал сессии, который только дополняется. Журнал устроен деревом: у записи есть идентификатор и родитель, а сжатие контекста добавляет новую запись и не стирает исходные. Поэтому `dm-agent-trace` показывает ход сессии, диагностирует сбой, сравнивает два запуска и повторяет запуск с выбранного шага (`fork`). Работают модели DeepSeek, OpenAI, Claude и Gemini, а `dm-agent-web` открывает браузерную консоль для аудита и запуска задач.

Для кого. Разработчикам и исследователям агентов, которым важно разобрать по журналу, что сделал агент в репозитории, и повторить запуск.

Подходит, если

  • Агент чинит баг, и результат проверяют по полному журналу шагов.
  • Два запуска дали разный результат, и нужно найти шаг, где они разошлись.
  • Поведение агента тестируют без ключа API: скриптовый клиент и eval работают офлайн.
  • Свои инструменты, защитные хуки или провайдера добавляют одним файлом `.py`, ядро остается нетронутым.
  • Прерванную задачу продолжают с контрольной точки через `--resume`.

Не подходит, если

  • Нужен готовый плагин для Claude Code или Cursor: DM-Code-Agent работает как самостоятельная программа в терминале.
  • Нет желания ставить окружение Python и настраивать ключ API хотя бы одного провайдера.
  • Требуется изоляция в контейнере: проект работает в локальной папке и обходится без песочницы.

Пример запроса к агенту

Исправь границу повторных попыток в `retry.py`, запусти тесты и сохрани журнал в `sessions/fix.jsonl`.

Ограничения

Нужны Python 3.10 или новее и ключ API хотя бы одного провайдера (DeepSeek, OpenAI, Claude или Gemini) в файле `.env`. Установка идет из клона репозитория командой `uv sync --frozen --extra dev` или `pip install -e ".[dev]"`, пакета в реестре нет. Агент работает локально без песочницы: он сам правит файлы и запускает команды в рабочей папке, а блокировку опасных команд задают хуком `before_tool_call`, пример лежит в `examples/block_dangerous_shell.py`. Проектные расширения загружаются после явного доверия. Основная документация и журналы разработки китайские, английский README лежит отдельным файлом. Лицензия MIT.

Как отключить. Удалите клонированную папку и виртуальное окружение, а ключи API уберите из `.env`. Журналы сессий лежат там, куда указывает `--trace`, их удалите вручную.

Частые вопросы

Как установить DM-Code-Agent?

Клонируйте репозиторий, выполните `uv sync --frozen --extra dev` (или `pip install -e ".[dev]"`) и скопируйте `.env.example` в `.env` с ключом API. Затем запускайте `dm-agent "задача"`.

Можно ли попробовать без ключа API?

Да. Тесты и детерминированные eval идут офлайн: `python -m pytest` и `python -m dm_agent.evals.cli --variant full --task direct_finish`. Сохраненные сессии открывает `dm-agent-web --read-only`, ключ ему тоже не нужен.

Как разобрать неудачный запуск?

Выполните `dm-agent-trace analyze sessions/fix.jsonl`: он покажет стадию сбоя, были ли перепланирования и пропущена ли проверка. `view` выводит ход шагов, `diff` сравнивает два запуска, `fork --at <id>` повторяет запуск с выбранной записи.

Какие модели поддерживаются?

DeepSeek, OpenAI, Claude и Gemini. Ключ нужного провайдера кладут в `.env`, а свой провайдер добавляется расширением.

Как добавить свой инструмент?

Напишите файл `.py` с функцией `setup(api)` и положите его в каталог расширений. Методы `register_tool`, `register_skill`, `register_provider` и `on` добавляют инструменты, навыки, провайдеры и один из шести перехватываемых хуков.

Обсуждение

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

Учебный терминальный агент для кода на Python, задуманный как «nanoGPT для агентов»: прочитать, разобрать и форкнуть

CLIШирокий доступ1,9 тыс.Звезды репозитория

Открытый кодовый агент для терминала, браузера и десктопа, который работает с моделями от OpenAI и Claude до Ollama

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

Кодинг-агент в терминале на одном бинарнике Rust: читает код, правит файлы, гоняет тесты и работает с любой моделью по выбору.

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

PaiCLI Python — терминальный ИИ-агент: ReAct и планирование, MCP-клиент, память, снимки перед правками и Runtime API.

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

Daintree запускает Claude Code, Codex и другие CLI-агенты параллельно, а ими управляют через локальный MCP-сервер

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

pydantic-deepagents

pydantic-deepagents (pydantic-deep)

Открытый терминальный AI-ассистент и Python-фреймворк с песочницей в Docker, командами агента и подагентами

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

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

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

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
DM-Code-Agent (эта карточка)нет152
Aiderнет50 089парное программирование с автокоммитами в git; DM-Code-Agent ведет журнал-дерево с разбором, сравнением и перезапуском сессий
OpenCodeнет226 389открытый агент с режимами разработки и планирования; DM-Code-Agent делает упор на аудит запусков и расширения без правки ядра

Коротко о README

Защитные механизмы включены по умолчанию: проверка чтения перед правкой, атомарная запись с резервной копией, контрольные точки. Экспериментальные модули выключены и включаются флагами. Проект приводит 554 теста и собственный набор из 30 задач, а на 50 задачах SWE-bench Verified решено 21.

Бейдж для README

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