mrkeyoor.com_
Fri 02 Oct 15:00 UTC
Automationevaluationupdated 25 Aug 2026

openwork review

OpenWork is a desktop workspace and shared capability layer for AI agents. One remote MCP lets Codex, Claude Code, Cursor, OpenCode, and other clients search and run assigned skills, plugins, MCP connections, Google Workspace actions, and Microsoft 365 actions without copying each integration into every client.

+74stars / 7d
Verdict

Our OpenWork install consumed 1,439 packages and 2,055 MB, then tests stopped after 5 seconds because Bun was missing, so source contributors need more than the pnpm quick path implies. The two-tool MCP design is a sensible way to share capabilities across Codex and Claude Code, especially for a small team. Use the hosted service if its sign-in and licensing fit; wait before self-hosting a larger organization until the build and E2E story is cleaner.

We ran it

Lab card: what happened when we ran openworkScreenshot of openwork (openworklabs.com)
Install✓ · 159s1769 packages · 2364 MB
Build✗ · 188s
Tests✗ · 7sran, no count parsed
Repo5690 files~1,022,900 lines of source · 149.9 MB · 42 CI workflows

Answers from our run

Does openwork build from source?

Dependencies installed in 159 seconds (1769 packages), and the build failed. We cloned commit 53f090c into a clean Debian container with 3 CPUs and no project-specific setup.

Do openwork's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Who should not use openwork?

Organizations that require the whole stack under a permissive license: ee/ uses the OpenWork EE License and production beyond five users requires a subscription.

What are the alternatives to openwork?

CompozyOS, n8n, OpenHands. Our OpenWork install consumed 1,439 packages and 2,055 MB, then tests stopped after 5 seconds because Bun was missing, so source contributors need more than the pnpm quick path implies.

Setup2/5Hosted MCP is short; source build and tests did not complete
Docs4/5Clear client commands, licensing, profiles, and headless details
Community4/5Daily development and issue work, with a sizeable active queue
Maturity3/5Usable product and admin plane, with current E2E failures

Discussed on

  1. hnShow HN: OpenWork – An open-source alternative to Claude Cowork231 points

Who it’s for

Teams that want one catalog of agent skills and connected services across several AI clients.
Codex or Claude Code users who prefer their existing agent but need shared organizational capabilities.
Individuals wanting a desktop workspace for repeatable AI workflows on macOS, Windows, or Linux.
Small organizations that can use the OpenWork Den control plane within its free five-user allowance.

Who it’s NOT for

Organizations that require the whole stack under a permissive license: ee/ uses the OpenWork EE License and production beyond five users requires a subscription.
Air-gapped teams expecting the advertised shared MCP to stay local: the documented endpoint is hosted at api.openworklabs.com and opens a browser for organization sign-in.
Source contributors with only Node and pnpm installed: our test run stopped because several workspace packages invoke Bun.
Operators wanting to expose the checked-in headless production world remotely: the README says that world is hard-limited to loopback because its browser session uses production credentials.
Teams unwilling to track a fast-moving pre-1.0 desktop and control plane: current issues include failed critical-path and Daytona E2E runs.

Setup reality

Our pnpm install succeeded in 63 seconds, adding 1,439 packages and using 2,055 MB. The build failed in 23 seconds; its log tail only shows a child process exiting 1 under Node 24.19.0, so it does not identify the failing task. Tests failed in 5 seconds because several packages tried to run bun, which was absent.

Using the hosted MCP is lighter: add one URL, complete browser sign-in, and choose an OpenWork organization. Connected Google Workspace, Microsoft 365, provider, plugin, and private-repository access each add their own credentials or tokens.

Local development uses pnpm profiles, Electron or a headless web world, and temporary owner tokens. Multi-worktree mode can use a mock keychain; production shared-state worlds require an explicit flag and remain loopback-only.

Two MCP tools hide a large capability catalog

OpenWork gives compatible agents one remote MCP endpoint. After sign-in, search_capabilities finds skills, plugins, other MCP connections, and connected services assigned to the user. execute_capability runs the selected item. Codex, Claude Code, OpenCode, Cursor, or another MCP client can therefore share the same catalog instead of receiving a separate set of local configuration files.

That small interface is the project's clearest design decision. A team can change assignments in one control plane without teaching every client a new tool name. The desktop app remains available as a dedicated workspace, but it is optional for someone who wants to stay in an existing coding agent. The README provides exact add commands for Codex and Claude Code plus a JSON block for OpenCode.

The abstraction does not remove trust questions. execute_capability may reach a Google Workspace account, Microsoft 365, an imported plugin, or another MCP server. Administrators decide what is published and assigned, while users need to recognize that a generic execution call can carry very different consequences depending on the matched capability. Search results and approval policy must make that boundary legible.

