An open-source alternative to Claude Cowork built for teams, powered by opencode
npx skills add https://github.com/different-ai/openwork --skill opencode-bridgeInstallez cette compétence avec la CLI et commencez à utiliser le flux de travail SKILL.md dans votre espace de travail.
OpenWork is the open source alternative to Claude Cowork/Codex (desktop app).
OpenWork is designed around the idea that you can easily ship your agentic workflows for your team as a repeatable, productized process.
[!TIP]
Looking for an Enterprise Plan? Speak with our Sales Team todayGet enhanced capabilities including feature prioritization, SSO, SLA support, LTS versions, and more.
npm install -g openwork-orchestratoropenwork start --workspace /path/to/workspace --approval autoDownload the desktop app from openworklabs.com/download, grab the latest GitHub release, or install from source below.
Add a worker -> Connect remote.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 folders.opencode/skills/<skill-name>pnpmcurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shcargo install tauri-cliopencodeBefore running pnpm dev, ensure these are installed and active in your shell:
[email protected])bun --version)rustup stable (supports Cargo.lock v4)pkg-config can resolve webkit2gtk-4.1 and javascriptcoregtk-4.1Run from repo root:
git checkout dev
git pull --ff-only origin dev
pnpm install --frozen-lockfile
which bun
bun --version
pnpm --filter @openwork/desktop exec tauri --version
pnpm install
OpenWork now lives in apps/app (UI) and apps/desktop (desktop shell).
pnpm dev
pnpm dev now enables OPENWORK_DEV_MODE=1 automatically, so desktop dev uses an isolated OpenCode state instead of your personal global config/auth/data.
pnpm dev:ui
All repo dev entrypoints now opt into the same dev-mode isolation so local testing uses the OpenWork-managed OpenCode state consistently.
sudo pacman -S --needed webkit2gtk-4.1
curl -fsSL https://opencode.ai/install | bash -s -- --version "$(node -e "const fs=require('fs'); const parsed=JSON.parse(fs.readFileSync('constants.json','utf8')); process.stdout.write(String(parsed.opencodeVersion||'').trim().replace(/^v/,''));")" --no-modify-path
openwork (installed from openwork-orchestrator), which orchestrates opencode, openwork-server, and optionally opencode-router.direct, where the desktop app spawns opencode serve --hostname 127.0.0.1 --port <free-port> directly.When you select a project folder, OpenWork runs the host stack locally using that folder and connects the desktop UI.
This lets you run agentic workflows, send prompts, and see progress entirely on your machine without a remote server.
@opencode-ai/sdk/v2/client to:
The folder picker uses the Tauri dialog plugin.
Capability permissions are defined in:
apps/desktop/src-tauri/capabilities/default.jsonPlugins 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 you need to report a desktop or session bug, open Settings -> Debug and export both the runtime debug report and developer logs before filing an issue.
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..github/pull_request_template.md when opening PRs and include exact commands, outcomes, manual verification steps, and evidence.apps/app/pr/<name>.md following the .opencode/skills/prd-conventions/SKILL.md conventions described in AGENTS.md.Community docs:
CODE_OF_CONDUCT.mdSECURITY.mdSUPPORT.mdTRIAGE.mdFirst contribution checklist:
pnpm install and baseline verification commands.Translated READMEs: translated_readmes/, available in English, 简体中文, 繁體中文, 日本語.
The App is available in the following languages: English (en), Japanese (ja), Simplified Chinese (zh), Vietnamese (vi), Brazilian Portuguese (pt-BR).
Interested in using OpenWork in your organization? We'd love to hear from you — reach out at [email protected] to chat about your use case.
MIT — see LICENSE.