oh-my-pi
- title
- oh-my-pi
- type
- toolbox
- summary
- Форк агента Pi со всем необходимым: LSP, управление браузером, SSH и поиск
- tags
- typescript, cli, ai, coding-agent, fork, watchlist
- language
- TypeScript
- license
- MIT
- created
- 2026-05-06
- updated
- 2026-07-29
- lang
- ru
- translation_of
- oh-my-pi
- source_updated
- 2026-07-29
- translated
- 2026-09-01
- translator
- lllm/antigravity/gemini-3.7-flash-medium
Максималистский форк Pi от Can Bölük. В то время как апстрим Pi от Mario Zechner сохраняет крошечное ядро и выносит всё остальное в пакеты сообщества, oh-my-pi идёт противоположным путём: встраивает инструменты, к которым разработчики обращаются постоянно (LSP, IPython, автоматизация браузера, SSH, веб-поиск, генерация conventional commit'ов, ревью кода), прямо в агента. Название отсылает к oh-my-zsh - ровно те же отношения: отобранный дистрибутив со всем необходимым, надстроенный над минималистичным апстримом.
Для сравнения - LazyPi, другой вариант Pi со всем готовым: LazyPi представляет собой установщик, который оставляет апстрим Pi нетронутым и подтягивает пакеты сообщества вокруг него, тогда как oh-my-pi - это полноценный fork, контролирующий сам бинарник. Различие между форком и установщиком - ключевая грань между ними: oh-my-pi берёт риски интеграции и поломок на одну кодовую базу, а LazyPi работает ровно на том апстриме, который используют все, но наследует фрагментацию множества мелких пакетов.
Философия
README сводит позицию проекта к трём предложениям:
"Keep interactive terminal-first UX for real coding work. Include practical built-ins (tools, sessions, branching, subagents, extensibility). Make advanced behavior configurable rather than hidden."
Это прямой противовес минимализму апстрима Pi. Pi исходит из того, что MCP, субагенты, режим планирования и списки задач - это лишний груз, которому место в пользовательских расширениях. oh-my-pi возражает: для реальной работы с кодом всё это нужно из коробки, а сохранять понятность инструмента следует через гибкую настройку, а не через урезание возможностей. Ключевая фраза здесь - "настраиваемое, а не скрытое": поведение не прячется за непрозрачными значениями по умолчанию и не вырезается, а выводится в виде настроек, которые пользователь может прочитать и изменить. Это разделение в духе Emacs/Doom или Zsh/oh-my-zsh, перенесённое на coding-агентов.
Использование
# Bun (recommended, requires Bun >= 1.3.7)
bun install -g @oh-my-pi/pi-coding-agent
# Or installer script
curl -fsSL https://raw.githubusercontent.com/can1357/oh-my-pi/main/scripts/install.sh | sh
# Or mise
mise use -g github:can1357/oh-my-pi
Slash-команды внутри сессии включают /plan, /model, /review, /extensions, /memory, /export. Shift+Tab переключает уровни размышлений (thinking levels); Ctrl+R ищет по истории промптов; Ctrl+G открывает текущий ввод во внешнем редакторе.
Что входит в комплект
- Правки с привязкой по хешам - контекстно-зависимое редактирование файлов без опоры на сопоставление строк, что избавляет от хрупких сбоев поиска с заменой.
- Интеграция с LSP для 40+ языков со встроенной диагностикой и форматированием.
- Выполнение Python через постоянное ядро IPython с поддержкой rich-вывода.
- Инструмент для коммитов Git, генерирующий сообщения в формате conventional commit с категоризацией.
- Режим ревью кода, формирующий структурированные замечания с уровнями приоритета.
- Автоматизация браузера через headless Puppeteer со stealth-плагинами.
- Веб-поиск через нескольких провайдеров (Exa, Brave, Jina).
- Инструмент SSH с постоянными соединениями.
- Система задач и субагентов для параллельной специализированной работы.
Модель конфигурации
- Пользовательские slash-команды хранятся как TypeScript-модули в
~/.omp/agent/commands/. - Более 65 встроенных тем (Catppuccin, Dracula, Nord, ...).
- Поддержка MCP для внешних инструментов: присутствует, но не является единственным способом расширения; нативные навыки (skills) и хуки сосуществуют рядом.
- Маршрутизация между моделями на основе ролей: отдельные модели для ролей
default,smol,slow,planиcommit. Агент выбирает более дешёвую или быструю модель под конкретную роль. - Универсальное обнаружение конфигурации - автоматическое чтение настроек агентов из Claude Code, Cursor, Windsurf, Gemini и Cline, чтобы не дублировать контекст проекта под каждый инструмент заново.
- Хуки жизненного цикла для перехвата вызова инструментов.
Управление сессиями
Сессии автоматически сохраняются в формате JSONL. Дерево сессии поддерживает ветвление и возврат к более ранним точкам (унаследовано из апстрима Pi). Длинные диалоги подвергаются сжатию контекста; автономный модуль извлечения памяти переносит долгосрочные факты между сессиями.
Связь с апстримом Pi
Форк pi-mono. Апстрим остаётся минималистичным и поставляет небольшое ядро; oh-my-pi следует за апстримом и добавляет слой, который большинство команд собирали бы вручную. Лицензия и кодовая база на TypeScript сохранены; компоненты на Rust и Python добавлены в oh-my-pi (вероятно, уровень LSP и исполнитель IPython соответственно).
Сравните с botctl, где оркестрация агентов реализована под другим углом (супервизия мультиагентов вместо расширения одного агента), и с claude-code как ближайшим коммерческим аналогом подхода со встроенным набором инструментов.
Ограничения
- Форк разрабатывается одним автором (Can Bölük). Актуальность зависит от того, успевает ли один человек следить за апстримом Pi.
- В качестве среды выполнения рекомендуется Bun >= 1.3.7: Bun доступен не во всех окружениях, альтернативой служит установочный скрипт.
- Ядро на TypeScript с подкомпонентами на Rust и Python делает цепочку сборки шире, чем чистый TypeScript-стек Pi.
- 4k звёзд - хороший показатель, но проект ещё молод (текущий релиз v14.7.0, май 2026); компромисс между зрелостью и стабильностью апстрима пока остаётся открытым вопросом.
Отслеживается в watchlist: форк с единственным мейнтейнером над постоянно меняющимся апстримом; стоит периодически проверять, успевает ли форк за обновлениями или начинает отставать.
Репозиторий
github.com/can1357/oh-my-pi - TypeScript, MIT, ~4 000 звёзд (май 2026). Форк pi-mono.