OpenWork helps you run your agents, skills, and MCP. It's an open-source alternative to Claude Cowork/Codex (desktop app).
OpenWork is designed around the idea that you can easily ship your agentic workflows as a repeatable, productized process.
curl -fsSL https://raw.githubusercontent.com/different-ai/owpenbot/dev/install.sh | bashowpenbot setup, then owpenbot whatsapp login, then owpenbot startnpm install -g openwrk.
Download the dmg here https://github.com/different-ai/openwork/releases (or install from source below)
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:
/event subscription for realtime updates..opencode/skills foldersopkg install ...).opencode/skills/<skill-name>pnpmcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shcargo install tauri-cliopencodepnpm install
OpenWork now lives in packages/app (UI) and packages/desktop (desktop shell).
pnpm dev
pnpm dev:ui
yay -s opencode # Releases version
In Host mode, OpenWork spawns:
opencode serve --hostname 127.0.0.1 --port <free-port>The UI uses @opencode-ai/sdk/v2/client to:
The folder picker uses the Tauri dialog plugin. Capability permissions are defined in:
packages/desktop/src-tauri/capabilities/default.jsonIf opkg is not installed globally, OpenWork falls back to:
pnpm dlx opkg install <package>
Plugins are the native way to extend OpenCode. OpenWork now manages them from the Skills tab by
reading and writing opencode.json.
<workspace>/opencode.json~/.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:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-wakatime"]
}
pnpm dev
pnpm dev:ui
pnpm typecheck
pnpm build
pnpm build:ui
pnpm test:e2e
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.
WEBKIT_DISABLE_DMABUF_RENDERER=1 openwork
WEBKIT_DISABLE_COMPOSITING_MODE=1 openwork
127.0.0.1 by default.AGENTS.md plus VISION.md, PRINCIPLES.md, PRODUCT.md, and ARCHITECTURE.md to understand the product goals before making changes.pnpm, the Rust toolchain, and opencode are installed before working inside the repo.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.packages/app/pr/<name>.md following the .opencode/skills/prd-conventions/SKILL.md conventions described in AGENTS.md.Interested in using OpenWork in your organization? We'd love to hear from you — reach out at benjamin.shafii@gmail.com to chat about your use case.
MIT — see LICENSE.