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 создан для опытных разработчиков, работающих в терминальной среде (ssh + tmux), DevOps-инженеров, любителей open-source и тех, кто хочет полного контроля над AI-агентом без привязки к конкретному IDE или провайдеру моделей.

Что такое 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 ClaudeOAuth / API keyПо тарифам Anthropic
OpenAI / CodexOAuth / API keyПо тарифам OpenAI
GitHub CopilotOAuthВключено в подписку
Gemini CLIOAuthБесплатная квота
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 CodeAider
ЛицензияMIT (open-source)ПроприетарныйApache 2.0
Цена инструментаБесплатноБесплатноБесплатно
Провайдеры моделей40+Преимущественно Anthropic100+ (через 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/SkillsPython плагины
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 — активно развивающийся проект. Хотя релизы выходят часто и сообщество растёт, стабильность API и документация пока уступают Claude Code или Aider. Проверяйте CHANGELOG перед обновлением в продакшн-среде.

Вердикт

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 — мощный, инновационный, но требует технической зрелости пользователя.