mirror of
https://github.com/different-ai/openwork
synced 2026-05-14 02:56:24 +02:00
* docs: add openwork server PRD * feat: wire OpenWork server remote management * feat: add OpenWork server settings panel
71 lines
2.0 KiB
Markdown
71 lines
2.0 KiB
Markdown
# OpenWork Server
|
|
|
|
Filesystem-backed API for OpenWork remote clients. This package provides the OpenWork server layer described in `packages/app/pr/openwork-server.md` and is intentionally independent from the desktop app.
|
|
|
|
## Quick start
|
|
|
|
```bash
|
|
pnpm --filter @different-ai/openwork-server dev -- \
|
|
--workspace /path/to/workspace \
|
|
--approval auto
|
|
```
|
|
|
|
The server logs the client token and host token on boot when they are auto-generated.
|
|
|
|
## Config file
|
|
|
|
Defaults to `~/.config/openwork/server.json` (override with `OPENWORK_SERVER_CONFIG` or `--config`).
|
|
|
|
```json
|
|
{
|
|
"host": "127.0.0.1",
|
|
"port": 8787,
|
|
"approval": { "mode": "manual", "timeoutMs": 30000 },
|
|
"workspaces": [
|
|
{ "path": "/Users/susan/Finance", "name": "Finance", "workspaceType": "local" }
|
|
],
|
|
"corsOrigins": ["http://localhost:5173"]
|
|
}
|
|
```
|
|
|
|
## Environment variables
|
|
|
|
- `OPENWORK_SERVER_CONFIG` path to config JSON
|
|
- `OPENWORK_HOST` / `OPENWORK_PORT`
|
|
- `OPENWORK_TOKEN` client bearer token
|
|
- `OPENWORK_HOST_TOKEN` host approval token
|
|
- `OPENWORK_APPROVAL_MODE` (`manual` | `auto`)
|
|
- `OPENWORK_APPROVAL_TIMEOUT_MS`
|
|
- `OPENWORK_WORKSPACES` (JSON array or comma-separated list of paths)
|
|
- `OPENWORK_CORS_ORIGINS` (comma-separated list or `*`)
|
|
|
|
## Endpoints (initial)
|
|
|
|
- `GET /health`
|
|
- `GET /capabilities`
|
|
- `GET /workspaces`
|
|
- `GET /workspace/:id/config`
|
|
- `PATCH /workspace/:id/config`
|
|
- `GET /workspace/:id/plugins`
|
|
- `POST /workspace/:id/plugins`
|
|
- `DELETE /workspace/:id/plugins/:name`
|
|
- `GET /workspace/:id/skills`
|
|
- `POST /workspace/:id/skills`
|
|
- `GET /workspace/:id/mcp`
|
|
- `POST /workspace/:id/mcp`
|
|
- `DELETE /workspace/:id/mcp/:name`
|
|
- `GET /workspace/:id/commands`
|
|
- `POST /workspace/:id/commands`
|
|
- `DELETE /workspace/:id/commands/:name`
|
|
- `GET /workspace/:id/export`
|
|
- `POST /workspace/:id/import`
|
|
|
|
## Approvals
|
|
|
|
All writes are gated by host approval. Host APIs require `X-OpenWork-Host-Token`:
|
|
|
|
- `GET /approvals`
|
|
- `POST /approvals/:id` with `{ "reply": "allow" | "deny" }`
|
|
|
|
Set `OPENWORK_APPROVAL_MODE=auto` to auto-approve during local development.
|