oh-my-pi (omp): AI-агент для терминала нового уровня
Обзор oh-my-pi (omp) — open-source AI-агента для терминала с hash-anchored правками, LSP, субагентами и 40+ провайдерами моделей.
oh-my-pi (omp): AI-агент для терминала нового уровня
«Большинство AI-агентов для кодинга — это плагины для IDE. oh-my-pi переворачивает это: терминал IS интерфейс.» — self.md
Oh My Pi (сокращённо OMP) — это open-source AI-агент для кодинга, созданный специально для работы в терминале, предоставляющий продвинутые рабочие процессы через команду omp. Проект является форком pi-mono, изначально разработанного Марио Зехнером (GitHub: badlogic), и сейчас поддерживается Can Bölük в репозитории can1357/oh-my-pi.
Что такое oh-my-pi?
omp — это open-source AI-агент, ориентированный на создание интеллектуальных помощников по кодированию, работающих напрямую из терминала. Инструмент способен анализировать репозитории, генерировать коммиты, редактировать код и взаимодействовать с инструментами разработки через интегрированную систему инструментов.
Под капотом: 40+ провайдеров, 32 встроенных инструмента, 13 LSP-операций, 27 DAP-операций и ~27 000 строк Rust-ядра.
Установка
# Через bun (рекомендуется, требуется bun ≥ 1.3.14)
bun install -g @oh-my-pi/pi-coding-agent
# Windows (PowerShell)
irm https://omp.sh/install.ps1 | iex
# Через mise (pinned versions)
mise use -g github:can1357/oh-my-pi
Один и тот же бинарник omp работает на macOS, Linux и Windows — без WSL-моста.
Ключевые возможности
1. Hash-anchored редактирование файлов
У стандартных AI-агентов есть известный изъян: агент читает файл, генерирует патч, применяет его — но файл успел измениться между чтением и записью. Агент незаметно портит файл, и об этом узнаёшь, когда сборка ломается. oh-my-pi решает это с помощью hash-anchored редактирования: каждое изменение файла несёт контент-хэш из момента чтения. Если содержимое файла не совпадает при записи — операция падает громко, а не продолжается со стальным диффом.
При редактировании файлов omp использует адресацию по хэшу содержимого, а не по номерам строк. Это важно: когда несколько агентов параллельно редактируют один файл, номера строк смещаются. Агент A редактирует строку 50, сдвигая всё вниз. Правка агента B, нацеленная на «строку 60», попадает в неправильное место. omp находит содержимое по хэшу, а не по позиции. Смещение строк не ломает последующие правки.
2. Оптимизированный инструментарий без форков
Другие агенты вызывают rg, grep, find и bash через shell. На многих машинах этих бинарников нет, а где есть — каждый вызов стоит fork-exec round-trip. omp встраивает реальные реализации прямо в процесс: ripgrep, glob, find работают in-process. brush — это bash с сессиями, которые переживают между вызовами.
3. LSP-интеграция (13 операций)
Агент может запрашивать Language Server Protocol для получения go-to-definition, диагностики и разрешения символов — полезно для больших кодовых баз, где одного grep недостаточно.
Поддерживается более 40 языков программирования с IDE-подобной интеллектуальной подсказкой и форматированием при записи.
4. Персистентное Python-ядро (IPython)
Персистентное IPython-ядро, которое переживает между ходами агента. Переменные, импорты и состояние сохраняются. Встроенные хелперы: lines(), insert_at(), delete_lines(), delete_matching(). Ядро является общим между сессиями (настройка python.sharedGateway) для избежания накладных расходов на запуск.
Пример: отладка производительности с разбором большого лог-файла прямо в агент-сессии:
# Агент выполняет это в персистентном ядре
import json
data = lines('/var/log/app/requests.log')
slow = [json.loads(l) for l in data if '"duration_ms"' in l]
slow_sorted = sorted(slow, key=lambda x: x['duration_ms'], reverse=True)
print(slow_sorted[:10])
5. Субагенты и параллельное выполнение
В omp доступны 6 встроенных агентов: explore, plan, designer, reviewer, task, quick_task. Поддерживается параллельное исследование: reviewer-агент может порождать explore-агентов для анализа больших кодовых баз. Фоновое выполнение с настраиваемой конкурентностью (до 100 задач) и инструмент poll для блокирующего ожидания результатов.
Получите чёткое решение о том, пройдёт ли изменение, с каждой проблемой, ранжированной от P0 до P3 и оценённой по уверенности. /review порождает специализированных reviewer-субагентов, которые параллельно проходят по веткам, отдельным коммитам или незакоммиченным изменениям.
6. Умные коммиты
Инструмент commit — не просто git commit -m. Агент использует git-overview, git-file-diff и git-hunk для понимания изменений на уровне хоков, разбивает несвязанные изменения на отдельные атомарные коммиты, применяет формат conventional commits и опционально обновляет CHANGELOG.md.
Пример использования commit:
# Внутри агента
> /commit --dry-run
# Агент предлагает:
# [feat] authentication: add JWT token generation
# [feat] authentication: add JWT validation middleware
# [compat] authentication: maintain legacy session token support
> /commit --push
7. Поддержка 40+ провайдеров моделей
Можно объявить любой провайдер, поддерживающий openai-completions, anthropic-messages, google-generative-ai и другие форматы. Настраиваются цепочки fallback по ролям — когда основная модель возвращает 429 или упирается в квоту, следующая запись берёт остаток хода. Роли можно привязать к конкретным путям. Поддерживается round-robin ротация API-ключей — полезно, когда один ключ сгорит к обеду.
OAuth-провайдеры включают Anthropic, OpenAI Codex, GitHub Copilot, Gemini CLI, Antigravity. API-ключи поддерживаются для Together, Moonshot, Qianfan, NVIDIA, NanoGPT, Hugging Face, Venice, Xiaomi, vLLM, LiteLLM, Cloudflare AI Gateway и Qwen Portal.
8. Роли моделей
Роли направляют работу по назначению: default для обычных ходов, smol для дешёвого разветвления субагентов, slow для глубокого рассуждения, plan для режима планирования, commit для чейнджлогов. Переключение при запуске через --smol, --slow или --plan; смена модели в середине сессии через /model.
9. Браузерная автоматизация
Агент получает структурированный контент, а не stripped HTML. Поддерживаются реестры пакетов — npm, PyPI, crates.io, Hex, Hackage, NuGet, Maven, RubyGems и другие. Страницы конвертируются в markdown с сохранением структуры ссылок. Агент может цитировать, следовать по ссылкам и делать кавычки без потери якорей.
10. Память между сессиями
Агент помнит вашу кодовую базу между сессиями. Он записывает факты в процессе выполнения через retain, возвращает их через recall и сжимает каждую сессию в ментальную модель, которая загружается на первом ходу следующей. По умолчанию привязана к проекту — то, что агент узнал об этом репозитории, остаётся с ним.
11. Совместимость с конфигурациями других агентов
При первом запуске omp наследует всё, что уже есть на диске: правила, навыки и MCP-серверы из .claude, .cursor, .windsurf, .gemini, .codex, .cline, .github/copilot и .vscode. Никаких скриптов миграции.
Архитектура работы
graph TD
A[Пользователь: задача в терминале] --> B[omp TUI / CLI]
B --> C{Роль модели}
C -->|default| D[Основная LLM]
C -->|smol| E[Дешёвая LLM]
C -->|slow| F[Глубокая LLM]
D --> G[Инструменты]
G --> G1[edit — hash-anchored]
G --> G2[LSP — 13 ops]
G --> G3[Python IPython]
G --> G4[browser — structured]
G --> G5[search — in-process ripgrep]
G --> H[Субагенты]
H --> H1[explore]
H --> H2[reviewer]
H --> H3[task / plan]
H --> I[Git: atomic commits]
I --> J[Результат в сессии]
Цены и лицензия
omp полностью бесплатен для скачивания и использования. Проект распространяется под лицензией MIT и полностью открыт на GitHub.
Модель монетизации: BYOK (Bring Your Own Key). Вы платите только за токены выбранного провайдера:
| Провайдер | Тип доступа | Примерная стоимость |
|---|---|---|
| Anthropic Claude | OAuth / API key | По тарифам Anthropic |
| OpenAI / Codex | OAuth / API key | По тарифам OpenAI |
| GitHub Copilot | OAuth | Включено в подписку |
| Gemini CLI | OAuth | Бесплатная квота |
| Ollama (локально) | Без ключа | Бесплатно |
| 40+ других | API key | По тарифам провайдера |
smol для субагентов с недорогими моделями (например, Gemini Flash или DeepSeek) и slow только для финального планирования. Round-robin ротация ключей спасает от квотных блокировок.Плюсы и минусы
| ✅ Плюсы | ❌ Минусы |
|---|---|
| Полностью бесплатный и open-source (MIT) | Требует опыта работы с терминалом |
| Hash-anchored правки — надёжность при параллельной работе субагентов | Нет графического интерфейса (только TUI) |
| 40+ провайдеров, нет vendor lock-in | Зависимость от bun ≥ 1.3.14 |
| In-process ripgrep/grep — никаких fork-exec | Сложная начальная конфигурация |
| Персистентное IPython-ядро | Документация менее зрелая, чем у Claude Code |
| LSP с поддержкой 40+ языков | Молодой проект — API может меняться |
| Совместимость с конфигами Claude, Cursor, Cline и др. | Нет официальной коммерческой поддержки |
| Роли моделей + fallback-цепочки | Windows-поддержка менее обкатана |
| Память между сессиями (retain/recall) | Требует собственных API-ключей |
| Расширения на TypeScript | — |
Сравнение с альтернативами
| Параметр | oh-my-pi (omp) | Claude Code | Aider |
|---|---|---|---|
| Лицензия | MIT (open-source) | Проприетарный | Apache 2.0 |
| Цена инструмента | Бесплатно | Бесплатно | Бесплатно |
| Провайдеры моделей | 40+ | Преимущественно Anthropic | 100+ (через LiteLLM) |
| Hash-anchored правки | ✅ Да | ❌ Нет | ❌ Нет |
| LSP-интеграция | ✅ 13 ops | ⚡ Базовая | ❌ Нет |
| Субагенты | ✅ До 100 | ✅ Agent Teams | ❌ Нет |
| Память между сессиями | ✅ retain/recall | ✅ Есть | ❌ Нет |
| In-process инструменты | ✅ ripgrep, bash | ❌ Fork-exec | ❌ Fork-exec |
| Браузер-автоматизация | ✅ Headless | ✅ Есть | ❌ Нет |
| Персистентное Python | ✅ IPython kernel | ⚡ Базово | ❌ Нет |
| Расширяемость | TypeScript модули | Hooks/Skills | Python плагины |
| Windows без WSL | ✅ Да | ✅ Да | ⚡ Частично |
| Зрелость экосистемы | 🌱 Молодой (~3k ⭐) | 🏆 Зрелый | 🌟 Зрелый (43k+ ⭐) |
Claude Code — более безопасный выбор по умолчанию для большинства разработчиков: зрелая экосистема, официальная документация, работает из коробки. oh-my-pi выигрывает, если нужны ролевая маршрутизация моделей, hash-anchored правки для параллельной работы или глубокая кастомизация.
Рефакторинг модуля аутентификации:
# Запуск сессии
omp
# Внутри агента — задача
> Refactor the authentication module to use JWT.
Keep backward compatibility with existing session tokens.
# Агент читает файлы с hash-anchored чтением,
# применяет правки, затем:
> /commit --dry-run
# [feat] authentication: add JWT token generation
# [feat] authentication: add JWT validation middleware
# [compat] authentication: maintain legacy session token support
> /commit --push
Вердикт
oh-my-pi (omp) — это один из наиболее технически продуманных open-source AI-агентов для терминала на сегодняшний день. Hash-anchored редактирование решает реальную проблему конкурентных правок, in-process инструменты дают заметный прирост скорости, а поддержка 40+ провайдеров освобождает от vendor lock-in.
Большинство агентов для кодинга — это плагины для IDE. oh-my-pi переворачивает это: терминал и есть интерфейс. Если ваш рабочий процесс строится на ssh + tmux, это агентная инфраструктура, не требующая десктопного приложения.
Кому подойдёт:
- Разработчикам, живущим в терминале (ssh, tmux, Zed)
- Тем, кто работает с параллельными субагентами и не хочет битых патчей
- Power-users, желающим полного контроля над маршрутизацией моделей
- Open-source энтузиастам, готовым к быстро меняющемуся инструменту
Не подойдёт:
- Новичкам в AI-кодинге (лучше начать с Claude Code)
- Тем, кто работает преимущественно в GUI-редакторах
- Командам, которым нужна корпоративная поддержка
Рейтинг: 8.5/10 — мощный, инновационный, но требует технической зрелости пользователя.