# openwork
**Repository Path**: lookinto/openwork
## Basic Information
- **Project Name**: openwork
- **Description**: https://github.com/different-ai/openwork.git
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: dev
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-01-21
- **Last Updated**: 2026-01-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# OpenWork
OpenWork is an **extensible, open-source “Claude Work” style system for knowledge workers**.
It’s a native desktop app that runs **OpenCode** under the hood, but presents it as a clean, guided workflow:
- pick a workspace
- start a run
- watch progress + plan updates
- approve permissions when needed
- reuse what works (templates + skills)
The goal: make “agentic work” feel like a product, not a terminal.
## Quick start
Download the dmg here https://github.com/different-ai/openwork/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 `/event` 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 `.opencode/skill` folders
- install from OpenPackage (`opkg install ...`)
- import a local skill folder into `.opencode/skill/`
## Skill Manager
## Works on local computer or servers
## Quick Start
### Requirements
- Node.js + `pnpm`
- Rust toolchain (for Tauri): `cargo`, `rustc`
- OpenCode CLI installed and available on PATH: `opencode`
### Install
```bash
pnpm install
```
OpenWork now lives in `packages/desktop`. Root scripts forward to that package.
### Run (Desktop)
```bash
pnpm dev
```
### Run (Web UI only)
```bash
pnpm dev:web
```
## Architecture (high-level)
- In **Host mode**, OpenWork spawns:
- `opencode serve --hostname 127.0.0.1 --port `
- with your selected project folder as the process working directory.
- The UI uses `@opencode-ai/sdk/v2/client` to:
- connect to the server
- list/create sessions
- send prompts
- subscribe to SSE events
- read todos and permission requests
## Folder Picker
The folder picker uses the Tauri dialog plugin.
Capability permissions are defined in:
- `packages/desktop/src-tauri/capabilities/default.json`
## OpenPackage Notes
If `opkg` is not installed globally, OpenWork falls back to:
```bash
pnpm dlx opkg install
```
## OpenCode Plugins
Plugins are the **native** way to extend OpenCode. OpenWork now manages them from the Skills tab by
reading and writing `opencode.json`.
- **Project scope**: `/opencode.json`
- **Global scope**: `~/.config/opencode/opencode.json` (or `$XDG_CONFIG_HOME/opencode/opencode.json`)
You can still edit `opencode.json` manually; OpenWork uses the same format as the OpenCode CLI:
```json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-wakatime"]
}
```
## Useful Commands
```bash
pnpm typecheck
pnpm build:web
pnpm test:e2e
```
## Security Notes
- OpenWork hides model reasoning and sensitive tool metadata by default.
- Host mode binds to `127.0.0.1` by default.
## Contributing
- Review `AGENTS.md` and `MOTIVATIONS-PHILOSOPHY.md` to understand the product goals before making changes.
- Ensure Node.js, `pnpm`, the Rust toolchain, and `opencode` are installed before working inside the repo.
- 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.
- Add new PRDs to `packages/desktop/pr/.md` following the `.opencode/skill/prd-conventions/SKILL.md` conventions described in `AGENTS.md`.
## License
MIT — see `LICENSE`.