oh-my-pi (omp) — кодинг-агент с «проводкой» от IDE и встроенными инструментами
📂 Исходный код на GitHubomp — кодинг-агент с IDE на борту: 60+ провайдеров, 31 встроенный инструмент, LSP и DAP-операции, нативный Rust-биндинг без fork/exec. Форк Pi от Mario Zechner.
omp (Oh My Pi) — кодинг-агент от Can Bölük, форк Pi с философией «batteries included». Вместо минималистичного инструментария он поставляет максимально возможную поверхность агента «из коробки»: более 60 провайдеров, 31 встроенный инструмент, 14 LSP-операций, 28 DAP-операций и около 80 тыс. строк Rust-ядра. Главная идея — вплести в агента то, что знает IDE: язык-сервер, отладчик, поиск и шелл, не выходя из терминала.
Распространяется как один бинарник, собираемый для macOS, Linux и Windows. Работает в TUI, одной командой (omp -p), через RPC по stdio или по протоколу ACP внутри редактора.
Установка
У проекта несколько способов установки — под любую платформу:
# macOS · Linux
curl -fsSL https://omp.sh/install | sh
# Homebrew
brew install can1357/tap/omp
# Bun (рекомендуется)
bun install -g @oh-my-pi/pi-coding-agent
# Windows (PowerShell)
irm https://omp.sh/install.ps1 | iex
Есть и Nix-флейк с модулями для Home Manager, и поддержка pinning-версий через mise. Требуется Bun ≥ 1.3.14. omp сам генерирует completion-скрипты для bash, zsh и fish из живых метаданных CLI, поэтому они никогда не расходятся с реальными командами.
Что отличает omp
LSP в каждом изменении
Попросите переименовать — и получите настоящее переименование. Запрос идёт через workspace/willRenameFiles, поэтому re-export'ы, barrel-файлы и алиасные импорты обновляются до того, как файл передвинется. «Всё, что знает ваша IDE, знает агент».
Настоящий отладчик
C-бинарник падает — агент подключает lldb, доходит до битого указателя и читает кадр. Go-сервис завис — прикрепляется dlv и проходится по горутинам. Python-процесс застрял — debugpy, пауза, инспекция, вычисление. Против этого «агенты, посыпающие код принтами».
Субагенты первого класса
Команда task разносит работу по изолированным worktree, у каждого воркера своя поверхность инструментов, а итог — schema-валидированный объект, который родитель читает напрямую: без разбора прозы, конфликтов между сиблингами и осиротевших правок. Панель Agent Hub (Alt+A) показывает активность и расходы каждого субагента.
Рецензент-модель
К роли advisor можно привязать вторую модель, которая читает каждый ход основного агента и вставляет заметки — тихую ремарку, опасение или жёсткий блокер. Она живёт на своём контексте и своей модели, поэтому замечает то, что исполнитель пробежал мимо.
Нативная производительность
omp не вызывает rg, grep и bash как внешние бинарники: ripgrep, glob и find слинкованы прямо в процесс, а brush — это встроенный bash с сессиями, переживающими вызовы, и 58 утилитами (ls, sed, sort, xargs, даже jq), портированными в крейт builtins. Ноль fork/exec на горячем пути — один и тот же бинарник работает на macOS, Linux и Windows без WSL-моста.
Hashline — правки по хэшу содержимого
Модель указывает на якоря вместо того, чтобы перепечатывать строки, которые хочет изменить: исчезают войны за пробелы и циклы «string not found». Если файл устарел и якоря разошлись — патч отклоняется до того, как что-то испортит. Grok 4 Fast тратит на 61% меньше выходных токенов на ту же работу.
Встроенные инструменты
Ядро инструментов живёт в одном пространстве имён с read и bash. Основные:
Файлы и поиск — read (файлы, каталоги, архивы, SQLite, PDF, ноутбуки, URL и внутренние ://-схемы одним путём), write, edit (hashline-патчи), ast_edit (структурные перезаписи через ast-grep), ast_grep (структурные запросы по 50+ tree-sitter-грамматикам), grep, glob.
Рантайм — bash (рабочий шелл с 46 встроенными coreutils), eval (постоянные Python- и JavaScript-ячейки с общим прелюдом и повторным входом в инструменты).
Интеллект кода — lsp, debug (DAP-сессия: брейкпоинты, шаги, потоки, стек, переменные), security_scan.
Координация — task, hub, todo, ask.
Рабочий стол и веб — browser (Puppeteer-вкладки над headless Chromium или вашим Chrome), computer (окна, скриншоты, нативный ввод, AX-дерево, буфер обмена), web_search, github, generate_image, tts.
Память и навыки — retain, recall, reflect, learn, manage_skill (изолированный managed-навык), checkpoint, rewind.
Часть инструментов (github, security_scan, generate_image, tts, память) по умолчанию выключена и включается настройкой.
Всё уже в коробке
- Веб-поиск через 23 бэкенда с сайт-специфичной экстракцией GitHub, реестров, arXiv, Stack Overflow и документации в структурированный markdown. Vuln-запросы отвечают данными вендора (NVD, OSV, CISA KEV), а не пересказами блогов.
- GitHub как файловая система —
read pr://1428возвращает ту же форму, что иread src/foo.ts;grepходит по диффу как по каталогу. Внутренние схемы (pr://,issue://,agent://,skill://,ssh://) разрешаются в любом FS-инструменте. - Разрешение конфликтов — каждый merge-конфликт становится одним URL: агент пишет
@theirs,@oursили@baseвconflict://N, и файл разрешается чисто. omp commit— читает рабочее дерево черезgit_overview,git_file_diff,git_hunkи разбивает несвязанные изменения на атомарные коммиты, упорядоченные по зависимостям. Циклы отклоняются до записи; исходники получают приоритет над тестами, доками и конфигами.- Память, курируемая агентом — пишет факты через
retain, ловит уроки черезlearn, достаёт черезrecall, сжимает сессию в ментальную модель для следующей. Движок выбирается черезmemory.backend(local, Hindsight, Mnemopi), по умолчанию контекст ограничен проектом. - Наследование чужих конфигов — omp читает восемь форматов уже лежащих на диске в их родном виде: Cursor MDC, Cline .clinerules, Codex AGENTS.md, Copilot applyTo и остальные. Никакой миграции и «поддерживаемого подмножества».
- Коллаборация —
/collabвыводит сессию на реле и отдаёт ссылку и QR. Напарник подключается черезomp joinили просто в браузере. Кадры запечатаны на клиенте — реле не видит ключей.
Провайдеры и роутинг
Девять ролей распределяют работу по намерению: default, smol (дешёвый фанаут субагентов), slow (глубокое рассуждение), plan, commit, плюс vision, task, advisor, tiny. Поддерживаются прямые API (Anthropic, OpenAI, Codex, Gemini, xAI, DeepSeek, Mistral, Groq и десятки других), кодинг-планы подписки (Cursor, GitHub Copilot, GitLab Duo, Devin, Kimi Code и др.) и локальные инстансы через OpenAI-совместимый API (Ollama, LM Studio, llama.cpp, vLLM, LiteLLM).
Четыре полезных рычага роутинга:
- Кастомные провайдеры — всё, что говорит на
openai-completions,openai-responses,anthropic-messages,google-gemini-cliи прочих, объявляется в~/.omp/agent/models.yml. - Цепочки фолбэков —
retry.fallbackChainsподхватывает ход, когда первичный провайдер отдаёт 429 или упирается в квоту. - Модели по путям —
enabledModelsиdisabledProvidersможно ограничить префиксомpath:, закрепив другой набор моделей на одном репозитории. - Круговорот ключей — стек API-ключей на провайдера с ротацией и per-credential backoff'ом.
SDK, RPC и ACP
Один движок, четыре точки входа:
- Интерактив — TUI по умолчанию: вызовы инструментов рендерятся карточками, правки предпросматриваются, двусмысленность уходит в
ask(структурированный выбор). - SDK — пакет
@oh-my-pi/pi-coding-agentдля Node/TypeScript:ModelRegistry,SessionManager,createAgentSessionи типизованные события сессии. - RPC —
omp --mode rpcотдаёт NDJSON-команды и event-фреймы для немедленного внедрения в свою программу. - ACP —
omp acpговорит с редакторами по Agent Client Protocol:bashидёт вterminal/create + terminal/output,read— вfs/read_text_file, деструктивные записи гейтятсяsession/request_permission.
Философия
omp — это форк pi-mono от Mario Zechner с «batteries-included» рабочим процессом. Ключевые идеи: терминальный UX для настоящей работы с кодом, практичные встроенные инструменты (тулы, сессии, ветвление, субагенты, расширяемость) и настраиваемое, а не спрятанное, продвинутое поведение. Расширение — это обычный TypeScript-модуль с тем же инструментальным API, реестром слэш-команд и TUI-примитивами, что и встроенные. На первом запуске omp наследует правила, навыки и MCP-серверы из .claude, .cursor, .windsurf, .gemini, .codex, .cline, .github/copilot и .vscode — без скрипта миграции. Весь проект — TypeScript, MIT, на GitHub.
Три магических слова включают специализированное поведение хода: ultrathink (многошаговое рассуждение), orchestrate (параллельные субагенты с проверкой фаз) и workflowz (детерминированный многосубагентный воркфлоу).
Лицензия MIT. Распространяется для macOS, Linux и Windows (x64 и ARM64), x64 поставляется в двух вариантах — AVX2 и базовом.
Источник: https://github.com/can1357/oh-my-pi