EnglishРусский Map

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.