Skip to content

About

The SaladCloud CLI: deploy and operate container groups, job queues, inference, and the AI Gateway from your terminal, scripts, CI, and AI agents.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SaladCloud CLI

Warning

This is a beta release. Expect bugs and changes: commands, flags, messages, exit codes and JSON output may all still change, and some behavior will surprise you. Every change is listed in the changelog, and the exit codes and JSON output are the parts we work hardest to keep stable. Please report anything that looks wrong; during the beta, those reports are the most useful thing you can send us.

A thin command-line wrapper over the SaladCloud Public API, built for people, scripts, CI, and AI agents. Every command works non-interactively and exits with a documented code, and every command that reports a result supports --output json. The command is saladcloud.

Install

macOS and Linux:

curl -fsSL https://raw.githubusercontent.com/SaladTechnologies/salad-cloud-cli/main/install.sh | sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/SaladTechnologies/salad-cloud-cli/main/install.ps1 | iex

Both scripts download the newest release for your machine, verify it against the release's checksums.txt, and install saladcloud: to ~/.local/bin on macOS and Linux (they tell you if that is not on your PATH), and to %LOCALAPPDATA%\Programs\saladcloud on Windows, which is added to your user PATH. Both read the same variables: SALAD_CLI_VERSION (for example v0.1.0) pins a release, SALAD_CLI_INSTALL_DIR chooses the folder, SALAD_CLI_REPO and SALAD_CLI_DOWNLOAD_URL point at another repository or a mirror of its release files, SALAD_CLI_NO_MODIFY_PATH=1 leaves your Windows user PATH alone, and GITHUB_TOKEN is sent when looking up the latest release, to avoid GitHub's rate limit. Prebuilt binaries cover Linux amd64 and arm64, macOS arm64 and amd64, and Windows amd64 (which also runs on Windows 11 on ARM under emulation).

Other ways to install:

  • Manual download: the archives and checksums.txt are on each release. Every archive carries a build provenance attestation: gh attestation verify <archive> --repo SaladTechnologies/salad-cloud-cli.
  • With Go 1.26 or later, on any platform Go supports: go install github.com/saladtechnologies/salad-cloud-cli/cmd/saladcloud@latest
  • From source: just build (needs bash, Go and just; mise install sets up both) writes dist/<os>-<arch>/saladcloud.

Run saladcloud version to confirm the install; it prints the version and commit you will want in any bug report.

Next, log in:

saladcloud login

Shell completion knows your container group, instance, queue, endpoint and GPU class names. Load it from your shell's startup file:

source <(saladcloud completion bash)          # ~/.bashrc
source <(saladcloud completion zsh)           # ~/.zshrc
saladcloud completion fish | source           # ~/.config/fish/config.fish
saladcloud completion powershell | Out-String | Invoke-Expression   # $PROFILE

Uninstall

macOS and Linux:

curl -fsSL https://raw.githubusercontent.com/SaladTechnologies/salad-cloud-cli/main/uninstall.sh | sh

Windows (PowerShell):

irm https://raw.githubusercontent.com/SaladTechnologies/salad-cloud-cli/main/uninstall.ps1 | iex

These undo the install scripts: they remove saladcloud from the folder the installer used (SALAD_CLI_INSTALL_DIR, if you set it for the install), and on Windows that folder from your user PATH. Your config file, which holds your saved API keys, stays so a reinstall picks up where you left off; set SALAD_CLI_PURGE=1 to remove it too (saladcloud config path shows where it is). Remove any saladcloud completion line you added to a startup file. For go install or a manual download, delete the binary.

Getting started

Before you start, in the portal

A few steps are done in the SaladCloud Portal:

  1. Create an account at portal.salad.com.
  2. Create an organization. It comes with a project named default; add more projects in the portal if you want to keep environments apart.
  3. Add a billing method and credits on the organization's Billing & Usage page. Without credits, you cannot create or start container groups, or use any other SaladCloud service.

saladcloud login then asks for your API key, from the portal's API key page (press Enter at the prompt to open it), and for your organization and project. The key is your user's, and works for every organization you are a member of.

Two features need one more portal step:

  • container-groups ssh, cp, and sftp need an SSH public key registered to your account, at https://portal.salad.com/ssh-keys: saladcloud ssh-key setup finds or generates one and prints it.
  • ai-gateway test needs an AI Gateway key, created on the organization's AI Gateway page (linked from https://portal.salad.com/ai-gateway): run saladcloud ai-gateway login.

First commands

# Save your API key, organization, and project
saladcloud login

# List GPU classes with prices
saladcloud gpus list

# Deploy a container group: a public busybox image that logs a line every 5 seconds
saladcloud container-groups create my-first-group --image docker.io/library/busybox:1.36 --cpu 1 --memory 1024 --priority batch -- sh -c 'while true; do echo hello from SaladCloud; sleep 5; done'

# Check its status, instance counts and, if it failed, the reason
saladcloud container-groups get my-first-group

# Follow its logs
saladcloud container-groups logs my-first-group -f

# Delete it
saladcloud container-groups delete my-first-group

The create line works the same in bash, zsh and PowerShell. A deleted group's name is never released, so give each new group a new name. From a checkout of this repository, -f examples/hello-cpu.yaml is the same definition as a file; the guide shows a definition read from stdin in each shell.

Container groups have their own command, saladcloud container-groups, and cg is short for it: saladcloud cg list lists your container groups. Resource nouns always take a verb (gpus list, orgs get <name>), and the thing a command acts on is its one positional argument while its parents are flags (saladcloud cg instances restart <id> -c my-app).

login asks for the key, then the organization and project. Use their URL names, the segments in https://portal.salad.com/organizations/<org>/projects/<project>, not the display names (saladcloud orgs list shows both for organizations; a project's URL name is in the portal URL). saladcloud use <org>/<project> switches context later, and saladcloud whoami shows what is in effect and where each value came from.

In scripts and CI, skip login: set SALAD_API_KEY, SALAD_ORGANIZATION, and SALAD_PROJECT (or pass --org/--project), and add -o json for machine-readable output. A group can also be created from a JSON or YAML definition file, with flags on top: saladcloud container-groups create -f examples/hello-cpu.yaml.

Every command has --help, and saladcloud doctor diagnoses setup and connectivity problems. If you work with a coding agent, run saladcloud agent init in your project so the agent knows how to use the CLI.

Documentation

Reporting issues

The CLI is in beta, so please tell us when something goes wrong: open an issue. Worth reporting: a crash, a wrong exit code, a JSON document missing a key, output that contradicts --help, or a message that sent you the wrong way. The bug template asks for:

  • the output of saladcloud version
  • the exact command you ran
  • the error, ideally re-run with -o json so it is the single-line {"error":{...}} document on stderr
  • for setup or connectivity problems, the output of saladcloud doctor

Never paste an API key. The CLI never prints your API keys (--debug=body redacts them, and webhook-secret get prints only the webhook secret, by design), but check anything you copy from your shell, environment, or config file first. A transcription job's document (inference jobs get -o json) contains a working link to the file you uploaded, valid for 24 hours: remove its input.url before sharing it.

Contributing

See CONTRIBUTING.md. The development workflow, layout, and public contracts are in AGENTS.md; every user-visible change is recorded in CHANGELOG.md. This project follows a code of conduct.

License

MIT © 2026 Salad Technologies, Inc.

About

The SaladCloud CLI: deploy and operate container groups, job queues, inference, and the AI Gateway from your terminal, scripts, CI, and AI agents.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages