← všechny články

Trocha punku s OpenCode


Jsem fanoušek punkových řešení prakticky na všech frontách. Poslední cca rok dost intenzivně experimentuju s Cursorem a Claude Code, hodně se fušuju do agentního psaní webového kódu, ale využívám tyhle nástroje i na řešení běžné agendy a pracovní rutiny. Chtěl jsem si proto vyzkoušet nějakou alternativu, která by se dala využít v mých workflow.

OpenCode

Z mnoha dostupných možností mezi agentními harness (harnes, doslova otěže na agenty, jsou programy, které předžvýkají informace, než se pošlou do velkého jazykového modelu) mě zaujal nástroj OpenCode, který jsem si už po prvních minutách používání docela zamiloval. Mimo jiné taky proto, že je opensource. Mám tady několik postřehů, proč stojí za to tenhle nástroj vyzkoušet.

Stručné okénko o přenositelni

V dnešní době, kdy se každý den vyrojí tucet nových nástrojů a zaručeně nejlepších workflows, kdy se nástroje vyvíjí tak rychle, že když je večer otevřete, vypadají a fungují úplně jinak, než tomu bylo ráno, je přenositelnost práce důležitější než kdy dříve.

Naštěstí jsem byl vždycky na téhle vlně, na markdown můžu přísahat a léta držím mantru "co je lokální, to se počítá"… Takže když jsem začal s ai experimentovat, vše jsem založil na svých lokálních složkách a dávám si pečlivě záležet na tom, aby všechno bylo přenositelné – zkrátka když složku otevřu v jiném programu, aby mi všechno fungovalo tak jako v tom původním.

Chce to taky držet množství napojení, MCP, pluginů a skillů v nějaké rozumné míře a pravidelně aktualizovat. Skill, který jste napsali před půl rokem, bude dneska pravděpodobně obsahovat spoustu balastu, protože modely se velice rychle vyvíjí a jsou čím dál chytřejší, takže je nemusíte tolik vodit za ručičku.

Nástroj, který jede v terminálu

V první řadě je potřeba říct, že Opencode je nástroj, který jede primárně v terminálu (má i desktop verzi, ale je docela čerstvá a nedopečená). To znamená, že nemá žádné krásné grafické rozhraní, je v podstatě čistě textový. To je ale venkoncem něco, co mi na něm velice imponuje, protože je to prostě typograficky lahodné. Zejména s fontem JetBrains Mono (je to taky open-source) to vypadá fakt pěkně.

JetBrains Mono – výška písmen a srovnání s Consolas

S terminálem jsou spojené nějaké těžkosti a pokud v něm nejste úplně doma, tak vás třeba překvapí, že existuje víc způsobů instalace, že paralelně existuje verze 1 i 2 (v2 je lepší, tu chcete), případně vás může nasrat, že to hned po instalaci nejde spustit a musíte terminál restartovat.

Proto doporučuju mít po ruce jako backup nějakou jinou ai, se kterou se při instalaci poradíte. Když už se do samotného Opencode prokoušete, umí se pak celkem obstojně ladit samo.

Je to tedy nástroj ze stejného ranku jako Claude Code (který mě ale z nějakého důvodu tolik nebavil) respektive přišel mi poněkud nepřehledný. OpenCode ve verzi 2 nabízí přehledné rozhranní s volitelnými bočními panely: v levém můžete zobrazit všechny chaty, v pravém přehled kontextu a MCP serverů. To už se blíží rozvržení klasických desktopových ai aplikací, v některých ohledech bych dokonce řekl, že je předčí. Obecně mi příjde ui terminálových aplikací jako dost podceňovaná věc, přitom jen s typografií a volným místem se dají dělat docela velké věci.

OpenCode jsem nejdříve používal v Ghostty, GPU-akcelerovaném terminálu (rovněž open-source). Umí všechno možné, třeba spolehlivě vykreslovat emoji, takže ikony a vizuální značky jsou k mání v promptu i v celém rozhraní a vypadají přesně tak, jak mají. Nakonec jsem ale přešel na CMUX který si mě získal hlavně integrovaným prohlížečem s pěkným a hlavně funkčním design módem (je přehlednější a měné chybový než v Cursoru).

