Trail-code (ранее Graft)

Graft

CLI строит карту кода репозитория и хранит решения команды в папке .trail, чтобы Claude Code, Cursor и Codex не изучали проект заново

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

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

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

  • Пишет файлы в репозиторий и правит настройки в домашней папке (`~/.claude/settings.json`, `~/.claude.json`, при наличии `~/.codex`), хуки затем срабатывают в каждом открываемом репозитории
  • Читает журналы ваших прошлых сессий Claude Code и комментарии ревью слитых пулреквестов, текст обрабатывает ваш Claude Code, то есть уходит Anthropic
  • Режим `build --deep` отправляет содержимое файлов провайдеру модели по вашему ключу, а подключение рабочего пространства Trail передает выводы и записи поиска
Все причины и проверки

trailhq/trail-code

Установка

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

npm install -g @trailhq/trail-code
trail init

Команда init спрашивает, каких агентов подключить, Claude Code отмечен заранее. Без терминала для вопросов она ничего не пишет. Проверить заранее можно через `trail init --dry-run`.

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

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

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

  • Пишет файлы в репозиторий и правит настройки в домашней папке (`~/.claude/settings.json`, `~/.claude.json`, при наличии `~/.codex`), хуки затем срабатывают в каждом открываемом репозитории
  • Читает журналы ваших прошлых сессий Claude Code и комментарии ревью слитых пулреквестов, текст обрабатывает ваш Claude Code, то есть уходит Anthropic
  • Режим `build --deep` отправляет содержимое файлов провайдеру модели по вашему ключу, а подключение рабочего пространства Trail передает выводы и записи поиска

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

Что делает

Trail-code, прежний Graft, состоит из двух частей. Первая — карта кода. Команда `trail init` разбирает репозиторий через tree-sitter в карту файлов, функций и вызовов, без модели и без ключа. Карта сверяется с рабочим деревом перед каждым запросом, включая несохраненные правки. Вместе с запросом агент получает указатели на подходящие файлы, а после правки файла видит, что от него зависит. Вторая часть — выводы прошлых сессий. Когда сессия что-то выяснила или вы поправили агента, он записывает вывод в короткий markdown-файл. Выводы о коде лежат в `.trail/learnings/` репозитория и коммитятся вместе с изменением, личные остаются в `~/.trail`. Следующая сессия на этом коде начинает с них, ваша или чужая. В первый день `trail init` собирает то, что вы говорили Claude Code в двух и более прошлых сессиях репозитория. Перед пулреквестом команда `trail check` сверяет ветку с накопленными выводами. Инструмент подключает выбранных агентов: пишет их файлы инструкций, а для Claude Code добавляет статусную строку, хуки и MCP-сервер с шестью инструментами поиска по коду. По желанию `trail build --deep` строит пояснения к файлам и узлам на модели вашего провайдера. Для CI есть `trail blast`: он показывает, что затронет изменение.

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

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

  • Агент в каждой сессии заново ищет по репозиторию, где что находится и кто что вызывает
  • Команде нужно, чтобы решения по коду и отвергнутые варианты лежали в репозитории и попадали в контекст агента сами
  • Перед пулреквестом нужно проверить, не отменяет ли ветка решение, которое коллега уже принял
  • Одни и те же указания приходится повторять агенту из сессии в сессию

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

  • Проект небольшой, и агент справляется без дополнительного слоя контекста
  • Политика запрещает ставить хуки и менять настройки агентов в домашней папке. Тогда подойдет отдельный MCP-сервер, например CodeGraph
  • Нужна общая страница команды по всем репозиториям: рабочее пространство Trail в README помечено как будущее
  • На машине стоит Node.js ниже 20: пакет требует версию 20 и новее

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

Прежде чем менять число повторных попыток в клиенте, посмотри через trail, что мы по этому поводу уже решали

Ограничения

  • Выводы пока бывают двух видов, решения и предпочтения, и хранятся в личном месте или в репозитории. Навыки («как у нас делают задачу»), запреты для агента и общая страница команды помечены как будущие.
  • Для сбора прошлых сессий `trail init` запускает ваш Claude Code на модели Claude Sonnet под вашим входом, и этот запуск расходует лимит подписки. Если установлен `gh`, `trail init` читает и комментарии ревью последних 50 слитых пулреквестов. Фрагменты, похожие на секреты, он вырезает.
  • Инструмент разбирает 23 языка и однофайловые компоненты Vue, а файлы на других языках пропускает. Для OCaml и Zig карта хранит только символы, без связей вызовов.
  • Папка `graft/` с картой — локальный кэш, ее добавляют в `.gitignore`. В коммит идут `.claude`, `.mcp.json`, `.trail`, `.gitignore` и `.ignore`, а карту каждый участник команды собирает у себя.
  • Раз в сутки инструмент проверяет версию в npm и отправляет один пакет анонимной статистики без кода, путей и текста выводов. В CI и в сборке из исходников отправка выключена.
  • Автор сам измерил результат на своем стенде и на выборке SWE-bench Verified: агент решил 33 задачи из 50 с картой кода и 27 без нее. Независимой проверки в документации нет.

