Skip to content

josancamon19/use-computer-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

141 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

use-computer SDKs

Official SDKs for use.computer — rent dedicated VMs (macOS, iOS/visionOS/tvOS simulators, Windows, Ubuntu) built for computer-use agents. One surface, three languages:

Language Package Path
Python pip install use-computer (PyPI) python/
TypeScript / JavaScript npm install use-computer-sdk js/
Go go get github.com/josancamon19/use-computer-sdk/go go/

All three expose the same sandbox surface — create({ type, version, ephemeral, ... }) for macOS / iOS / Windows / Ubuntu, plus mouse, keyboard, screenshot, exec/run, files, recording, and the native UI tree. The Python package also ships optional computer-use agents and Harbor adapters behind extras, so a base pip install use-computer stays small.

Sandboxes default to ephemeral=true; pass ephemeral=false when a sandbox should persist until manual deletion, or call keepalive/start_keepalive during long idle periods.

On-demand Ubuntu and Windows desktops share a per-account concurrency limit. The default is 8 running KVM sandboxes at a time. When the account is at the limit, create calls return HTTP 429 with error="sandbox_limit_reached" plus limit and running counts.

Stable account keys can reserve one Mac Mini directly from credits, then launch macOS/iOS against that reservation:

from use_computer import Computer

client = Computer()
reservation = client.reserve(hours=24)
mac = client.create(type="macos", reservation_id=reservation.id)

Each reserved Mac Mini allows up to 2 parallel macOS VMs. platforms() returns macos.capacity.max and macos.capacity.used for the selected reservation; for example, a one-Mini reservation reports max: 2.

pip install "use-computer[agents]"        # computer-use agents and provider SDKs
pip install "use-computer[harbor]"        # Harbor environment adapter, Python 3.12+
pip install "use-computer[harbor,agents]" # Harbor adapter plus agents

Harbor job YAMLs import the SDK adapter directly:

environment:
  import_path: use_computer.harbor.environment:UseComputerEnvironment
  kwargs:
    platform: macos
agents:
  - import_path: use_computer.harbor.agents:AnthropicCUAAgent
    model_name: anthropic/claude-sonnet-4-6

Examples per language live in examples/.

Windows and Ubuntu report their current desktop display size:

with client.create(type="ubuntu", version="ubuntu-24.04") as ubuntu:
    print(ubuntu.display.get_info())

Pass CPU/RAM/disk resources with the base OS line to select a baked Windows or Ubuntu profile, for example resources={"cpus": 4, "memory_mb": 4096, "disk_gb": 40} with version="ubuntu-24.04".

When the OSWorld images are deployed, select them the same way: client.create(type="windows", version="osworld") or client.create(type="ubuntu", version="osworld").

Runtime snapshots are supported for Windows and Ubuntu. They preserve disk + RAM state, so seeded files, browser sessions, and running processes are still present when you create a new sandbox from the returned snapshot version:

from use_computer import Computer

client = Computer()

# Configure the desktop by hand over VNC, then snapshot it.
with client.create(type="ubuntu", version="ubuntu-24.04") as ubuntu:
    print("Set up the desktop here:", ubuntu.vnc_url)
    # install apps, sign into accounts, pre-open the windows your agent starts from
    input("Press Enter once the desktop is ready to snapshot...")
    snapshot = ubuntu.snapshot("chrome-seeded-ubuntu")

# New sandboxes boot from that exact state, no setup needed.
with client.create(type="ubuntu", snapshot=snapshot.version) as seeded:
    print(seeded.vnc_url)  # apps, logins, and open windows restored

Docs: docs.use.computer. Windows and Ubuntu are Beta (admin-only).