OpenCode v CMUX s integrovaným prohlížečem na imago.cz

Vyzkoušel jsem si i další terminály a appky podobného zaměření, třeba Conductor nebo Superset, ale ty jsem kvůli chybovosti nebo pro mě zbytečné složitosti zavrhnul. Třeba Superset dělá pro každý chat nové worktree, což je sice super, ale dost pomalé + ve worktree nefunguje url lokálního webu, takže náhledy musíte řešit dalšíma obezličkama.

Modely, modely, modely

Dost bylo rozplávání se nad textovým rozhraním, pojďme kouknout pod kapotu. Opencode nabízí tři cesty k velkým jazykovým modelům:

  • OpenCode Zen je pay-as-you-go platforma s jednotným přístupem k desítkám LLM modelů (GPT-5, Claude, DeepSeek, Qwen…) pro kódování a obecné úkoly. Začínáte s $20 kreditů, pak pokračujete s flexibilním účtováním bez měsíčních poplatků – platíte jen za to, co použijete. Ceny se liší podle modelu, od nízkorozpočtových (DeepSeek V4 Flash $0,14/$0,28) až po ty nabušené (Claude Opus $5/$25).
  • OpenCode Go je měsíční předplatné za $10 zaměřené specificky na open-source modely optimalizované pro kódování (DeepSeek, Qwen, GLM). Přichází s měsíčními limity ($15–$60 per model) a stabilní latencí. Za relativně málo peněz docela dost muziky…
  • Vlastní API klíče – jednoduché, ale drahé. Klasické předplatné vás téměř vždycky vyjde levněji, než když platíte za tokeny.

Obě předplatná, Zen i Go, fungují v rámci jednoho sezení, výběr modelů je velice přehledný přímo v Opencode, pomoci zkratky /models.

Já jsem začal deseti dolary na Zen, k tomu mi Opencode přihodil ještě dalších 10 navrh. Nicméně při mé intenzitě práce i přes hojné využívání zadarmových modelů je to pro mě dávka tak na 1-2 dny. Takže jsem k tomu přidal předplatné Go (je tam i refferal link, tak ho sem dávám). Fajn je, že si v nastavení můžete zaškrtnout, zda jste OK s trénováním modelů na vašich datech, případně zda chcete/nechcete posílat data do Číny.

Modelů je pak v Opencode nakonec na výběr strašně moc, takže se cítíte trochu jako školák v cukrárně. Chvíli jsem zkoumal jejich ceny a velikosti kontextového okna, ale nakonec jsem prostě zakotvil u jednoho, který byl zrovna zdarma (na rutinní práci) a jednoho, jehož výstupy mi přišly solidní (na psaní kódu) a ty jsem používal.

Agenti na míru

OpenCode umožňuje všechno možné, třeba vytvářet vlastní agenty – definují se jako obyčejné markdown soubory ve složce .opencode/agents/, každý má jméno, popis, k čemu se hodí, vlastní systémový prompt a vlastní model a povolení, co agent smí: číst soubory, editovat je, pouštět shell příkazy, chodit na web nebo volat další agenty.

To není nic vyjímečného, tohle umí i ostatní harnessy, ale tady je cool, že mezi agenty se v terminálu jednoduše přepíná pomocí zkratky Shift+Tab, takže se dá vždy rychle rozhodnout, jak silného agenta pustit na úkol. Je to podobné, jako když v Cursoru přepínáte plat a build mód, tady máte ale možnost přizpůsobení a rozšíření o vlastní módy.

V kombinaci s tím, že v bočním panelu vidíte přesnou útratu v USD, kolik jste na daném tasku propálili, je tohle super způsob, jak začít na zadáních šetřit. Na plánování připravíte read only agenta se silným frontier modelem, na běžnou rutinu vyberete model, který je zdarma a na běžné věci je prostě "good enough" a na psaní kódu zvolíte zase jiný silnější model.

