220 lines
9.8 KiB
Markdown
220 lines
9.8 KiB
Markdown
# Srovnání: pi-coding-agent vs oh-my-pi
|
||
|
||
**Datum:** 2026-06-16
|
||
|
||
---
|
||
|
||
## 1. Základní identita a vztah
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Autor** | Mario Zechner (@badlogic) | Can Bölük (@can1357) |
|
||
| **Filozofie** | Minimalismus — „harness, ne produkt“ | „Batteries included“ fork pi s agresivními vylepšeními |
|
||
| **Vztah** | Upstream originál | Fork pi-mono (~1300 commitů navíc) |
|
||
| **GitHub stars** | ~2.1k (pi-mono) | ~7.2k |
|
||
| **Balíček npm** | `@earendil-works/pi-coding-agent` | `@oh-my-pi/pi-coding-agent` |
|
||
| **Web** | https://pi.dev/ | https://omp.sh/ |
|
||
|
||
oh-my-pi vzešel z pi jako „hobby harness“, kde autor experimentoval s inkrementálními vylepšeními. Postupem času se vyvinul v plnohodnotnou alternativu s vlastním ekosystémem.
|
||
|
||
---
|
||
|
||
## 2. Architektura a technický stack
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Jazyk** | TypeScript (Node.js/Bun) | TypeScript + Rust (N-API) |
|
||
| **Monorepo** | Ano — `packages/ai`, `agent`, `coding-agent`, `tui` | Ano, ale Rust komponenty pro výkon |
|
||
| **TUI engine** | Vlastní diferenciální renderer (`pi-tui`) | Vlastní, pravděpodobně rozšířený |
|
||
| **LSP integrace** | Nepřítomná nativně | **Nativní LSP wiring** — agent „vidí“ IDE |
|
||
| **Provider abstrakce** | `@pi-ai` — unified LLM API | Zděděno z pi, rozšířeno |
|
||
| **Podporované runtime** | Node.js, Bun | Node.js, Bun |
|
||
|
||
Klíčový rozdíl: oh-my-pi embeduje Rust přes N-API pro operace, kde spawning externích procesů (např. `rg`) „cítí špatně“. Pi zůstává čistě TypeScript.
|
||
|
||
---
|
||
|
||
## 3. Edit tool — největší technický rozdíl
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Formát editace** | `str_replace` — najdi přesný text, nahraď | **Hash-anchored edits (Hashline)** |
|
||
| **Princip** | Model musí reprodukovat každý znak včetně whitespace | Každý řádek souboru má 2-3 znakový hash; model referencuje hashe |
|
||
| **Fail rate (benchmark)** | Závisí na modelu — typicky 20-50% | Výrazně nižší — viz benchmark níže |
|
||
| **Token efektivita** | Standardní | ~20-60% méně output tokenů (podle modelu) |
|
||
| **Ochrana integrity** | Žádná — při mismatchi se edit aplikuje chybně nebo selže | Hash mismatch = odmítnutí editu před poškozením souboru |
|
||
|
||
### Benchmark výsledky (React edit benchmark, 180 úkolů × 3 běhy)
|
||
|
||
| Model | Patch | Replace | Hashline | Hashline v2 | Zlepšení vs Replace |
|
||
|---|---|---|---|---|---|
|
||
| Gemini 3 Flash | 73.3% | 70.0% | 78.3% | **81.3%** | +11.3pp |
|
||
| Claude Haiku 4.5 | 63.3% | 65.0% | 68.3% | **76.3%** | +11.3pp |
|
||
| Claude Sonnet 4.5 | 65.6% | 76.7% | 78.3% | **80.0%** | +3.3pp |
|
||
| GPT-5.1 Codex Mini | 57.2% | 73.3% | 60.0% | **77.5%** | +4.2pp |
|
||
| Grok Code Fast 1 | 6.7% | 66.7% | 68.3% | **71.3%** | +4.6pp |
|
||
| MiniMax M2.1 | 23.3% | 55.0% | 55.0% | **65.0%** | +10.0pp |
|
||
| GLM-4.7 | 51.7% | 66.7% | 71.7% | **75.0%** | +8.3pp |
|
||
| Kimi K2.5 | 66.7% | 71.7% | **76.7%** | — | +5.0pp |
|
||
|
||
**Hashline porazil Patch u 14/16 modelů.** Nejslabší modely profitovaly nejvíc — Grok Code Fast 1 z 6.7% na 68.3% (10× zlepšení).
|
||
|
||
---
|
||
|
||
## 4. Vestavěné funkce
|
||
|
||
| Funkce | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Sub-agents** | ❌ (pouze přes extension) | ✅ Nativní |
|
||
| **Plan mode** | ❌ (pouze přes extension) | ✅ Nativní |
|
||
| **Permission gates** | ❌ (pouze přes extension) | ✅ Nativní |
|
||
| **LSP integrace** | ❌ | ✅ |
|
||
| **Browser tools** | ❌ (pouze přes extension) | ✅ |
|
||
| **Python REPL** | ❌ | ✅ |
|
||
| **Commit tool** | ❌ | ✅ (conventional commits) |
|
||
| **Session management** | ✅ Stromová historie | ✅ + rozšířená |
|
||
| **Stealth mode** | ❌ | ✅ (impersonuje Claude Code pro rate-limit bypass) |
|
||
| **MCP integrace** | ✅ Přes extension | ✅ |
|
||
| **Sandboxing** | Přes extension/Gondolin/Docker | Přes extension |
|
||
| **SSH execution** | Přes extension | ? |
|
||
|
||
Pi filozofie: „Nepotřebuješ to? Nevidíš to. Potřebuješ to? Nainstaluj extension nebo si to nech postavit.“
|
||
oh-my-pi filozofie: „Všechno důležité je tam hned.“
|
||
|
||
---
|
||
|
||
## 5. Provider a model podpora
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Počet providerů** | 15+ | Zděděno z pi, pravděpodobně stejné |
|
||
| **Seznam** | Anthropic, OpenAI, Google, Azure, Bedrock, Mistral, Groq, Cerebras, xAI, Hugging Face, Kimi, MiniMax, OpenRouter, Ollama, … | Stejný základ |
|
||
| **Mid-session switch** | ✅ `/model` nebo `Ctrl+L` | ✅ |
|
||
| **Favorites cycling** | ✅ `Ctrl+P` | ? |
|
||
| **Custom providers** | ✅ Via `models.json` nebo extension | ✅ |
|
||
|
||
---
|
||
|
||
## 6. Extensibilita a ekosystém
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Extension systém** | TypeScript moduly — plný přístup k tools, commands, TUI, events | Zděděno z pi, rozšířeno |
|
||
| **Skills** | ✅ On-demand capability balíčky | Zděděno |
|
||
| **Prompt templates** | ✅ Markdown soubory, `/name` pro expanzi | Zděděno |
|
||
| **Themes** | ✅ | Zděděno |
|
||
| **Package registry** | https://pi.dev/packages — npm i git | ? |
|
||
| **Příklady extensions** | 50+ oficiálních (subagent, plan-mode, permission-gate, SSH, sandbox, MCP, …) | Vlastní sada |
|
||
| **Self-modifikace** | ✅ „Ask Pi to build it for you“ | ✅ |
|
||
|
||
Pi má robustnější dokumentovaný ekosystém. oh-my-pi je spíše „one-man show“ s forkem, kde autor přidává co potřebuje.
|
||
|
||
---
|
||
|
||
## 7. Context engineering
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **System prompt** | Minimální — token efficient | Zděděno, možná rozšířeno |
|
||
| **AGENTS.md** | ✅ Načítá z `~/.pi/agent/`, parent dirs, cwd | ✅ |
|
||
| **SYSTEM.md** | ✅ Per-project override/append | ✅ |
|
||
| **Compaction** | ✅ Auto-summarize, plně customizable via extension | Zděděno |
|
||
| **Progressive disclosure** | ✅ Skills se loadují on-demand | Zděděno |
|
||
| **Dynamic context** | ✅ Extensions mohou injectovat zprávy, filtrovat historii, RAG | Zděděno |
|
||
| **Prompt cache friendly** | ✅ Minimal system prompt + on-demand skills | Zděděno |
|
||
|
||
---
|
||
|
||
## 8. UX a interakce
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Steering** | `Enter` — interrupt current tool, `Alt+Enter` — queue follow-up | Zděděno |
|
||
| **Módy** | Interactive, Print/JSON, RPC, SDK | Primárně interactive |
|
||
| **Historie** | Stromová — `/tree` pro navigaci, branching | Zděděno |
|
||
| **Export** | ✅ HTML (`/export`), GitHub gist (`/share`) | ? |
|
||
| **Reload** | ✅ `/reload` po self-modifikaci | ? |
|
||
| **IDE integrace** | ❌ Pure terminal | ✅ Editor-drivable agent (Zed, …) |
|
||
|
||
---
|
||
|
||
## 9. Bezpečnost a izolace
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Built-in permissions** | ❌ Žádné — běží jako uživatel | ❌ Žádné |
|
||
| **Containerization docs** | ✅ Gondolin (micro-VM), Docker, OpenShell | ? |
|
||
| **Path protection** | Přes extension | ? |
|
||
| **Sandboxing** | Přes extension | Přes extension |
|
||
|
||
Obě nástroje vyžadují externí sandboxing pro bezpečné použití s nedůvěryhodným kódem.
|
||
|
||
---
|
||
|
||
## 10. Výkon a benchmarky
|
||
|
||
| Metrika | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **Edit success rate** | Závisí na modelu a formátu | **+3-41pp vyšší** díky Hashline |
|
||
| **Output token usage** | Standardní | **-17-61%** méně (podle modelu) |
|
||
| **Retry loops** | Časté při Patch/Replace selhání | Výrazně méně |
|
||
| **Speed (harness overhead)** | Čistý TS | TS + Rust N-API pro heavy ops |
|
||
|
||
Klíčové zjištění z benchmarku: **+8% u Gemini 3 Flash je větší zlepšení než většina model upgrades** — a stálo to nulu tréninkového compute.
|
||
|
||
---
|
||
|
||
## 11. Komunita a governance
|
||
|
||
| | **pi-coding-agent** | **oh-my-pi** |
|
||
|---|---|---|
|
||
| **License** | MIT | MIT |
|
||
| **Contributing** | Auto-close nových issues/PRs — maintainer review denně | Otevřenější? |
|
||
| **Discord** | ✅ Aktivní | ? |
|
||
| **Session sharing** | ✅ Hugging Face dataset (`pi-share-hf`) | ? |
|
||
| **Supply-chain** | Aggressive pinning, audit, shrinkwrap | ? |
|
||
| **Auto-updates** | `pi update --self` | ? |
|
||
|
||
Pi má rigidnější governance model — nové PRs se automaticky zavírají. oh-my-pi je osobní projekt jednoho autora.
|
||
|
||
---
|
||
|
||
## 12. Kdy použít co
|
||
|
||
### pi-coding-agent
|
||
- Chceš **minimalistický harness**, který se přizpůsobí tvému workflow
|
||
- Potřebuješ **maximální customizaci** — vlastní extensions, skills, prompts
|
||
- Pracuješ s **více projekty** a chceš sdílet konfiguraci via AGENTS.md
|
||
- Chceš **čistý TypeScript** stack bez nativních závislostí
|
||
- Potřebuješ **SDK/RPC** pro embedding do vlastních aplikací
|
||
- Ceníš si **dobře dokumentovaného ekosystému** a package registry
|
||
|
||
### oh-my-pi
|
||
- Chceš **„batteries included“** — LSP, subagents, browser, Python hned po instalaci
|
||
- Hledáš **nejvyšší edit success rate** — Hashline je měřitelně lepší
|
||
- Chceš **nižší token consumption** (levnější API bills)
|
||
- Potřebuješ **IDE integraci** — editor-drivable agent
|
||
- Preferuješ **agresivní optimalizace** nad minimalistickou čistotou
|
||
- Nevadí ti **Rust N-API dependency** a potenciálně rychlejší breaking changes
|
||
|
||
---
|
||
|
||
## 13. Filozofický rozdíl
|
||
|
||
**Pi:** „Model je důležitý, ale harness je most. My ti dáme most, postav si po něm co chceš.“
|
||
|
||
**oh-my-pi:** „Most je polovina problému. Druhá polovina je, že most musí být tak dobrý, že i slabý model přejde.“
|
||
|
||
Autor oh-my-pi argumentuje, že vendor-lock harnessů (Claude Code, Codex) je škodlivý — žádný vendor neoptimalizuje pro konkurenční modely. Open-source harness může tunovat pro všechny. Pi poskytuje platformu pro tuto filosofii; oh-my-pi ji realizuje konkrétními technickými inovacemi.
|
||
|
||
---
|
||
|
||
## Zdroje
|
||
|
||
- https://pi.dev/
|
||
- https://github.com/earendil-works/pi
|
||
- https://github.com/can1357/oh-my-pi
|
||
- https://blog.can.ac/2026/02/12/the-harness-problem/
|
||
- https://pyshine.com/Oh-My-Pi-AI-Coding-Agent-Terminal/
|
||
- https://www.implicator.ai/pi-is-not-a-claude-code-rival-it-is-a-harness-rebellion/
|