Haft CLI
Локальная память решений для ИИ-агентов: задачи, сравнение вариантов и доказательства хранятся в проекте, устаревшее помечается
- 1 397 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Команда haft init дописывает конфигурацию агента, раздел в CLAUDE.md или AGENTS.md и каталоги со скиллами
- Скиллы получают разрешения на Bash, чтение файлов и вызовы MCP
- Запись WorkCommission создает ограниченное полномочие на работу для внешнего исполнителя
Установка
- Работает в
Ручная установка
curl -fsSL https://raw.githubusercontent.com/m0n0x41d/haft/main/install.sh | bashСтавит текущий релиз haft. Затем в проекте выполните haft init с флагом нужного агента.
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Команда haft init дописывает конфигурацию агента, раздел в CLAUDE.md или AGENTS.md и каталоги со скиллами
- Скиллы получают разрешения на Bash, чтение файлов и вызовы MCP
- Запись WorkCommission создает ограниченное полномочие на работу для внешнего исполнителя
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Haft — локальный слой управления для ИИ-агентов программиста, который хранит память проекта: какая задача решается, какие варианты сравнивали, что решил человек, чем это подтверждено и что устарело. Он не пишет код сам и не генерирует документацию. Инструмент построен на методологии First Principles Framework (FPF) Анатолия Левенчука и подтягивает ее первоисточник в контекст агента. Установщик install.sh ставит бинарник haft, а haft init --claude или haft init --codex прописывает MCP-сервер в .mcp.json или .codex/config.toml, кладет 12 скиллов (`h-frame`, `h-explore`, `h-compare`, `h-decide`, `h-verify`, `h-status` и другие) и вставляет управляемый раздел в CLAUDE.md или AGENTS.md. Записи лежат markdown-файлами в .haft/, а структурированный граф хранится в базе SQLite в ~/.haft/projects/. Через MCP-сервер haft serve агент получает 12 инструментов: заметки, постановка задачи, варианты и сравнение, записи решений с инвариантами и доказательствами, запросы к графу кода и к памяти проекта. Сервер сам проверяет аргументы и возвращает ошибку, если не хватает обязательных полей, нет равных условий сравнения или у прогноза нет verify_after. У доказательств есть срок годности: устаревшие помечаются для пересмотра.
Для кого. Для разработчиков и техлидов, которые ведут проект с Claude Code или Codex на протяжении многих сессий и хотят, чтобы выбор между вариантами и его основания не терялись вместе с историей чата.
Подходит, если
- Агент предлагает крупную перестройку, а сначала нужно сформулировать задачу и критерии приемки скиллом `h-frame`
- Выбор между вариантами надо зафиксировать с равными условиями сравнения и фронтом Парето, а не одной итоговой оценкой
- Через месяц нужно проверить, остается ли прошлое решение верным, и увидеть, какие доказательства устарели
- Нескольким сессиям агента нужна общая память о том, что решено и на каком основании
- Перед правкой кода агент должен увидеть решения и инварианты, которые относятся к этому файлу или символу
Не подходит, если
- Нужен агент, который сам исполняет задачи: во внешней версии v9 встроенных исполнителей нет, а полномочия на работу записываются для стороннего раннера
- Нужен поиск по расшифровкам прошлых разговоров: Haft хранит типизированные записи о решениях, а не переписку
- Вы работаете в Cursor, Gemini CLI, OpenCode, Grok, Hermes или Zed: автор называет эти адаптеры экспериментальными или устаревшими
- Проекту не нужны лишние файлы: init создает каталог .haft в репозитории и базу SQLite в домашней папке
Пример запроса к агенту
Сформулируй задачу по замене очереди сообщений, сравни три варианта на равных условиях и покажи, какие решения проекта это затрагиваетОграничения
- Лицензия MIT. Автор добавил примечание: понятия FPF принадлежат Анатолию Левенчуку, а лицензия покрывает только программную часть.
- Стабильными хостами названы Claude Code и Codex. Адаптеры для Grok, Pi, Hermes, Zed, Antigravity, Cursor, Gemini CLI и OpenCode экспериментальные или устаревшие. В Cursor сервер haft после init включают вручную в Settings, MCP.
- Необязательный компонент haft-embed на Rust для старых путей семантического поиска может занимать 1–2 ГБ памяти. Отключить его можно строкой embedding.provider: none в ~/.haft/config.yaml.
- Отдельная экспериментальная альфа haft10 рассчитана на macOS arm64 и Codex, подходит для новых проектов или копий и обычную установку не заменяет.
- В версии 9 убраны встроенные команды haft run и haft harness, интерактивный агент и среда Open-Sleigh на BEAM.
Как отключить. Уберите сервер haft из .mcp.json или .codex/config.toml и удалите скиллы из ~/.claude/skills/ или ~/.agents/skills/ (при --local из .claude/skills/ или .agents/skills/ проекта). Раздел между метками `<!-- haft:start -->` и `<!-- haft:end -->` в CLAUDE.md или AGENTS.md удалите вручную. Записи в .haft/ и ~/.haft/projects/ остаются на диске.
Частые вопросы
Как поставить Haft для Claude Code?
Выполните команду из install.sh, затем запустите в проекте haft init --claude и перезапустите Claude Code. Скиллы попадут в ~/.claude/skills/, а с флагом --local в .claude/skills/ проекта. Сервер MCP прописывается в .mcp.json, а раздел о Haft появляется в CLAUDE.md.
Чем Haft отличается от файла с заметками для агента?
Записи типизированы: заметка, карточка задачи, решение, доказательство. Сервер MCP проверяет их и возвращает структурированные ошибки, если нет обязательных полей или равных условий сравнения. Запрос haft_query показывает решения и инварианты, которые относятся к файлу или символу.
Может ли агент принять решение за меня?
Нет. Вызов haft_decision с действием `decide` через MCP возвращает operator_confirmation_required, пока нет подтверждения хоста. Привязывающее решение записывается по прямой недвусмысленной просьбе человека, а скилл `h-commission` вызывается только вручную.
Что Haft делает с устаревшими доказательствами?
У доказательств есть уровни формальности F0–F9, уровни согласованности CL0–CL3 и срок годности. Оценка доверия R_eff падает с возрастом, а устаревшее помечается для пересмотра. После внедрения решения проверку запускают вызовом haft_decision с действием `measure`.
Как посмотреть состояние Haft в проекте?
Команда haft spec status показывает следующий шаг онбординга и отдельно состояние здоровья: структурные находки, дрейф и устаревание. Полный отчет дает `haft spec check --json`. Состояние ready не равно готовности к релизу.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыЛокальная память для ИИ-агентов программиста: хуки записывают ход каждой сессии, и Claude Code, Codex или Cursor находят прошлые решения через MCP
Datalog-движок на Rust как рабочая память агента: факты с происхождением, правила вывода и MCP-сервер для Claude Code
Общая память для группы ИИ-агентов с областями доступа, аудитом и графом знаний: MCP-сервер, Docker и облако
Локальная память для агентов: хранит переписку и файлы проекта дословно и находит нужное семантическим поиском через MCP
Зашифрованная офлайн-память для ИИ-агентов: общее хранилище на вашем компьютере для Claude Code, Cursor, Codex и других
Долговременная память для ИИ-агентов: файлы Markdown как источник истины, индекс SQLite как кэш, общая у Claude Code, Codex и других
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| Haft (эта запись) | нет | 1 397 | ||
| Episodic Memory | нет | 493 | ищет по смыслу в прошлых разговорах с агентом, а Haft хранит типизированные записи решений и доказательств | |
| Basic Memory | нет | не нужна | 4 389 | долговременная память в Markdown-файлах с графом связей и поиском, без записей решений с проверкой доказательств |
Коротко о README
Описание открывают идеей FPF и установкой в одну строку, затем идут таблица того, что делает haft init для каждого агента, раздел о локальных следах и три поверхности: скиллы, CLI и MCP-сервер. Дальше таблицы двенадцати инструментов и двенадцати скиллов, работа с доказательствами и внешними исполнителями. В репозитории есть ALPHA.md, MIGRATION-v8.md и CHANGELOG.md, тесты на Go и каталог .haft с решениями самого проекта.