Getting Started
This guide takes you from a fresh installation to a completed GPU job. Docker is required for local API operation and custom images.
Install
On macOS, install with Homebrew:
brew install anycloud-sh/tap/anycloud
Or use the installer:
curl -fsSL https://get.anycloud.sh | sh
The installer verifies the downloaded binary against the checksums published in
the public anycloud-sh/releases repository. To inspect it before running:
curl -fsSLo install.sh https://get.anycloud.sh
less install.sh
sh install.sh
Install the package too if you plan to use Python:
pip install anycloud-sdk
Log in
anycloud login
Login uses GitHub OAuth to identify deployments and pull private GHCR images. When Docker is available, it also authenticates your local Docker CLI to GHCR.
Start the API
Every command talks to one active API. For a personal setup on this machine, start the Anycloud API in Docker:
anycloud api start
A hosted API runs the control plane in your cloud account and gives it a stable URL for use from multiple machines or by a trusted team. Start with the local API above, then follow Hosted APIs to deploy and manage one.
If you already own or have access to a hosted API, select it instead:
anycloud api use https://<id>.anycloud.sh
The selected URL is stored in ~/.anycloud/api-url. API_URL is a temporary
override.
Add cloud credentials
The interactive wizard can read durable local credentials, use supported provider tooling, or accept values you paste:
anycloud credentials new my-aws
For non-interactive setup, pass the provider fields explicitly:
anycloud credentials new my-aws --provider aws \
--access-key-id AKIA... \
--secret-access-key ...
Azure, GCP, and Lambda use the same command with provider-specific fields. See Cloud Credentials for setup paths and the credentials command reference for every flag.
Deploy a job
The fastest first run uses a public image, so no image build or source checkout is needed.
- CLI
- Python
anycloud job pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime \
--credentials my-aws \
--gpu-type h100 \
--gpus all \
-- python -c "import torch; print('CUDA available:', torch.cuda.is_available())"
Follow it until completion:
anycloud status <job-id> --verbose
anycloud logs <job-id>
import anycloud
ac = anycloud.Client()
job = ac.submit(
"pytorch/pytorch:2.2.0-cuda12.1-cudnn8-runtime",
gpu="a100:1",
command=[
"python",
"-c",
"import torch; print('CUDA available:', torch.cuda.is_available())",
],
)
job.wait()
print(job.logs())
Anycloud provisions a GPU VM, pulls the image, runs the command, and tears the VM down after the job exits.
Choose your next path
- Learn the building blocks: start with Jobs, then add Buckets, Container Images, and GPUs & VM Types as your workload needs them.
- Work directly on provisioned compute: launch and connect to a VM.
- Follow a complete workload: train MACE on spot GPUs.
- Look up exact syntax: use Configuration, the CLI reference, or the Python SDK reference.
To update an existing installation, run:
anycloud update