workpaper
Cloud computers for AI agents, from Python. Each computer is a real Linux machine with its own kernel, ready in under a second. Stop it and it keeps its disk and memory; fork it while it runs. No dependencies.
pip install workpaper
Make an API key once with the CLI (curl -fsSL https://workpaper.co/install | sh, then workpaper auth login):
workpaper keys create my-app # prints wpk_…; set it as WORKPAPER_API_KEY
Quickstart
from workpaper import Workpaper
wp = Workpaper() # reads WORKPAPER_API_KEY
c = wp.run("my-agent") # create it, or wake it if it exists
r = c.exec("python3 --version")
print(r.exit_code, r.stdout)
c.write("/home/user/app/main.py", "print('hi')")
c.exec("python3 main.py", cwd="/home/user/app", on_stdout=print)
c.stop() # disk and memory saved, billing stops
c.start() # running programs carry on from the same moment
Fork a running computer
base = wp.run("base")
base.exec("git clone https://github.com/you/app && cd app && pip install -r requirements.txt")
# Each copy starts with the files, memory and running programs of `base`.
tries = [base.fork(n) for n in ("try-a", "try-b")]
API
Workpaper(api_key=None, wait_seconds=900, on_wait=None) |
on_wait(position) is called while waiting in line when every computer is busy (nothing is charged while waiting) |
wp.run(name, size="small", timeout=3600) |
Create or wake. size: "small" (2 vCPU, 4 GB, 10 GB) or "large" (4 vCPU, 8 GB, 20 GB, Docker running) |
wp.create(name, ...) · wp.find(name) · wp.list() |
|
c.exec(cmd, cwd=None, env=None, user="user", timeout=None, on_stdout=None, on_stderr=None) |
Runs under bash. Returns ExecResult(exit_code, stdout, stderr); a non-zero exit is a result, not an error |
c.read(path) · c.read_text(path) · c.write(path, data) |
|
c.stop() · c.start(timeout=3600) |
Stop keeps everything; start resumes it |
c.fork(name) |
Copy a running computer into a new one |
c.delete() |
|
c.name · c.state · c.cpus · c.memory_mb · c.stops_at · c.fork_of |
Errors are WorkpaperError with status and, when the service is full, reason == "at_capacity".
Every computer comes with Node 24, Python 3.12, uv, git, Claude Code, Codex and a headless browser. Limits and pricing: docs.workpaper.co.
Metadata
Release files for workpaper 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| workpaper-0.1.0.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| workpaper-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.0 kB
Release files / workpaper-0.1.0.tar.gz
| Download URL | workpaper-0.1.0.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1e1c55afbddc3ca4450612cbbc17705d1b235317d94952228800ce8fc6152255
|
|
BLAKE2b-256 checksum How to use checksums |
32396a050e767bca818ca5daff31c29c9fe5a42465b1c8b7a8f9b99fb40a39b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / workpaper-0.1.0-py3-none-any.whl
| Download URL | workpaper-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b192bab27c66f5d30eb9af0a363fbf9b06369c0dcf98c1fb413c9690866952ef
|
|
BLAKE2b-256 checksum How to use checksums |
ee3c3e902c07073f7dcd7b6ca3349b68451994acd3ea89bb700a51b3f25af75d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|