CLI
aral is the unified command-line tool for Aral Cloud. It manages servers, projects, volumes, DNS, S3 buckets and Git repositories from your terminal, and is designed to be AI-agent and CI friendly thanks to machine-readable JSON output.
Install
aral CLI — install and sign in0:35Install the latest release with the official one-liner:
curl -fsSL https://aralcloud.uz/dl/install | shThe installer detects your OS and CPU architecture, places the aral binary in /usr/local/bin (falling back to ~/.local/bin when that directory is not writable) and prints where it landed. Check it works:
aral --versionPrebuilt binaries for every supported platform can also be downloaded directly from aralcloud.uz/cli.
TIP
Set ARAL_INSTALL_DIR before running the installer to choose a different destination directory.
Authentication
API tokens and scopes0:40Log in with your Aral Cloud email and password. The token is stored in ~/.aral/config.yaml and reused on every command.
aral auth login --email you@example.com --password 'your-password'If your account has more than one organization, pass --org_id to select one on login. Confirm who you are with:
aral auth whoamiFor automation (CI pipelines, AI agents), mint a long-lived API token instead of using your password:
aral auth token --name ci --scope servers:read --scope servers:write --expires-in-days 90A token has to say what it may do. Pass --scope once per operation, or --all to grant everything your account can do — including deleting every server, volume and database in the organization. There is no default: leaving both out is refused, so an unrestricted token is only ever one you asked for.
WARNING
The nex_... API token is shown only once when it is created. Store it securely and pass it via the ARAL_TOKEN environment variable rather than committing it to a repository.
To clear the stored token:
aral auth logoutConfiguration
Configuration lives in ~/.aral/config.yaml. The default API endpoint is https://aralcloud.uz. You can override the endpoint, token and output format globally on any command, or through environment variables.
| Flag | Environment variable | Description |
|---|---|---|
--endpoint <url> | ARAL_ENDPOINT | API endpoint override (default https://aralcloud.uz) |
--token <token> | ARAL_TOKEN | Bearer token override (JWT or nex_ API token) |
--output <table|json>, -o | ARAL_OUTPUT | Output format (default table) |
export ARAL_TOKEN=nex_xxxxxxxxxxxx
export ARAL_ENDPOINT=https://aralcloud.uz
aral server listJSON output for scripts and AI agents
Add --output json (or -o json) to any command to get machine-readable JSON instead of a table. This is the recommended mode for scripting and AI agents.
aral server list --output json
aral -o json auth whoamiYou can also set it once for the whole session:
export ARAL_OUTPUT=jsonCommands reference
Authentication — aral auth
| Command | Description |
|---|---|
auth login | Log in with email + password and store the token |
auth whoami | Show the current authenticated user |
auth token | Create a non-interactive API token (nex_...) for AI agents / CI; needs --scope or --all |
auth logout | Remove the stored token |
aral auth login --email you@example.com --password 'secret' --org_id org_123
aral auth whoami
aral auth token --name ci --scope servers:read --expires-in-days 365
aral auth logoutProjects — aral project
| Command | Description |
|---|---|
project list | List projects in the active organization |
project use <project_id> | Switch the active project (re-mints the token scoped to it) |
project create --name <name> | Create a project |
project delete <project_id> | Delete a project; refused while it still holds resources |
aral project list
aral project use proj_abc123
aral project delete proj_abc123Deleting a project never deletes what is inside it. A project that still holds servers, volumes, buckets, databases or anything else is refused, and the error names what is blocking it — remove or move those first. The default project cannot be deleted at all.
Servers / VMs — aral server
| Command | Description |
|---|---|
server list | List servers in the active project |
server get <id> | Show one server |
server create | Create a server |
server start <id> | Start a server |
server stop <id> | Stop a server |
server reboot <id> | Reboot a server |
server delete <id> | Delete a server |
server ssh <id> | Print the ssh command to reach a server |
server plans | List available plans |
server regions | List available regions |
server images | List available OS images |
aral server plans
aral server regions
aral server create \
--name web-1 \
--plan-id <plan-id> \
--region hel1 \
--os-image ubuntu-24.04 \
--ssh-key "ssh-ed25519 AAAA... you@host"
aral server list
aral server ssh srv_123
aral server reboot srv_123
aral server delete srv_123TIP
Run aral server plans and aral server regions first — plan ids are catalogue values and change over time, so copy the id you want from that output instead of guessing one.
TIP
--ssh-key can be repeated to add multiple keys. server ssh just prints the ssh command — pipe it or run it yourself.
Volumes — aral volume
| Command | Description |
|---|---|
volume list | List volumes |
volume create | Create a volume |
volume delete <id> | Delete a volume |
volume attach <id> --server-id <id> | Attach a volume to a server |
volume detach <id> | Detach a volume |
aral volume create --name data --size 50 --region hel1
aral volume attach vol_123 --server-id srv_123
aral volume detach vol_123
aral volume delete vol_123DNS — aral dns
| Command | Description |
|---|---|
dns zones | List DNS zones |
dns add-zone --name <domain> | Create a DNS zone |
dns delete-zone <id> | Delete a DNS zone |
dns records <zone> | List records in a zone |
dns add-record <zone> | Create a record in a zone |
aral dns add-zone --name example.com
aral dns zones
aral dns add-record example.com --name www --type A --content 203.0.113.10
aral dns records example.comS3 object storage — aral s3
| Command | Description |
|---|---|
s3 list | List S3 buckets |
s3 create --name <name> | Create a bucket (optional --region) |
s3 delete <name> | Delete a bucket |
aral s3 create --name my-bucket --region hel1
aral s3 list
aral s3 delete my-bucketGit repositories — aral git
| Command | Description |
|---|---|
git list | List repositories in the active project |
git get <name> | Show one repository |
git create <name> | Create a repository (optional --description, --private) |
git delete <name> | Delete a repository |
git clone <name> | Clone a repository into the current directory |
git runs <name> | Show CI/CD pipeline runs for a repository |
aral git create my-app --description "My app" --private
aral git list
aral git clone my-app
aral git runs my-app
aral git delete my-appTIP
git clone shells out to your local git, so make sure git is installed and your SSH/HTTPS credentials are set up.