DM-Code-Agent CLI
Локальный кодинг-агент на Python: каждый шаг пишется в журнал, который можно разобрать, воспроизвести и продолжить.
- 152 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Агент читает и пишет файлы рабочей папки, запускает тесты, линтеры и команды без песочницы.
- Подключенные MCP-инструменты получают возможность действовать от вашего имени, а ключи API лежат в локальном файле `.env`.
Установка
Ручная установка
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` добавляют инструменты, навыки, провайдеры и один из шести перехватываемых хуков.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыУчебный терминальный агент для кода на Python, задуманный как «nanoGPT для агентов»: прочитать, разобрать и форкнуть
Открытый кодовый агент для терминала, браузера и десктопа, который работает с моделями от OpenAI и Claude до Ollama
Кодинг-агент в терминале на одном бинарнике Rust: читает код, правит файлы, гоняет тесты и работает с любой моделью по выбору.
PaiCLI Python — терминальный ИИ-агент: ReAct и планирование, MCP-клиент, память, снимки перед правками и Runtime API.
Daintree запускает Claude Code, Codex и другие CLI-агенты параллельно, а ими управляют через локальный MCP-сервер
pydantic-deepagents
pydantic-deepagents (pydantic-deep)
Открытый терминальный AI-ассистент и Python-фреймворк с песочницей в Docker, командами агента и подагентами
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| 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.