Core Features of OpenWork: A Free, Open-Source Alternative to Claude Cowork
OpenWork is a cross-platform desktop application that lets individuals and teams share AI-driven workflows through a local-first, cloud-ready architecture with universal agent integration via MCP.
OpenWork gives users complete control over their AI workflows without vendor lock-in. This article breaks down the core features of different-ai/openwork based on its actual source code implementation, explaining how its three-layer architecture delivers a seamless, agent-friendly experience across macOS, Windows, and Linux.
Desktop Client: Native, Local-First Workflow Engine
The OpenWork Desktop Client provides the primary interface for creating, running, and managing AI workflows. Built with Electron and Vite, it runs completely offline by default while maintaining the flexibility to connect to cloud services when needed.
Key Implementation Details
- Electron foundation: Entry points and packaging configuration live in
apps/desktop/electron-builder.yml, which defines platform targets, signing settings, and build artifacts - UI monorepo structure: Reusable components are centralized in
packages/ui, such aspackages/ui/src/react/download-card.tsx(a Tailwind + shadcn/ui component demonstrating the design system) - Auto-updater integration: The client tracks update state through a Zustand store in
apps/app/src/react-app/domains/settings/state/electron-updater-state.ts, which mirrors Electron's native auto-updater events
The desktop app stores workflow state in a local SQLite/JSON database, enabling full offline operation. When a user authenticates, the client transparently switches to remote Den APIs—allowing identical workflows to run locally or in the cloud without code changes.
OpenWork Den: Centralized Control Plane
The OpenWork Den serves as the administrative backbone for teams and organizations. It stores organizational structure, team configurations, model provider settings, and publishes the skills/plugins available to users.
What the Den Manages
- Organization-wide policies and role-based access control
- Model provider quotas and usage tracking
- Desktop policy enforcement (e.g., permitted plugins, update requirements)
- Skill and plugin distribution
The Den's implementation spans apps/desktop and the enterprise packages (@openwork-ee/*). Local development setup is handled by scripts/dev-local.mjs, which orchestrates a MySQL container, API server, and web UI for testing.
MCP & Skills Engine: Universal Agent Integration
OpenWork's most distinctive feature is its Model-Control-Plane (MCP), a standardized interface that lets any compatible AI agent discover and invoke OpenWork capabilities. Rather than building custom integrations for each agent, OpenWork exposes two generic tools that work across Claude Code, Codex, Cursor, OpenCode, and others.
The Two Core Tools
| Tool | Purpose |
|---|---|
search_capabilities |
Query available skills by name or description |
execute_capability |
Invoke a specific skill with parameters |
Adding OpenWork to Any MCP-Compatible Agent
Integration requires only a JSON configuration snippet. Add this to opencode.json:
{
"mcp": {
"openwork": {
"type": "remote",
"enabled": true,
"url": "https://api.openworklabs.com/mcp/agent",
"oauth": {}
}
}
}
Once configured, agents can use natural language to trigger workflows:
# Find PDF processing capabilities
search_capabilities "pdf split merge"
# Execute the found capability
execute_capability "pdf-split" --input ./report.pdf --pages "1-3"
Skill definitions are distributed through package directories like packages/email/src/templates/, while plugins extend the platform with advanced features such as browser automation, scheduling, and custom integrations.
Local Development & Rapid Testing
OpenWork prioritizes developer experience with streamlined local setup. The dev:worktree script creates isolated testing environments:
OPENWORK_DEV_PROFILE=auto OPENWORK_ELECTRON_USE_MOCK_KEYCHAIN=1 pnpm dev:worktree
This command:
- Auto-selects an available Chrome DevTools Protocol port
- Enables a mock keychain for credential testing
- Spins up a sandboxed profile without affecting production data
The Den can be started locally via scripts/dev-local.mjs, which provisions the full backend stack for end-to-end testing.
Enterprise-Grade Governance
For organizational deployments, the Den provides sophisticated controls implemented across @openwork-ee/* packages:
- Model provider management: Enforce approved vendors, rate limits, and spending quotas
- Skill access policies: Role-based permissions determining which teams can use specific capabilities
- Desktop compliance: Mandatory update policies, approved plugin whitelists, and security settings
- Audit logging: Centralized visibility into workflow execution and agent interactions
These controls are exposed through the Den REST API and automatically enforced by the desktop client when signed in.
Summary
OpenWork combines three architectural layers into a unified AI workflow platform:
- Desktop Client — Cross-platform Electron app with local-first storage and seamless cloud sync
- OpenWork Den — Centralized server for teams, policies, and skill distribution with MCP endpoint
- MCP & Skills Engine — Universal agent interface enabling any compatible AI to discover and execute capabilities
The platform's composable design allows skills and plugins to be added before UI components exist, making it highly extensible through the OpenCode ecosystem.
Frequently Asked Questions
What makes OpenWork different from Claude Cowork?
OpenWork is fully open-source and self-hostable, giving users complete control over their data and workflows. While Claude Cowork is a proprietary service, OpenWork's local-first architecture lets teams run entirely offline with optional cloud connectivity through the Den.
Which AI agents work with OpenWork's MCP?
Any agent implementing the Model-Control-Plane protocol can integrate, including Claude Code, GitHub Copilot/Codex, Cursor, OpenCode, and other MCP-compatible tools. The integration requires only a JSON configuration file—no custom code.
Can OpenWork run without internet access?
Yes. The desktop client operates fully offline using local SQLite/JSON storage for workflows and state. Internet connectivity is only required when explicitly connecting to the Den for team features or cloud execution.
How do I add custom skills to OpenWork?
Skills can be developed as OpenCode-compatible packages and published through the Den. Because OpenWork is built on OpenCode, capabilities can be added at the API level before any UI exists, then surfaced through the desktop client once ready.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →