phi CLI
Кодовый агент для терминала на Go: один бинарник без Node и Python, ревью диффа прямо в интерфейсе и подагенты
- 744 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Агент читает и правит файлы проекта и запускает команды оболочки, а флаг `--yolo` и режим `autopilot` снимают запросы подтверждения
- Скрипт установки запускается через curl и bash, а ключи провайдеров лежат в файле `~/.phi/config.yaml`
- Скиллы из каталога `.agents/skills` проекта подхватываются без подтверждения и могут нести чужие инструкции
Установка
Ручная установка
curl -fsSL https://raw.githubusercontent.com/pulseaiclub/phi/main/scripts/install.sh | bashУстановка последнего релиза на macOS и Linux. Прочтите скрипт до запуска. Для Windows есть scripts/install.ps1 для PowerShell 5.1 и новее.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Агент читает и правит файлы проекта и запускает команды оболочки, а флаг `--yolo` и режим `autopilot` снимают запросы подтверждения
- Скрипт установки запускается через curl и bash, а ключи провайдеров лежат в файле `~/.phi/config.yaml`
- Скиллы из каталога `.agents/skills` проекта подхватываются без подтверждения и могут нести чужие инструкции
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
phi запускает в терминале интерфейс чата с кодовым агентом. Модель правит код через `read`, `write` и `edit`, ищет через `grep`, `find` и `ls` и запускает команды через `bash`. Сам агент поставляется одним бинарником без Node, Electron и Python. В интерфейс встроены свои средства. Команда `/diff` открывает полноэкранное ревью изменений Git: к строкам можно оставить заметки и передать их агенту. `/code` показывает исходник с подсветкой и отправляет выделенный фрагмент в чат, а `/branch` переключает ветку. Знак @ вызывает выбор файла, команда с восклицательным знаком запускает оболочку локально. MCP-серверы подключаются командой `phi mcp add`, и схемы их инструментов не попадают в контекст, пока вы не обратитесь к серверу. Тремя ролями подагентов, `explore`, `review` и `worker`, агент делит работу на изолированные задачи.
Для кого. Для разработчиков, которые предпочитают терминал и хотят легкого кодового агента со своими ключами от OpenAI, Anthropic или Gemini.
Подходит, если
- Нужно просматривать изменения построчно в самом терминале и отправлять свои заметки к строкам агенту
- Нужно запустить агента в скрипте или CI одной командой `phi run -p` и получить события в JSONL
- Нужно подключить много MCP-серверов так, чтобы схемы их инструментов не занимали контекст до первого вызова
- Нужно вести параллельные исследования и правки подагентами с разными моделями для разных ролей
Не подходит, если
- Нужна графическая оболочка или десктоп-приложение: phi работает только в терминале
- Нет доступа к API ни одного провайдера: без ключа агент не запустится
- Нужна жесткая изоляция агента: у phi есть система разрешений, а песочницу проект не описывает
Пример запроса к агенту
Найди причину падения теста в `internal/tools`, поправь код и покажи изменения через `/diff`, прежде чем что-либо коммитить.Ограничения
Модель не входит в поставку: ключ и адрес провайдера вписывают в `~/.phi/config.yaml` командой `phi config` или задают переменными `PHI_API_KEY` и `PHI_MODEL`. Инструменты fd и ripgrep скачиваются в фоне при первом запуске. Блок спонсоров на странице проекта рекламирует сторонний API-шлюз infistar.cc по партнерским ссылкам и дает готовый фрагмент `config.yaml`, где у всех моделей стоит адрес этого шлюза. Если вставить фрагмент как есть, запросы с вашим кодом пойдут через посредника. Для прямой работы впишите адрес своего провайдера. Необязательный оптимизатор при включении через `PHI_OPTIMIZER` отправляет историю команд и контекст внешнему сервису TypeSafe и требует ключ `TYPESAFE_API_KEY`.
Как отключить. Удалите бинарный файл phi из каталога, куда его поставил скрипт, и при желании каталог `~/.phi` с конфигурацией, сессиями и скачанными `fd` и `ripgrep`. Ключи провайдеров из `config.yaml` отзовите в кабинете провайдера, если файл попадал в чужие руки или в репозиторий.
Частые вопросы
Как установить phi и подключить модель?
На macOS и Linux выполните `curl -fsSL https://raw.githubusercontent.com/pulseaiclub/phi/main/scripts/install.sh | bash`, на Windows используйте скрипт `install.ps1` в PowerShell. После установки запустите `phi config` и впишите модель, ключ и при необходимости базовый адрес. Для разового запуска хватит переменных `PHI_MODEL` и `PHI_API_KEY`.
Какие провайдеры и модели поддерживает phi?
В поле `api` указывают `OpenAI`, `OpenAIResponses`, `Anthropic` или `Gemini`, а при пустом значении используется формат, совместимый с OpenAI. Для некоторых моделей, например `deepseek-flash`, есть встроенные пресеты с адресом и контекстом.
Можно ли запретить агенту писать файлы и выполнять команды?
Да. В `permissions.mode` задайте `readonly`: запись и `bash` будут запрещены, а чтение останется. Доступны также режимы `interactive`, `autopilot` и `headless-strict`, а правила `deny` приоритетнее `ask` и `allow`. Запись по умолчанию ограничена рабочим каталогом.
Какие скиллы читает phi?
Он загружает `SKILL.md` из `~/.phi/skills`, а также из `~/.agents/skills` и `.agents/skills` в проекте, поэтому набор скиллов, поставленный для другого агента, работает без настройки. Каталоги проекта подхватываются без подтверждения, так что проверяйте их, как проверяете `AGENTS.md`.
Как подключить MCP-сервер в phi?
Выполните, например, `phi mcp add browsermcp -- npx @browsermcp/mcp@latest`, а проверку настроек запустите командой `phi mcp doctor`. Конфигурация лежит в `~/.phi/mcp.json`, а файл `.phi/mcp.json` в проекте переопределяет серверы с тем же именем. Отключить MCP целиком можно переменной `PHI_MCP=off`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыTUI поверх tmux ведет сессии Claude Code, Codex и других агентов одним списком: статус, быстрые промпты, worktree и ревью диффа
Учебный терминальный агент для кода на Python, задуманный как «nanoGPT для агентов»: прочитать, разобрать и форкнуть
Минималистичный агент для кода в терминале, который расширяется скиллами, шаблонами промптов и пакетами на TypeScript
CLI на Go, который настраивает уже установленные у вас ИИ-агенты: дает им общую память, рабочий процесс и детерминированные шаги, не подменяя сами агенты
Открытый кодовый агент для терминала, браузера и десктопа, который работает с моделями от OpenAI и Claude до Ollama
Кодинговый агент на Go для открытых моделей: из беседы делает задачи в отдельных ветках, сам проверяет и вливает результат, ведет все проекты в одном окне
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| phi (эта запись) | нет | 744 | |
| zerostack — легкий кодовый агент на Rust | нет | 1 727 | консольный кодовый агент на Rust с песочницей и пятью режимами прав, phi написан на Go |
| Late | нет | 452 | кодовый агент на Go в одном бинарнике, где оркестратор планирует, а одноразовые субагенты пишут и ищут |
Коротко о README
Описание проекта открывается блоком спонсоров и быстрым стартом, затем приводит замеры: бинарник около 15 МБ, запуск около 31 мс. Дальше идет справочник по настройке, режимам, командам и правам, а также по скиллам, расширениям и MCP.