OpenWork
OpenWork je open-source desktopová a serverová vrstva pro práci s AI coding agenty, kterou projekt popisuje jako alternativu ke Claude Cowork nebo Codexu pro týmové použití. Je postavený nad OpenCode a kombinuje lokální běh, připojení na vzdálené workery a workflow vhodnější pro sdílení v týmu.
Co projekt řeší
README projektu staví OpenWork na několika principech:
- Local-first, cloud-ready — aplikace se spouští lokálně a vzdálené sdílení se zapíná až ve chvíli, kdy je potřeba
- Composable — OpenWork lze použít jako desktop aplikaci, server nebo přes konektory pro WhatsApp, Slack a Telegram
- Ejectable — protože je postavený nad OpenCode, lze použít i capability, které ještě nemají vlastní GUI
- Sharing is caring — výchozí scénář je solo provoz na
localhost, sdílení je vědomý krok navíc
Z praktického pohledu jde o vrstvu, která má OpenCode posunout z čistě vývojářského CLI/TUI do podoby použitelnější pro opakovatelné agentické workflow a týmovou spolupráci.
Co je součástí
Podle README projekt obsahuje hlavně tyto části:
- Host mode — spuštění OpenCode lokálně na vlastním počítači
- Client mode — připojení k existujícímu OpenCode serveru přes URL
- Sessions — vytváření a přepínání session a posílání promptů
- Live streaming — realtime aktualizace přes SSE endpoint
- Execution plan — zobrazení todo kroků z OpenCode jako timeline
- Permissions — zpracování požadavků na oprávnění typu allow once / always / deny
- Templates — ukládání a opakované spouštění běžných workflow
- Debug exports — export runtime debug reportu a developer logů
- Skills manager — správa nainstalovaných skillů ve složce
.opencode/skills
Režimy provozu a architektura
OpenWork umí běžet lokálně i proti vzdálenému workeru.
Host mode
V host režimu spustí lokální stack nad vybraným projektem a UI se na něj připojí. Výchozí runtime používá komponentu openwork z balíku openwork-orchestrator, která orchestruje opencode, openwork-server a volitelně i opencode-router.
Fallback režim direct místo toho spouští přímo:
opencode serve --hostname 127.0.0.1 --port <free-port>
Client mode
V client režimu se desktop aplikace nepokouší nic hostovat lokálně a jen se připojí k již existujícímu OpenCode serveru podle URL. To dává smysl ve chvíli, kdy agent běží jinde a desktop funguje jen jako klientské rozhraní.
UI a komunikace
README uvádí, že UI používá @opencode-ai/sdk/v2/client. Prakticky to znamená připojení k serveru, práci se session, odesílání promptů, odběr SSE událostí a čtení todo položek nebo permission requestů.
Instalace a spuštění
Desktop aplikace
Desktop aplikaci lze stáhnout z openworklabs.com/download nebo z GitHub Releases. README uvádí přímé buildy pro macOS a Linux. Windows je v době psaní řešený přes placený support plán na openworklabs.com.
README také zmiňuje hostované OpenWork Cloud workery, které se spouštějí z webové aplikace po checkoutu a potom se připojí z desktopu přes Add a worker → Connect remote.
Orchestrator bez GUI
Pokud není potřeba desktopové UI, existuje samostatný CLI host:
npm install -g openwork-orchestrator openwork start --workspace /path/to/workspace --approval auto
Tahle varianta je vhodná pro provoz OpenCode + OpenWork serveru bez desktopové aplikace.
Spuštění ze zdrojáků
Pro lokální vývoj README uvádí požadavky na Node.js, pnpm, Rust toolchain, Tauri CLI a nainstalovaný opencode v PATH. Pro desktopový vývoj je navíc potřeba Bun 1.3.9+.
Základní spuštění ze zdrojového checkoutu vypadá takto:
pnpm install
pnpm dev
Pro samotné webové UI bez desktop shellu je v README uvedeno:
pnpm dev:ui
Technické poznámky
- OpenWork spravuje OpenCode pluginy přes soubor
opencode.json— buď v projektu, nebo v globální konfiguraci uživatele - V host režimu se služba standardně váže na
127.0.0.1 - README uvádí, že OpenWork ve výchozím stavu skrývá model reasoning a citlivá metadata nástrojů
- Na Linuxu může desktop narážet na problémy s WebKitGTK; README pro Wayland/Hyprland uvádí tyto workaroundy:
WEBKIT_DISABLE_DMABUF_RENDERER=1 openwork WEBKIT_DISABLE_COMPOSITING_MODE=1 openwork
Kdy dává OpenWork smysl
OpenWork dává smysl hlavně tam, kde samotné CLI OpenCode nestačí a je potřeba nad ním přidat přívětivější týmové rozhraní:
- když je potřeba lokální desktop nad OpenCode bez stavění vlastního klienta
- když je potřeba vidět timeline kroků, permission requesty a debug exporty na jednom místě
- když je potřeba přepínat mezi lokálním během a vzdáleným workerem
- když se ukládají opakovatelná workflow jako šablony
- když je cílem rozšířit OpenCode o UI a správu skillů bez opuštění jeho plugin modelu