# openwork **Repository Path**: qianglegend/openwork ## Basic Information - **Project Name**: openwork - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-26 - **Last Updated**: 2026-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![Discord](https://img.shields.io/badge/discord-join-5865F2?logo=discord&logoColor=white)](https://discord.gg/VEhNQXxYMB) # OpenWork OpenWork is an **extensible, open-source “Claude Work” style system for knowledge workers**. It’s built on top of opencode and lets you turn your opencode workflows into usable experiences for non-technical users. Screenshot 2026-01-13 at 7 19 02 PM Openwork is desgined around the idea that you can easily ship your It’s a native desktop app that runs **OpenCode** under the hood, but presents it as a clean, guided workflow: - pick a workspace - start a run - watch progress + plan updates - approve permissions when needed - reuse what works (commands + skills) The goal: make “agentic work” feel like a product, not a terminal. ## Alternate UIs - **Owpenbot (WhatsApp bot)**: a lightweight WhatsApp bridge for a running OpenCode server. Install with: - `curl -fsSL https://raw.githubusercontent.com/different-ai/openwork/dev/packages/owpenbot/install.sh | bash` - run `owpenbot setup`, then `owpenbot whatsapp login`, then `owpenbot start` - full setup: [packages/owpenbot/README.md](./packages/owpenbot/README.md) ## Quick start Download the dmg here https://github.com/different-ai/openwork/releases (or install from source below) ## Why Current CLI and GUIs for opencode are anchored around developers. That means a focus on file diffs, tool names, and hard to extend capabilities without relying on exposing some form of cli. OpenWork is designed to be: - **Extensible**: skill and opencode plugins are installable modules. - **Auditable**: show what happened, when, and why. - **Permissioned**: access to privileged flows. - **Local/Remote**: OpenWork works locally as well as can connect to remote servers. ## What’s Included - **Host mode**: runs opencode locally on your computer - **Client mode**: connect to an existing OpenCode server by URL. - **Sessions**: create/select sessions and send prompts. - **Live streaming**: SSE `/event` subscription for realtime updates. - **Execution plan**: render OpenCode todos as a timeline. - **Permissions**: surface permission requests and reply (allow once / always / deny). - **Templates**: save and re-run common workflows (stored locally). - **Skills manager**: - list installed `.opencode/skills` folders - install from OpenPackage (`opkg install ...`) - import a local skill folder into `.opencode/skills/` ## Skill Manager image ## Works on local computer or servers Screenshot 2026-01-13 at 7 05 16 PM ## Quick Start ### Requirements - Node.js + `pnpm` - Rust toolchain (for Tauri): install via `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh` - Tauri CLI: `cargo install tauri-cli` - OpenCode CLI installed and available on PATH: `opencode` ### Install ```bash pnpm install ``` OpenWork now lives in `packages/app` (UI) and `packages/desktop` (desktop shell). ### Run (Desktop) ```bash pnpm dev ``` ### Run (Web UI only) ```bash pnpm dev:ui ``` ### Arch Users: ```bash yay -s opencode # Releases version ``` ## Architecture (high-level) - In **Host mode**, OpenWork spawns: - `opencode serve --hostname 127.0.0.1 --port ` - with your selected project folder as the process working directory. - The UI uses `@opencode-ai/sdk/v2/client` to: - connect to the server - list/create sessions - send prompts - subscribe to SSE events - read todos and permission requests ## Folder Picker The folder picker uses the Tauri dialog plugin. Capability permissions are defined in: - `packages/desktop/src-tauri/capabilities/default.json` ## OpenPackage Notes If `opkg` is not installed globally, OpenWork falls back to: ```bash pnpm dlx opkg install ``` ## OpenCode Plugins Plugins are the **native** way to extend OpenCode. OpenWork now manages them from the Skills tab by reading and writing `opencode.json`. - **Project scope**: `/opencode.json` - **Global scope**: `~/.config/opencode/opencode.json` (or `$XDG_CONFIG_HOME/opencode/opencode.json`) You can still edit `opencode.json` manually; OpenWork uses the same format as the OpenCode CLI: ```json { "$schema": "https://opencode.ai/config.json", "plugin": ["opencode-wakatime"] } ``` ## Useful Commands ```bash pnpm dev pnpm dev:ui pnpm typecheck pnpm build pnpm build:ui pnpm test:e2e ``` ## Troubleshooting ### Linux / Wayland (Hyprland) If OpenWork crashes on launch with WebKitGTK errors like `Failed to create GBM buffer`, disable dmabuf or compositing before launch. Try one of the following environment flags. ```bash WEBKIT_DISABLE_DMABUF_RENDERER=1 openwork ``` ```bash WEBKIT_DISABLE_COMPOSITING_MODE=1 openwork ``` ## Security Notes - OpenWork hides model reasoning and sensitive tool metadata by default. - Host mode binds to `127.0.0.1` by default. ## Contributing - Review `AGENTS.md` and `MOTIVATIONS-PHILOSOPHY.md` to understand the product goals before making changes. - Ensure Node.js, `pnpm`, the Rust toolchain, and `opencode` are installed before working inside the repo. - Run `pnpm install` once per checkout, then verify your change with `pnpm typecheck` plus `pnpm test:e2e` (or the targeted subset of scripts) before opening a PR. - Add new PRDs to `packages/app/pr/.md` following the `.opencode/skills/prd-conventions/SKILL.md` conventions described in `AGENTS.md`. ## License MIT — see `LICENSE`.