OpenWorker Harness
Build your product and user experience. Let OpenWorker run the agents.
OpenWorker Harness is a Rust agent runtime with Rust and TypeScript SDKs. It manages model requests, tools, approvals, durable sessions and agent teams. Embed it in a desktop application or deploy the server reference with PostgreSQL. The shipped Rust runtime does not require Python.
This branch is a release candidate for integration testing, not a stable SDK release announcement. Use a pinned checkout and build the SDK and executable from the same revision. The existing OpenWorker Desktop application continues to use its Python harness; this directory is additive.
Integration branch
Use openworker-harness-sdk in andrewyng/openworker for harness feature
development and partner integration. It is the shared integration branch that
will eventually merge into main. Start individual feature branches from it and
merge verified milestones back regularly.
git fetch origin
git switch openworker-harness-sdk
git pull --ff-only origin openworker-harness-sdk
Pin a commit for reproducible partner builds, and build the SDK and harness executable from that same checkout. Source manifests remain development packages.
Start here
- Desktop QuickStart — build a Windows or Mac app with TypeScript/Electron or Rust/Tauri.
- Visual QuickStart — open the local HTML file in a browser for tabbed Rust/TypeScript examples.
- Arcade Studio — the flagship integration: a game library, cloud/local model settings, guided creation, streamed activity, isolated previews, approval-based publishing and revision recovery.
- Server getting started — REST/SSE, PostgreSQL, workers and deployment references.
- Coding tools and unattended sessions — file editing/search, managed preview processes and auto-skip questions.
- Memory and scheduling — opt-in durable learner memory and scheduled work on SQLite or PostgreSQL.
- Python/Rust tool survey — remaining parity gaps.
- Observability — recording storage, independent PostgreSQL connections and staged usage/timeline implementation.
- Binary footprint — measured stripped release sizes and build settings.
- GCP deployment progress — qualified bootstrap/local graph checks and remaining cloud execution/cleanup gates.
What the harness handles
- Responses, Chat Completions and Anthropic Messages APIs; configurable cloud proxies and compatible local servers such as Ollama or vLLM.
- Streaming output, tool execution, cancellation, context compaction and session recovery.
- Human approvals and questions, session-scoped grants and optional model-based approval review. Approval modes do not replace execution isolation.
- Native Rust tools, app-owned callbacks and explicitly registered MCP servers.
- Agent teams with durable task/message boards; SQLite or PostgreSQL storage.
- Optional OpenTelemetry export and artifact storage for server deployments.
- App-owned authentication callbacks and proactive rotation of short-lived bearer tokens, without recreating sessions.
Your application owns its UI, user/device authentication, project catalog and product-specific tools. The harness owns the execution record. Keep these storage boundaries separate; use SDK/protocol APIs instead of reading runtime tables.
Pick an integration
For authenticated remote SDK access, release/RuntimeProfile deployment and the
ows CLI, see the service CLI quickstart
and local Docker deployment. For expiring service
credentials, configuration and Kubernetes capacity, see the
service administration guide. The
service specification also describes later
management and cloud milestones; see the ledger for qualified scope.
The local Kubernetes installation guide
covers pinned OpenShell installation, existing-gateway reuse and installer recovery.
| Application | Interface |
|---|---|
| Rust desktop app | Embed openworker-sdk in your Tokio process, or use its managed child |
| TypeScript desktop app | @openworker/harness manages the Rust child over private stdio |
| Custom process client | Versioned SDK protocol |
| Multi-node service | Server reference, REST/SSE and PostgreSQL |
Rust SDK and TypeScript SDK share the same engine. The TypeScript SDK does not reimplement agent logic. Native tool crates are separate from the Harness SDK.
Build from this checkout
Use the pinned Rust toolchain in rust-toolchain.toml, Node.js 24 and npm 11+ for
the JavaScript packages, plus your platform's native build prerequisites.
cd harness
cargo build --release --locked -p openworker-sdk --bin openworker-harness
npm --prefix typescript-sdk ci
npm --prefix typescript-sdk run build
The executable is target/release/openworker-harness (.exe on Windows).
Crate/npm manifests are currently source-distribution packages: use local paths
or a pinned Git revision, not an assumed published registry package.
Execution and safety
The runtime defaults to NVIDIA OpenShell. Provision Docker/OpenShell before using
that execution mode. Unsupported/unavailable sandboxing fails rather than silently
falling back. Desktop starters explicitly use sandbox: "off" for app-owned
callbacks; those callbacks have the application's privileges. Their generated-game
preview is separately isolated from the native bridge and network.
Linux is the server/OpenShell reference platform. Windows and macOS have desktop SDK integrations; native build and packaging prerequisites apply. Do not infer that every architecture, installer, local model or sandbox combination is qualified.
- Windows build notes
- Tool and resource policy
- Session approvals
- Provider authentication and token rotation
- Custom native tool packaging
- Deployment and operations
Layout
runtime/ Agent loop, policies, sessions, execution and protocol
harness-sdk/ Rust library and SDK-capable executable
typescript-sdk/ Node/TypeScript client
tools-sdk/ Native Rust tool interface
store-postgres/ PostgreSQL storage and coordination
artifacts/ Artifact persistence
telemetry/ OpenTelemetry integration
server-reference/ API, worker and administrative server roles
desktop-starters/ Small Electron and Tauri application generators
examples/arcade/ Flagship desktop app
examples/ Focused coworker, tool and custom-host examples
tests/ Shared contract fixtures and acceptance tests
partner/ Generic custom-host builder and protocol reference
console/ Optional observability console
task-desk/ Small server-backed reference app
Verify changes
cd harness
cargo fmt --all -- --check
cargo test --locked -p openworker-sdk --features test-support --test provider_auth
cargo test --locked -p notification-tools -p device-tools -p computer-tools --lib
npm --prefix typescript-sdk test
node --test desktop-starters/test.mjs tests/stdio-client.test.mjs
The full Linux workspace/storage matrix is in CI. Tests that need PostgreSQL, OpenShell, live credentials or a visible desktop must be enabled and qualified explicitly. See the release checklist for this snapshot.
Licensed under the repository's MIT license. Third-party example assets retain their own notices and licenses.