Docs / Benchmarks / Console
Arker Python SDK
Use the Arker Python SDK to fork VMs, run commands, and sync files.
Install
pip install arker
The SDK requires Python 3.10 or later.
Get started
Sign up and get your API key at arker.ai/console.
ARKER_API_KEY, ARKER_PROVIDER, and ARKER_REGION must be set in the environment or passed directly to Arker().
Fork a source VM, run a command, sync a file, and delete the VM:
from arker import Arker
arker = Arker()
vm = arker.fork(source_vm_name="ubuntu-coding")
result = vm.run("python3 -c 'print(2 + 2)'")
print(result.stdout.decode())
vm.sync("/tmp/hello.txt", "hello from Arker")
print(vm.sync("/tmp/hello.txt").decode())
vm.delete()
Documentation and examples
Read the Arker documentation and browse the runnable examples.
License
Apache-2.0
Pools v2
Pools require the per-organization pools flag; a disabled organization receives
404 not_found. The three pool types are managed (Arker's multi-cloud
compute), byoc (workers Arker launches in your cloud account), and
self_hosted (BLAST workers you run).
This replaces pools v1 and the earlier BYOC API: quotes, fixed purchase terms, prices, and the
purchase idempotency key are removed with no compatibility layer.
Configure a regional endpoint (or provider and region) for pool operations.
Listing pools uses the control plane across regions; use each returned pool's
region for subsequent operations. Fork with exactly one of pool_id or
pool_name; names are case-insensitive within a region. A fleet VM cannot be
forked into a pool: use a supported image source instead. Pool VMs do not support
interactive shells; use run for commands.
managed and byoc pools request resources with all three quantities
(vcpu, memory_mib, disk_mib), including zeros; a self_hosted pool's
resources is an optional cap. Every pool reports resources_reserved (what
its workers contribute) and resources_provisioned (what its VMs use). A pool
is creating until its first worker is running (a managed pool starts
running), then running; reason says what needs attention. A byoc pool (provider aws)
needs setup: open byoc.setup_url in the specified AWS account and create the
CloudFormation stack. A self_hosted pool's platform is set by its first
worker; workers join with an API key limited to the pool,
ar.create_api_key(name=..., scopes=[{"pool_id": pool_id}]).
Only managed pools take commitments.
Commitments last at least 24 hours, cannot overlap, and new commitments cannot start in the past. Started commitments must remain unchanged, including expired ones. The add-commitment helper reads the pool and appends to the entire list. Serialize commitment edits: the API has no conditional update or atomic append, so concurrent edits can overwrite unstarted commitments. Active commitments prevent shrinking or deletion; resizing to zero otherwise releases the reservation. Deleting a pool deletes every VM in it.
API errors retain their code, status, message, and server details. A
429 quota_exceeded is returned immediately; adjust the reservation/quota or
remove unused pools instead of retrying. Ordinary rate limits keep the
SDK's retry policy. capacity_unavailable means placement has no capacity;
inspect the pool's reserved resources, workers, and state. Fleet-to-pool fork
and unsupported shell refusals are surfaced without a fallback placement.
Creation has no documented idempotency guarantee: after an ambiguous transport
failure, inspect the pool list before creating again.
from arker import CreateManagedPoolRequest, PoolResources, PoolCommitment
pool = client.create_pool(
CreateManagedPoolRequest(
type="managed",
platform="icelake",
resources=PoolResources(vcpu=8, memory_mib=32768, disk_mib=102400),
)
)
client.add_pool_commitment(
pool.pool_id,
PoolCommitment(
starts_at="2027-01-01T00:00:00Z",
ends_at="2027-01-02T00:00:00Z",
),
)
client.fork(image="ubuntu", pool_id=pool.pool_id)
client.rename_pool(pool.pool_id, None) # Clear the name.
update_pool accepts UpdatePoolRequest or a dictionary. Dataclass fields set
to None are omitted; use rename_pool(id, None) or {"name": None} to clear a name.
Metadata
Release files for arker 1.3.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 | Provenance | |
|---|---|---|---|---|
| arker-1.3.0.tar.gz | 222.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| arker-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 333.5 kB
Release files / arker-1.3.0.tar.gz
| Download URL | arker-1.3.0.tar.gz |
|---|---|
| Size | 222.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b65de5abcd4a8b6c822e4fcded8ae8af8110037512562d466b77cb6be684082
|
|
BLAKE2b-256 checksum How to use checksums |
21f3bdb2093dbe783dfe55292031f173893e4aad9772e31170edad2b3154531d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / arker-1.3.0-py3-none-any.whl
| Download URL | arker-1.3.0-py3-none-any.whl |
|---|---|
| Size | 111.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26dd8f2d2fa0c8c1da4dacd36c1f9584edf2150ec2128b5dbf036bfbc9fb9f11
|
|
BLAKE2b-256 checksum How to use checksums |
fe5cc78a7af59456744d27720ce6591e5ccc22c0c84692283771dbb178fbf961
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logSecurity for arker 1.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for arker-1.3.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.