OpenWork: Open‑Source Alternative to Claude Cowork with Full‑Feature Windows Client

OpenWork is an open‑source, locally‑first replacement for Claude Cowork that packages AI agents into a desktop app usable by non‑technical teammates, offering multi‑threaded execution, automation, a reusable Skills system, native Slack/Telegram integration, and a clear comparison against Claude Cowork and Codex.

Old Zhang's AI Learning
Old Zhang's AI Learning
Old Zhang's AI Learning
OpenWork: Open‑Source Alternative to Claude Cowork with Full‑Feature Windows Client

Overview

OpenWork is an open‑source alternative to Claude Cowork designed for team collaboration. It wraps existing Agent configurations (Claude Code, Codex, OpenCode, or custom stacks) into a desktop application that non‑technical colleagues can use without needing to run scripts.

Core Philosophy

Local‑first, cloud optional : Runs on the local machine with instant response, no cloud dependency.

Composable : Desktop app, WhatsApp/Slack/Telegram connectors, or server mode can be selected independently.

Pop‑out : All capabilities of OpenCode are available in OpenWork.

Share‑first : A single command can be shared with the whole team.

Key Features

Multi‑threaded parallel work : Multiple independent task threads can run simultaneously, switching between browser tasks and local file operations.

Automated tasks : Any prompt can be scheduled or trigger‑based (e.g., daily ops report, weekly competitor scan).

Skills system : Complex workflows can be packaged as reusable Skills that teammates execute with one click.

Slack native integration : @Agent in Slack channels provides real‑time progress updates.

Architecture

OpenWork provides three run modes:

Desktop Host : Desktop app launches local OpenCode/OpenWork (personal, one‑click start).

CLI Host : Command‑line start via openwrk (server deployment, headless operation).

Remote Client : App connects to an existing OpenWork server (team sharing, multi‑user collaboration).

Core components:

OpenWork App : Desktop/mobile/Web client UI.

OpenWork Server : API and control layer.

OpenWork Worker : Execution environment for a specific workspace.

OpenCode Router : Slack/Telegram message bridge with directory routing.

Installation & Quick Start

Method 1: Desktop app (recommended)

macOS – download DMG from GitHub Releases.

Windows – Alpha version available.

Linux – Alpha version available.

After installation, launch the app; no registration is required and the local model is ready to use.

Method 2: CLI mode (server deployment)

# Install CLI tool
npm install -g openwrk

# Start OpenWork
openwrk start --workspace /path/to/workspace --approval auto

# Check status
openwrk status --openwork-url http://127.0.0.1:8787 --opencode-url http://127.0.0.1:4096

Method 3: Build from source

# Prerequisites: Node.js, pnpm, Rust toolchain, Tauri CLI
pnpm install
pnpm dev          # start desktop version
pnpm dev:ui      # start only the web UI

Worker Isolation for Secure Multi‑User Collaboration

Each Worker is isolated, allowing separate workspaces such as agency-core, client-a, and client-b. Operations are limited to the selected Worker, preventing cross‑domain data leakage.

Select the target Worker before starting a job.

Only Skills and automated tasks belonging to that Worker are available.

Cross‑Worker tasks require explicit copying; automatic merges are not performed.

Benefits include more deterministic prompts, clear audit trails, safer data boundaries, and easier onboarding for non‑technical staff.

Automation: One‑time Setup, Lifetime Execution

OpenWork follows the principle “one task → one business result.” Jobs are created in the Automations (Beta) UI, e.g., daily-ops-summary, weekly-team-brief, competitor-scan-core.

Open the Automations UI.

Create a Job for each business outcome (e.g., daily-ops-summary for daily ops summary).

Key guidelines:

Each Job does a single thing; avoid over‑loading prompts.

Name Jobs by business outcome, not implementation details.

Ensure a Job failure does not block other Jobs.

Message Routing: Slack/Telegram Integration

OpenCode Router bridges messages from Slack or Telegram to Workers.

# Install router
npm install -g opencode-router
opencode-router start

Configuration requires two environment variables: OPENCODE_URL: OpenCode service address. OPENCODE_DIRECTORY: Working directory.

Common commands:

# Check status
opencode-router status

# List Telegram bindings
opencode-router telegram list

# List Slack bindings
opencode-router slack list

# Set a binding
opencode-router bindings set \
  --channel telegram \
  --identity default \
  --peer <chatId> \
  --dir /path/to/workdir

Routing logic maps (channel, identity, peer) → directory, allowing flexible message‑to‑workspace mapping.

Comparison with Similar Products

Open source: ✅ MIT (OpenWork) vs ❌ Closed (Claude Cowork, Codex).

Local‑first: ✅ (OpenWork) vs ❌ Cloud (Claude Cowork, Codex).

Team sharing: ✅ Worker isolation (OpenWork) vs ❌ (Claude Cowork) vs Limited (Codex).

Automated tasks: ✅ Timed/triggered (OpenWork) vs Limited (Claude Cowork) vs ❌ (Codex).

Slack/Telegram support: ✅ Native (OpenWork) vs ❌ (Claude Cowork, Codex).

Custom Skills: ✅ (OpenWork) vs ❌ (Claude Cowork, Codex).

Non‑technical usability: ✅ (OpenWork) vs ❌ (Claude Cowork, Codex).

Price: Free (OpenWork) vs Paid (Claude Cowork, Codex).

Demonstration Images

OpenWork demo
OpenWork demo
Skill Manager
Skill Manager
Works on local computer or servers
Works on local computer or servers
AutomationAI agentsteam collaborationopen-sourceClaude CoworkOpenWork
Old Zhang's AI Learning
Written by

Old Zhang's AI Learning

AI practitioner specializing in large-model evaluation and on-premise deployment, agents, AI programming, Vibe Coding, general AI, and broader tech trends, with daily original technical articles.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.