different-ai / openwork
An open-source alternative to Claude Cowork built for teams, powered by opencode
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing different-ai/openwork in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler view> OpenWork is the open source alternative to Claude Cowork/Codex (desktop app). Core Philosophy • Local-first, cloud-ready: OpenWork runs on your machine in one click. Send a message instantly. • Composable: desktop app, WhatsApp/Slack/Telegram connector, or server. Use what fits, no lock-in. • Ejectable: OpenWork is powered by OpenCode, so everything OpenCode can do works in OpenWork, even without a UI yet. • Sharing is caring: start solo, then share. One CLI or desktop command spins up an instantly shareable instance. OpenWork is designed around the idea that you can easily ship your agentic workflows as a repeatable, productized process. Alternate UIs • **OpenWork Orchestrator (CLI host)**: run OpenCode + OpenWork server without the desktop UI. • install: • run: • docs: apps/orchestrator/README.md Quick start Download the correct version in here, in the latest 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 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 folders • install from OpenPackage ( ) • import a local skill folder into Skill Manager Works on local computer or servers Quick Start Requirements • Node.js + • Rust toolchain (for Tauri): install via • Tauri CLI: • OpenCode CLI installed and available on PATH: Local Dev Prerequisites (Desktop) Before running , ensure these are installed and active in your shell: • Node + pnpm (repo uses ) • **Bun 1.3.9+** ( ) • Rust toolchain (for Tauri), with Cargo from current stable (supports v4) • Xcode Command Line Tools (macOS) • On Linux, WebKitGTK 4.1 development packages so can resolve and One-minute sanity check Run from repo root: Install OpenWork now lives in (UI) and (desktop shell). Run (Desktop) now enables automatically, so desktop dev uses an isolated OpenCode state instead of your personal global config/auth/data. Run (Web UI only) All repo entrypoints now opt into the same dev-mode isolation so local testing uses the OpenWork-managed OpenCode state consistently. Arch Users: Architecture (high-level) • In **Host mode**, OpenWork runs a local host stack and connects the UI to it. • Default runtime: (installed from ), which orchestrates , , and optionally . • Fallback runtime: , where the desktop app spawns 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. • The UI uses to: • connect to the server • list/create sessions • send prompts • subscribe to SSE events(Server-Sent Events are used to stream real-time updates from the server to the UI.) • read todos and permission requests Folder Picker The folder picker uses the Tauri dialog plugin. Capability permissions are defined in: • OpenPackage Notes If is not installed globally, OpenWork falls back to: OpenCode Plugins Plugins are the **native** way to extend OpenCode. OpenWork now manages them from the Skills tab by reading and writing . • **Project scope**: • **Global scope**: (or ) You can still edit manually; OpenWork uses the same format as the OpenCode CLI: Useful Commands Troubleshooting Linux / Wayland (Hyprland) If OpenWork crashes on launch with WebKitGTK errors like , disable dmabuf or compositing before launch. Try one of the following environment flags. Security Notes • OpenWork hides model reasoning and sensitive tool metadata by default. • Host mode binds to by default. Contributing • Review plus , , , and to understand the product goals before making changes. • Ensure Node.js, , the Rust toolchain, and are installed before working inside the repo. • Run once per checkout, then verify your change with plus (or the targeted subset of scripts) before opening a PR. • Use when opening PRs and include exact commands, outcomes, manual verification steps, and evidence. • If CI fails, classify failures in the PR body as either code-related regressions or external/environment/auth blockers. • Add new PRDs to following the conventions described in . Community docs: • • • • First contribution checklist: • [ ] Run and baseline verification commands. • [ ] Confirm your change has a clear issue link and scope. • [ ] Add/update tests for behavioral changes. • [ ] Include commands run and outcomes in your PR. • [ ] Add screenshots/video for user-facing flow changes. For Teams & Businesses Interested in using OpenWork in your organization? We'd love to hear from you — reach out at ben@openworklabs.com to chat about your use case. License MIT — see .