OpenWork Den is free only within stated limits

The repository has a split license. Everything outside ee/, including the desktop app and core platform, is MIT. OpenWork Den, the organizational control plane under ee/, uses a source-available enterprise license. Production is free for organizations with up to 5 users, evaluation is free for 90 days at any size, and development and testing stay free. Each enterprise release converts to MIT after two years.

Den provisions model access, creates teams, assigns skills and plugins, manages connections, and can restrict desktop versions or local-model access. It can also import Anthropic-compatible plugins and expose supported skills plus remote MCPs through the OpenWork endpoint. Those are the features an organization is most likely to need, so the enterprise boundary is material rather than a minor add-on.

The documented MCP URL is https://api.openworklabs.com/mcp/agent. Adding it opens a browser for sign-in and organization selection. That is convenient for distributed users, but it is not an offline local-only route. Teams with data residency or identity requirements should examine the hosted service before distributing connected capabilities.

What happened when we ran it

Our sandbox installed 1,439 pnpm packages in 63 seconds. They occupied 2,055 MB, about twenty times the 102.3 MB repository checkout. The monorepo contained 3,597 files and roughly 607,333 lines of source at commit 4892929.

The build ran for 23 seconds and exited 1. Its final lines show a child-process status of 1, an empty captured stdout and stderr, and Node.js 24.19.0, followed by an ELIFECYCLE failure. That tail does not name the package or error that triggered the child process, so we cannot assign a cause from the evidence supplied by our run.

Tests failed after 5 seconds for a clearer reason. Packages including codemode, enterprise utilities, and headless-threads attempted bun test; the shell reported bun: not found, and pnpm stopped at the first recursive failure. This does not show an assertion failure. It shows an undeclared system-level expectation in a fresh Debian container where pnpm installation itself succeeded.

Local development carefully separates profiles

The default pnpm dev reuses a shared development profile. pnpm dev:worktree derives a stable profile from the worktree path, chooses free Electron and Vite ports, and defaults to a mock keychain. That last detail avoids a macOS keychain prompt blocking Electron when a brand-new profile first stores an authenticated cookie. Developers can turn the mock off when they specifically need the system keychain.

A headless web world starts Vite and openwork-server, writes its connection record under tmp, and stores agent-facing tokens in a file with mode 0600. The privileged host token stays inside the server process rather than being compiled into the Vite bundle. Allowed browser origins are restricted to the local web app, and replacing the world mints new tokens unless the operator explicitly preserves them.

The production world shares installed state, so every launch requires --allow-shared-state. It refuses remote or public-host settings and binds to loopback because the browser session carries production credentials. That is a good guard. It also means this checked-in launcher is not a ready remote self-hosting recipe.

Active development includes failed E2E runs

OpenWork was pushed on August 25, 2026, five days after release v0.18.35. Its 388 open issues and pull requests include dependency updates, enterprise entitlement work, private GitHub plugin access, and deployment gates. Issue 3915 records a failed Daytona E2E regression suite, while issue 4006 records a failed nightly critical-path journey. Those are directly relevant to teams evaluating repeatable workflows.

The project is clearly active, and current work on alerting and promotion gates shows the maintainers are responding to deployment failures. Activity is not the same as stability. A pre-1.0 desktop, local server, hosted MCP, plugin importer, and enterprise admin plane create a wide regression surface.

OpenWork makes the most sense when capability duplication is already painful. A five-person team using both Codex and Claude Code can gain a shared catalog without replacing either client. A larger organization should price Den, inspect its identity and connection boundaries, and run its own critical journeys before rollout. If the work is mostly deterministic application automation, n8n is easier to reason about; if local persistent agent sessions are the priority, CompozyOS is the closer comparison.

Alternatives

ProjectWhat it isPick it when
CompozyOS gh↗A local daemon for persistent agent sessions, loops, approvals, memory, skills, and extensions.pick this instead when local runtime ownership matters more than OpenWork's hosted organization capability catalog.
n8n gh↗A visual workflow automation platform with many application integrations and approval patterns.pick this instead when predictable business workflows matter more than reuse inside coding agents.
OpenHands gh↗A software-development agent platform with its own interface and execution environment.pick this instead when you want a dedicated coding agent rather than a capability layer shared by existing agents.

What people are saying

  1. [velocity-scout] different-ai/openwork
  2. [github-trending] different-ai/openwork

Sources

  1. OpenWork README
  2. OpenWork repository
  3. OpenWork v0.18.35 release
  4. Daytona E2E regression issue
  5. Nightly critical-path E2E issue

More automation reviews

WA-AKG · MacDuo · flycoinrh · IDM_Pro_Tool · stonkfly · gongwen-gbt9704-skill · the whole board →