[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3878":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},3878,"openwork","different-ai\u002Fopenwork","different-ai","An open-source alternative to Claude Cowork (powered by opencode)","https:\u002F\u002Fopenworklabs.com",null,"TypeScript",15969,1583,67,106,0,26,186,912,130,44.6,"Other",false,"dev",true,[],"2026-06-12 02:00:55","> OpenWork is the open source alternative to Claude Cowork\u002FCodex (desktop app).\n\n\n## Core Philosophy\n\n- Local-first, cloud-ready: OpenWork runs on your machine in one click. Send a message instantly.\n- Composable: desktop app, Slack\u002FTelegram connector, or server. Use what fits, no lock-in.\n- Ejectable: OpenWork is powered by OpenCode, so everything OpenCode can do works in OpenWork, even without a UI yet.\n- Sharing is caring: start solo on localhost, then explicitly opt into remote sharing when you need it.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fapp-demo.gif\" alt=\"OpenWork demo\" width=\"800\" \u002F>\n\u003C\u002Fp>\n\nOpenWork is designed around the idea that you can easily ship your agentic workflows for your team as a repeatable, productized process.\n\n> [!TIP]\n> **Looking for an [Enterprise Plan](https:\u002F\u002Fopenworklabs.com\u002Fenterprise)?** [Speak with our Sales Team today](https:\u002F\u002Fcalendar.app.google\u002F86QpCENvhfEzDFLu5)\n>\n> Get enhanced capabilities including feature prioritization, SSO, SLA support, LTS versions, and more.\n\n## Alternate UIs\n- **OpenWork Orchestrator (CLI host)**: run OpenCode + OpenWork server without the desktop UI.\n  - install: `npm install -g openwork-orchestrator`\n  - run: `openwork start --workspace \u002Fpath\u002Fto\u002Fworkspace --approval auto`\n  - docs: [apps\u002Forchestrator\u002FREADME.md](.\u002Fapps\u002Forchestrator\u002FREADME.md)\n\n## Quick start\n\nDownload the desktop app from [openworklabs.com\u002Fdownload](https:\u002F\u002Fopenworklabs.com\u002Fdownload), grab the latest [GitHub release](https:\u002F\u002Fgithub.com\u002Fdifferent-ai\u002Fopenwork\u002Freleases), or install from source below.\n\n- macOS and Linux downloads are available directly.\n- Windows access is currently handled through the paid support plan on [openworklabs.com\u002Fpricing#windows-support](https:\u002F\u002Fopenworklabs.com\u002Fpricing#windows-support).\n- Hosted OpenWork Cloud workers are launched from the web app after checkout, then connected from the desktop app via `Add a worker` -> `Connect remote`.\n\n## Why\n\nCurrent 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.\n\nOpenWork is designed to be:\n\n- **Extensible**: skill and opencode plugins are installable modules.\n- **Auditable**: show what happened, when, and why.\n- **Permissioned**: access to privileged flows.\n- **Local\u002FRemote**: OpenWork works locally as well as can connect to remote servers.\n\n## What’s Included\n\n- **Host mode**: runs opencode locally on your computer\n- **Client mode**: connect to an existing OpenCode server by URL.\n- **Sessions**: create\u002Fselect sessions and send prompts.\n- **Live streaming**: SSE `\u002Fevent` subscription for realtime updates.\n- **Execution plan**: render OpenCode todos as a timeline.\n- **Permissions**: surface permission requests and reply (allow once \u002F always \u002F deny).\n- **Templates**: save and re-run common workflows (stored locally).\n- **Debug exports**: copy or export the runtime debug report and developer log stream from Settings -> Debug when you need to file a bug.\n- **Skills manager**:\n  - list installed `.opencode\u002Fskills` folders\n  - import a local skill folder into `.opencode\u002Fskills\u002F\u003Cskill-name>`\n\n## Skill Manager\n\n\u003Cimg width=\"1292\" height=\"932\" alt=\"image\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fb500c1c6-a218-42ce-8a11-52787f5642b6\" \u002F>\n\n## Works on local computer or servers\n\n\u003Cimg width=\"1292\" height=\"932\" alt=\"Screenshot 2026-01-13 at 7 05 16 PM\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F9c864390-de69-48f2-82c1-93b328dd60c3\" \u002F>\n\n## Quick Start\n\n### Requirements\n\n- Node.js + `pnpm`\n- Rust toolchain (for Tauri): install via `curl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh`\n- Tauri CLI: `cargo install tauri-cli`\n- OpenCode CLI installed and available on PATH: `opencode`\n\n### Local Dev Prerequisites (Desktop)\n\nBefore running `pnpm dev`, ensure these are installed and active in your shell:\n\n- Node + pnpm (repo uses `pnpm@10.27.0`)\n- **Bun 1.3.9+** (`bun --version`)\n- Rust toolchain (for Tauri), with Cargo from current `rustup` stable (supports `Cargo.lock` v4)\n- Xcode Command Line Tools (macOS)\n- On Linux, WebKitGTK 4.1 development packages so `pkg-config` can resolve `webkit2gtk-4.1` and `javascriptcoregtk-4.1`\n\n### One-minute sanity check\n\nRun from repo root:\n\n```bash\ngit checkout dev\ngit pull --ff-only origin dev\npnpm install --frozen-lockfile\n\nwhich bun\nbun --version\npnpm --filter @openwork\u002Fdesktop exec tauri --version\n```\n\n### Install\n\n```bash\npnpm install\n```\n\nOpenWork now lives in `apps\u002Fapp` (UI) and `apps\u002Fdesktop` (desktop shell).\n\n### Run (Desktop)\n\n```bash\npnpm dev\n```\n\n`pnpm dev` now enables `OPENWORK_DEV_MODE=1` automatically, so desktop dev uses an isolated OpenCode state instead of your personal global config\u002Fauth\u002Fdata.\n\n### Run (Web UI only)\n\n```bash\npnpm dev:ui\n```\n\nAll repo `dev` entrypoints now opt into the same dev-mode isolation so local testing uses the OpenWork-managed OpenCode state consistently.\n\n### Arch Users:\n\n```bash\nsudo pacman -S --needed webkit2gtk-4.1\ncurl -fsSL https:\u002F\u002Fopencode.ai\u002Finstall | 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(\u002F^v\u002F,''));\")\" --no-modify-path\n```\n\n## Architecture (high-level)\n\n- In **Host mode**, OpenWork runs a local host stack and connects the UI to it.\n  - Default runtime: `openwork` (installed from `openwork-orchestrator`), which orchestrates `opencode`, `openwork-server`, and optionally `opencode-router`.\n  - Fallback runtime: `direct`, where the desktop app spawns `opencode serve --hostname 127.0.0.1 --port \u003Cfree-port>` directly.\n\nWhen you select a project folder, OpenWork runs the host stack locally using that folder and connects the desktop UI.\nThis lets you run agentic workflows, send prompts, and see progress entirely on your machine without a remote server.\n\n- The UI uses `@opencode-ai\u002Fsdk\u002Fv2\u002Fclient` to:\n  - connect to the server\n  - list\u002Fcreate sessions\n  - send prompts\n  - subscribe to SSE events(Server-Sent Events are used to stream real-time updates from the server to the UI.)\n  - read todos and permission requests\n\n## Folder Picker\n\nThe folder picker uses the Tauri dialog plugin.\nCapability permissions are defined in:\n\n- `apps\u002Fdesktop\u002Fsrc-tauri\u002Fcapabilities\u002Fdefault.json`\n\n## OpenCode Plugins\n\nPlugins are the **native** way to extend OpenCode. OpenWork now manages them from the Skills tab by\nreading and writing `opencode.json`.\n\n- **Project scope**: `\u003Cworkspace>\u002Fopencode.json`\n- **Global scope**: `~\u002F.config\u002Fopencode\u002Fopencode.json` (or `$XDG_CONFIG_HOME\u002Fopencode\u002Fopencode.json`)\n\nYou can still edit `opencode.json` manually; OpenWork uses the same format as the OpenCode CLI:\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"plugin\": [\"opencode-wakatime\"]\n}\n```\n\n## Useful Commands\n\n```bash\npnpm dev\npnpm dev:ui\npnpm typecheck\npnpm build\npnpm build:ui\npnpm test:e2e\n```\n\n## Troubleshooting\n\nIf 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.\n\n### Linux \u002F Wayland (Hyprland)\n\nIf 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.\n\n```bash\nWEBKIT_DISABLE_DMABUF_RENDERER=1 openwork\n```\n\n```bash\nWEBKIT_DISABLE_COMPOSITING_MODE=1 openwork\n```\n\n## Security Notes\n\n- OpenWork hides model reasoning and sensitive tool metadata by default.\n- Host mode binds to `127.0.0.1` by default.\n\n## Contributing\n\n- Review `AGENTS.md` plus `VISION.md`, `PRINCIPLES.md`, `PRODUCT.md`, and `ARCHITECTURE.md` to understand the product goals before making changes.\n- Ensure Node.js, `pnpm`, the Rust toolchain, and `opencode` are installed before working inside the repo.\n- 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.\n- Use `.github\u002Fpull_request_template.md` when opening PRs and include exact commands, outcomes, manual verification steps, and evidence.\n- If CI fails, classify failures in the PR body as either code-related regressions or external\u002Fenvironment\u002Fauth blockers.\n- Add new PRDs to `apps\u002Fapp\u002Fpr\u002F\u003Cname>.md` following the `.opencode\u002Fskills\u002Fprd-conventions\u002FSKILL.md` conventions described in `AGENTS.md`.\n\nCommunity docs:\n\n- `CODE_OF_CONDUCT.md`\n- `SECURITY.md`\n- `SUPPORT.md`\n- `TRIAGE.md`\n\nFirst contribution checklist:\n\n- [ ] Run `pnpm install` and baseline verification commands.\n- [ ] Confirm your change has a clear issue link and scope.\n- [ ] Add\u002Fupdate tests for behavioral changes.\n- [ ] Include commands run and outcomes in your PR.\n- [ ] Add screenshots\u002Fvideo for user-facing flow changes.\n\n## Supported Languages\n\nTranslated READMEs: [`translated_readmes\u002F`](.\u002Ftranslated_readmes\u002FREADME.md), available in English, 简体中文, 繁體中文, 日本語.\n\nThe App is available in the following languages:\n- English (`en`)\n- French (`fr`)\n- Spanish (`es`)\n- Catalan (`ca`)\n- Brazilian Portuguese (`pt-BR`)\n- Japanese (`ja`)\n- Simplified Chinese (`zh`)\n- Thai (`th`)\n- Vietnamese (`vi`)\n- Russian (`ru`)\n\n## For Teams & Businesses\n\nInterested in using OpenWork in your organization? We'd love to hear from you — reach out at [ben@openworklabs.com](mailto:ben@openworklabs.com) to chat about your use case.\n\n## License\n\nMIT — see `LICENSE`.\n","OpenWork 是一个开源的替代 Claude Cowork 的工具，基于 OpenCode 构建。其核心功能包括本地优先、云端就绪的运行模式，支持桌面应用、Slack\u002FTelegram 连接器或服务器等多种组合方式，并且可以无锁地切换使用形式。此外，OpenWork 具有可扩展性，能够安装技能和 OpenCode 插件，提供审计跟踪和权限管理功能，既可以在本地运行也可以连接远程服务器。适用于需要将团队的工作流程产品化并重复使用的场景，特别适合希望在开发过程中保持灵活性和可控性的开发者及团队。",2,"2026-06-11 02:56:51","top_language"]