Write a WebGPU compute kernel, describe how to split it, and submit. Warppool spreads the chunks across browser GPUs, folds the results, and bills you to the millisecond.
A job is one compute kernel plus a manifest that says how to split it. Write the kernel in WGSL, or in plain Python with py2wgsl (pip install py2wgsl), which compiles it to WGSL for you.
from py2wgsl import Array, f32, global_id, array_length def square(values: Array[f32], result: Array[f32]): i = global_id() if i < array_length(result): result[i] = values[i] * values[i]
"wgsl" or "py2wgsl".{name, dtype}. dtype is f32, u32 or i32. Supply the values in input_data.{name, dtype, length}. length is required.total_work (up to 1 billion items), plus optional chunk_size and workgroup_size (default 64).sum, mean, max, min or concat.Three front doors, one set of rules. Each one runs as your account and bills to it.
Advanced → Console on your dashboard. Paste a kernel and manifest, then watch it run.
Add a public key under Advanced → SSH access, then ssh to ssh.warppool.tech.
# Over SSH: a quick test job (Monte Carlo pi, 100M samples) $ ssh wp-3f9a2c1b@ssh.warppool.tech $ warppool submit --name first-run --samples 100M
Every call below sees only your own jobs. A job you don't own returns 404.
Warppool runs a hosted MCP server at https://warppool.tech/mcp. Connect Claude, or any MCP client, and it can plan, submit, watch and cancel jobs for you, as your account.
On your dashboard, open Advanced → Agent access, name the token, and pick its scopes. The value (wp_pat_…) is shown once, so copy it then. Tokens can expire (1–365 days) and can be revoked at any time. You can hold up to 25.
Give an agent only the scopes it needs. A token with just jobs:read can watch jobs but can't spend money.
# Claude Code $ claude mcp add --transport http warppool https://warppool.tech/mcp \ --header "Authorization: Bearer wp_pat_…"
Other clients: add a Streamable HTTP server with that URL and an Authorization: Bearer header. There is no OAuth sign-in flow; the token is the credential.
job_type: "kernel").jobs:write can run billed jobs on your account. If one leaks, revoke it under Agent access.