Quickstart
From sign-in to a shell on a cloud GPU, then back to zero spend. Every step works in the console with buttons; the commands below do the same from your terminal with the matmul CLI.
1. Sign in
Sign in at app.matmul.cloud. MatMul is in early access, so a new account can land on a waitlist page until it's approved. Once you're in, the console creates an organization for you and makes you its owner.
2. Install the CLI and log in
You need Python 3.9 or newer. The package has no dependencies.
pip install matmul-cloud
matmul login
Your browser opens the console. Check that it shows the same code as your terminal and click Authorize this CLI. The CLI saves a new API key to ~/.config/matmul/config.json with owner-only permissions. Over SSH it prints a link to open on any device instead. The key belongs to you and carries your role in the organization. (Browser login needs a matmul-cloud release after 0.1.0.)
With 0.1.0, or in CI: open CLI & API in the console and click Create key. The key (it starts with lmk_) is shown once. Set it as MATMUL_API_KEY, or save it:
matmul login --api-key lmk_... --url https://api.matmul.cloud
3. Add credit
MatMul is prepaid. Add credit on the Billing page, or get a Stripe checkout link from the terminal and open it in your browser:
matmul billing add-credit --usd 20 matmul billing balance
The smallest top-up is $10. New accounts start with lower limits (see Pricing & billing). Only the organization's owner can see the balance and add credit.
4. Register your SSH key
Machines accept only the public keys you've registered.
matmul ssh-key add # uploads ~/.ssh/id_ed25519.pub (then id_ecdsa, id_rsa) matmul ssh-key ls
No key yet? ssh-keygen -t ed25519 makes one. Use --file for another key and --name to label it. In the console it's the SSH keys page.
5. Find a GPU
matmul offers --gpu H100 matmul offers --gpu L40S --max-price 2.5 # at or under $2.50/hr matmul offers --gpu A100 --count 2 # machines with 2x A100
Offers come from live supply across providers, cheapest first, priced per machine-hour. The price you see is the price you're billed. What's available changes minute to minute. The console's Launch page shows the same list.
6. Launch
Leave out --image for the provider's plain VM (Ubuntu with the NVIDIA driver and container toolkit; it doesn't include the CUDA toolkit, so use a nvidia/cuda:*-devel image if you need nvcc):
matmul instance create --name dev --gpu H100 --max-price 3 --wait
Or run a Docker image on the machine, with the GPUs available to it:
matmul instance create --name nb --gpu H100 --max-price 3 \ --image pytorch/pytorch:latest --keep-alive --wait
To launch one particular machine from step 5 instead of the cheapest, pass its id from the OFFER ID column, with its price as the guard:
matmul instance create --name dev --offer <OFFER_ID> --max-price <PRICE> --wait
--gpupicks the cheapest matching offer and prints it;--offerlaunches exactly the one you name. If it has been taken since you listed it, you get "that offer is no longer available; search again": runmatmul offersagain. The console's Launch page shows this command, filled in, for any offer.--max-priceis a ceiling in $/hr. If the price has gone above it by the time the machine is created, the launch is refused and nothing is charged.--keep-alivekeeps images with no long-running command (such asubuntuorpytorch/pytorch) from exiting straight away.--waitpolls until the instance isrunningand prints the SSH command. Provisioning a real GPU machine often takes several minutes. With--image, it counts as running only once the container is up, so a large image adds the time it takes to pull.
You need at least one hour of runway at the offer's price to launch. Every flag is in the CLI reference.
7. SSH in
matmul ssh dev matmul ssh nb # inside the container (it has an image) matmul ssh --host nb # the VM underneath matmul ssh dev -- nvidia-smi # run one command
Put --host before the instance name. The CLI reference covers running commands and scripts over matmul ssh.
For plain ssh, scp or your editor's remote mode, use the raw SSH command that --wait, matmul instance get dev and the instance's page in the console show.
8. Terminate it
An instance bills until you delete it, whether or not you're using it. Copy your results off first: the disk goes with the machine.
matmul instance rm dev matmul instance ls # running time and cost so far
What happens when credit runs out
- When your balance has less than about an hour left at the current burn rate, we email a warning.
- At zero the account is frozen: new launches are refused, and the CLI prints a warning above
matmul instance lsandmatmul billing balance. - If it stays frozen for the grace period (1 hour for a new, unverified organization, 4 hours once verified), running instances are terminated and managed jobs are cancelled.
- Adding credit lifts a balance freeze straight away.
Details, limits and the ledger are in Pricing & billing.
Next
- Python SDK and REST API to script all of this.
- MCP server to launch GPUs from Claude, Cursor or VS Code.
- How to rent a cloud GPU in 5 minutes, the same walkthrough with more background.