Как отключить. Команда `trail uninstall` в репозитории показывает, что будет удалено, а `trail uninstall -y` удаляет файлы и записи настроек, которые добавил init. С флагом `--keep-cache` папка `graft/` остается, с `--no-global` не трогаются `~/.claude`, `~/.claude.json`, `~/.codex` и `~/.gemini`. Затем уберите пакет: `npm uninstall -g @trailhq/trail-code`, а при старой установке `npm uninstall -g @nanonets/graft`. Анонимную статистику выключает `trail telemetry disable` или переменная `DO_NOT_TRACK=1`.

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

Нужен ли ключ языковой модели?

Нет. Карта, хуки, выводы и `trail check` работают без ключа. Он нужен только для `trail build --deep`, провайдера задают переменные `GRAFT_PROVIDER`, `GRAFT_API_KEY` и `GRAFT_MODEL`, а адрес эндпоинта — `GRAFT_BASE_URL`.

Что будет, если на машине уже стоит Graft?

Ничего не ломается: команда `graft` и пакет `@nanonets/graft` запускают тот же код. Команда `graft upgrade` добавляет рядом `trail`. Репозитории, настроенные Graft, переходят сами при первом открытии Claude Code после появления `trail`, либо сразу по `trail init`.

Чем это отличается от CLAUDE.md и AGENTS.md?

Те файлы пишут и обновляют вручную. Trail-code сохраняет выводы из бесед и подмешивает только те, что касаются кода, который вы правите. Файл `CLAUDE.md` init не меняет; для Claude Code он пишет собственный `.claude/skills/trail/SKILL.md`.

Что коммитить после установки?

Папки и файлы `.claude`, `.mcp.json`, `.trail`, `.gitignore` и `.ignore`. Коллега без Trail-code получит выводы из `.trail/learnings/` через файл навыка в Claude Code, и агент один раз подскажет, как поставить остальное.

Что делать, если агент записал неверный вывод?

Вывод репозитория — файл в пулреквесте: его ревьюят как код, правят или удаляют. Личные лежат в `~/.trail`. Существующие выводы агент не переписывает. Если он идет против одного из них, то объясняет причину в коммите и сохраняет новый.

Нужны ли вход и аккаунт?

Нет. Все работает на вашей машине, а выводы доходят до команды через git. Рабочее пространство Trail, которое пока не вышло, понадобится только для общей страницы по репозиториям.

Обсуждение

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

Панель наблюдения за кодовыми агентами: карта компонентов проекта или экспериментальная трехмерная кухня с задачами

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

cogit записывает каждое сообщение агенту как мысль-коммит и привязывает к нему код, так что причина любой строки видна.

ПлагинРасширенный доступ158Звезды репозитория

Набор утилит для Claude Code: фоновые скиллы, экспертные агенты, слэш-команды и шаблоны промптов для разработки

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

codesight за один запуск собирает карту проекта: маршруты, модели БД, зависимости, env-переменные. Отдает ее агенту файлами или через MCP-сервер

MCP-серверРасширенный доступ1,4 тыс.Звезды репозитория

Общие настройки Claude Code для команды: хуки против опасных команд, проверка перед завершением и скиллы от спецификации до ревью

ВоркфлоуШирокий доступ92Звезды репозитория

Просмотр журналов Claude Code в читаемом виде: вызовы инструментов, токены и живой хвост сессии.

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

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

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

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Trail-code (ранее Graft) (эта карточка)нет11 233
CodeGraphнетне нужна77 481отдельный MCP-сервер с локальным графом кода в SQLite, индекс обновляется по событиям файловой системы
code-review-graphнетне нужна32 733пакет с PyPI, граф через tree-sitter отдает агенту по MCP контекст вокруг правки, есть GitHub Action для ревью
base (basemode)нет385CLI на Rust строит граф знаний о коде и решениях и через хуки Claude

Коротко о README

Документация открывается таблицей двух частей, карты кода и выводов, затем идут быстрый старт и таблица перехода с Graft на Trail-code. Подробно описаны виды и места хранения выводов, пример такого файла и порядок работы команды через git. Замеры приведены трех видов: 162 запуска одного агента на одних задачах, SWE-bench Verified и 15 задач на репозитории PocketBase. Дальше справочник: построение графа в два прохода, список языков, таблица файлов, которые init пишет вне репозитория, шесть инструментов MCP, полный список команд CLI, работа с монорепозиториями и визуализация `trail viz`. В корне лежат отдельные TELEMETRY.md и SECURITY.md, журнал изменений, Dockerfile и действие GitHub для разбора радиуса влияния. Лицензия MIT.

Бейдж для README

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