OpenCode: CLI agent a vlastní Web UI

Potřeboval jsem mít AI kódovacího agenta, kterého spustím v terminálu, v IDE, případně přes webové UI, a přitom si zachovám kontrolu nad tím, co běží lokálně a co se tahá z internetu. V tomhle mi dává smysl OpenCode jako privacy-first nástroj s client-server architekturou. https://opencode.ai

OpenCode beru jako open-source AI kódovacího agenta pro terminál, IDE nebo desktop, který mi pomáhá se psaním kódu, laděním a správou projektů. Podle projektu podporuje víc než 75 LLM providerů (Claude, GPT, Gemini i lokální modely) a je hodně rozšířený (uvádí 80 000+ stars a 1,5M měsíčních uživatelů). https://opencode.ai

  • CLI/TUI jako primární rozhraní: nejčastěji běžím opencode v terminálu a UI je součást binárky (žádné externí CDN UI). https://github.com/opencode-ai/opencode
  • LSP integrace: mám code intelligence přes automatickou integraci LSP. https://opencode.ai
  • Multi-session: používám paralelní agenty a sdílení odkazů na sessiony. https://opencode.ai
  • Nástroje pro práci s repem: glob, grep, bash execution, editování souborů a MCP pro integraci externích toolů. https://github.com/opencode-ai/opencode
  • Privacy-first + client-server: server běží lokálně a myšlenka je, že kód se nikam neukládá; TUI je jen jeden z klientů. https://yuv.ai/blog/opencode

OpenCode je podle repa napsaný v Go a je modulárně rozdělený (např. cmd jako CLI s Cobra, internal/app core služby, internal/llm providery, internal/tui Bubble Tea UI, internal/db SQLite, internal/lsp atd.). https://github.com/opencode-ai/opencode

Server umím spouštět samostatně (opencode serve) a používám ho jako lokální backend s OpenAPI endpointem pro programatické ovládání; TUI beru jako klienta nad stejným backendem. https://opencode.ai/docs/server/

Z praktických „agent„ vlastností si všímám i auto-compact pro dlouhé konverzace, permission systému a git-powered snapshots pro změny. https://www.linkedin.com/posts/milind-gaharwar_ai-awesome-artificialintelligence-activity-7357393767449964546-UHqA

Poznámka, kterou beru jako riziko pro dlouhodobé používání: původní repo je archivované a projekt má pokračovat jako Crush. https://github.com/opencode-ai/opencode

Instalaci jsem bral jako rychlý bootstrap (curl skript / brew / go install) a konfiguraci řeším přes ~/.opencode.json (API klíče, modely). https://github.com/opencode-ai/opencode

Použil jsem instalační skript:

curl -fsSL https://opencode.ai/install | bash

Napojení na providera jsem dělal interaktivně: spustím opencode, zadám /connect a vyberu provider. https://jecas.cz/opencode

Když jsem chtěl webové rozhraní, narazil jsem na to, že oficiální opencode web je hybrid: lokální backend, ale vzdálený frontend.

  • Backend lokálně: opencode web nebo opencode serve spustí HTTP server na localhost (API, sessions, filesystem nástroje). https://opencode.ai/docs/cli/
  • Backend je open-source: Go/Rust/CLI část je v repu. https://github.com/anomalyco/opencode
  • Frontend vzdáleně: prohlížeč načítá HTML/JS/CSS bundle z CDN (např. desktop.dev.opencode.ai), ne z lokálního disku. https://github.com/sst/opencode/issues/5237
  • Zdrojáky oficiálního frontendu nejsou veřejně v anomalyco/opencode jako buildnutelný frontend; prakticky to znamená, že si ho sám nezkompiluju a nemám verzi pod kontrolou. https://advisories.gitlab.com/pkg/npm/opencode-ai/CVE-2026-22813/
  • Verze UI je řízená jejich deployem, ne verzí CLI na mém PC; downgrade CLI proto často nevyřeší bug ve Web UI.
  • Když vydají rozbitý web build (příklad zmiňovaný jako Maximum call stack size exceeded), problém vidí všichni i po downgradu a často nezbývá než čekat na fix nebo web UI nepoužívat. https://github.com/chris-tse/opencode-web
  • OPENCODE_DISABLE_AUTOUPDATE=1 mi zastaví auto-update CLI, ale neovlivní fetch frontendu z CDN.

Když jsem se kvůli rozbitému oficiálnímu web UI potřeboval od CDN odpojit, dávalo mi smysl postavit UI nad vlastním lokálním backendem (opencode serve) a UI hostovat lokálně.

OpenChamber beru jako desktop + web/PWA klienta pro OpenCode. Podstatné pro mě je, že běží komplet lokálně, frontend je open-source (React/TS) a komunikuje s mým opencode serve backendem bez závislosti na oficiálním CDN. https://www.npmjs.com/package/@openchamber/web
Projekt a releasy: https://github.com/btriapitsyn/openchamber / https://github.com/btriapitsyn/openchamber/releases

Tohle je alternativní web UI postavené na React + Vite + Bun/Node. Použití chápu tak, že spustím opencode serve jako backend a v jejich repu udělám bun install + bun dev; UI mi poběží na http://localhost:5173 proti lokálnímu API. https://github.com/chris-tse/opencode-web
Poznámka/kontext, kde jsem na to narazil: https://jecas.cz/opencode

Jako stabilní základ beru opencode serve (nebo opencode web, pokud mi jde jen o lokální server). https://opencode.ai/docs/server/

OpenChamber jsem zkoušel instalovat takhle:

curl -fsSL https://raw.githubusercontent.com/btriapitsyn/openchamber/main/scripts/install.sh | bash

Instalátor mi hlásil, že potřebuje Node.js 20+.

Node.js jsem doinstaloval přes nvm takhle:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install 20

Abych si to udržel použitelné mezi shelly, beru nvm takhle (poznámka: tohle je moje provozní rutina; když se chová jinak, beru to jako závislé na shell initu):

  • Verzi Node kontroluju přes node -v a aktivní nvm přes nvm --version.
  • Konkrétní Node v aktuálním shellu přepínám přes nvm use 20 (nvm je „per-shell“, takže v novém terminálu často musím mít nvm správně načtené a případně znovu použít nvm use ...).
  • Pokud chci výchozí verzi, kterou budu typicky používat, dávám nvm alias default 20 (a pak očekávám, že nový shell tuhle volbu převezme, pokud je nvm načtené).

OpenChamber mi stačilo spustit příkazem openchamber. Defaultně se mi otevřel na portu 3000 a připojil se k běžícímu opencode; opencode jsem musel mít předtím spuštěný.

Pro rychlou a deterministickou práci mi nejlíp vychází TUI/IDE integrace (UI je součást binárky, žádné CDN). Když potřebuju web, beru opencode serve jako lokální backend a volím self-hosted UI (OpenChamber nebo chris-tse/opencode-web), protože u oficiálního opencode web nemám pod kontrolou verzi frontendu taháného z CDN. https://opencode.ai/docs/web/

  • ai/platformy/opencode/uvod.txt
  • Poslední úprava: 2026/03/12 13:40
  • autor: Petr Nosek