computer-use.md 3.4 KB

Computer use

English | 中文

Computer use lets a model observe and operate the local desktop through a configured provider. The shared DSH capability is called computer use; Cua Driver names the upstream implementation.

Choose a provider

Mount dsh-computer-use and one provider in the same composition. Both Cua Driver providers are experimental public npm packages and require explicit activation.

Provider Runtime
Cua Driver MCP An already installed cua-driver executable connected through MCP
Cua Driver native The platform-native runtime installed with the npm dependency

Each provider supplies its upstream tool catalog. The shared service registers only a name and rejects any second provider, including another instance with the same name. It has no common desktop-operation methods or model-controlled selector.

Lifetime and desktop sharing

A provider retains its registration while it shuts down its tools and owned resources. Startup failure releases the attempted registration. The MCP provider keeps its registration during reconnects.

One registered provider does not reserve a desktop for a Session. Callers coordinate complete observe, act, and verify workflows across Sessions and separate DSH processes. A cancelled call cannot undo input that the desktop already received.

Results and platform requirements

Tools use the normal execution pipeline and Session log. Image-capable model routes with an attachment store receive durable screenshots; unsupported image routes receive the existing MCP image diagnostic. Provider READMEs own installation, permission, and platform limitations.

The decision record explains the registration-only service and the two Cua Driver integrations.

Cordis API

Generated from source by scripts/gen-cordis-catalog.ts (verified fresh by pnpm run verify-cordis-catalog in doc-sync; regenerate with pnpm run gen-cordis-catalog) — the language sides differ only in locale-specific paired document paths. Signature blocks use a ts cordis-catalog fence and keep the original source JSDoc; dispatch modes are defined in the primer, and the framework-inherited ctx API lives in cordis-api/inherited.md.

ctx.computerUseComputerUseRegistry

Owns one optional provider registration in the shared computer-use service.

/**
 * Reserve the sole provider slot until the contribution is disposed.
 * A second registration fails even when it repeats the current name. Providers
 * must stop their tools and await owned work before releasing this registration.
 * @param name - provider-owned name used in registration diagnostics.
 * @returns the effect disposer for this exact registration.
 */
register(name: ComputerUseProviderName): () => Promise<void>

Source: packages/computer-use/computer-use/src/index.ts