OpenCode session s kontextem, tokeny a MCP servery

Co je na Opencode dobré

  • K dispozici je celá řada modelů, které jsou zdarma. Někdy je v tom háček (např. že model používá vaše data k trénování, takže si musíte dávat pozor, co jim posíláte), ale byl jsem překvapen, jak slušné modely jsou v Opencode zadara k dispozici.
  • Když se použije skill, vidím v konverzačním okně jeho přesné znění – pokud používáte skilly a máte jich hodně, může se vám stávat, že už neznáte jejich přesné znění – takhle víte přesně, jaká instrukce se modelu předává.
  • Opencode má, jak už jsem zmínil, postranní panely i v terminálu – můžete přepínat sessions, sledovat stav MCP, máte informace o kontextu (tokenech, spotřebě kontexového okna, útratě) hezky na očích. Díky tomu je pro mě výrazně přehlednější, než jiné CLI.
  • Pravděpodobně je to jen můj osobní dojem, ale práce v monospace fontu mě svým způsobem uklidňuje, vyvolává to ve mě pocit pořádku, řádu, systému.

Co je na Opencode horší

  • Levné modely sem tam spadnou a nedokončí práci. Nestává se to často, ale sem tam jo. Není to nic hrozného, když jsou modely zdarma, odpustíte jim to…
  • Free modely nefungují donekonečna, když je používáte intenzivně, po čase dostanete na pár hodin stopku a musíte přejít na placené.
  • Používání frontier modelů stojí randál. Na review kolečku, které se skládá ze čtyř subagentů, není problém propálit 3 USD na středně velkém code review. Pokud nechcete prodat ledvinu, je třeba používat alternativní modely + co nejvíc těch, co jsou zrovna zdarma. Mají totiž překvapivě dobré výsledky i na relativně sloužtých úkolech. Akorát teda bycha na bezpečnost…
  • Musíte trochu ladit. Je to svousečná zbraň – skoro vše se dá přizpůsobovat a nastavovat, ale někdy to prostě trvá.
  • Pokud používáte více zařízení, budete mít více práce s nastavováním – například nastavení agentů si prostě musíte přenést ručně.

Shrnutí

Sečteno podtrženo, je to trochu dobrodružství. Aby vás práce s Opencode bavila, musíte mít chuť trochu experimentovat. Pokud jste hračičkové, tak jako já, tak bacha, je to docela návykové.

Přiznám se, že k Opencode mě přivedla situace, kdy jsem v Cursoru vypotřeboval své 200 USD předplatné a zařekl jsem se, že už do toho nedám ani korunu. Na Opencode jsem vydržel pracovat cca 10 dní, ale relativně brzy jsem zjistil, že bez nějakého fakt silného frontier modelu se prostě neobjedu, takže jsem si pořádil předplatné ChatGPT, které jako jední jde na Opencode napojit (tzn. ne přes API, ale jako předplatné) a jejich Astra mi udržela kvalitu výstupů, na které jsem zvyklý.

Když se mi předplatné Cursoru obnovilo, srabsky jsem naskočil zpátky. Šikovné UI, přehlednější nabídka aktivních sessions setříděná podle projektů a další malé vychystávky, jako commit & push na tlačítko, mě prostě z terminálu dotáhly zpět. Opencode vnímám jako super alternativu, moc rád jsem si to vyzkoušel, ale asi jsem příliš pohodnlý, abych to adoptoval jako své primární pracovní rozhraní.

p.s. v rámci experimentování jsem jedno odpoledne strávil s Pi, což je opravdu minimalistický terminálový harness, který je strašně sympatický tím, že do kontextu nepřidává moc balastu. Někdy je to k užitku, jindy na škodu. Kdybych byl víc od fochu, určitě bych si ho zamiloval, ale jako laik bych se s ním asi dost natrápil…