# The aria command line

> Install the aria CLI and use it: sign in, link a repository, deploy, check, read logs, manage variables and databases. Every command and flag.

Source: https://getaria.cloud/docs/cli (updated 1 November 2026)

The `aria` command line deploys and runs your app from a terminal. Install it with one command, sign in with a code you confirm in Aria, and from then on `aria deploy`, `aria status`, `aria check` and `aria logs` do what the dashboard does. It needs Node.js 22 or newer.

## How do I install it?

```bash
curl -fsSL https://api.getaria.cloud/v1/downloads/cli/install.sh | sh
```

The script checks your Node.js version, downloads the CLI, verifies its checksum, installs it as `~/.aria/bin/aria` and remembers which Aria it came from. If `~/.aria/bin` is not on your `PATH`, the script prints the line to add. Check it with:

```bash
aria --version
```

## How do I sign in?

```bash
aria login
```

The terminal shows a code. Confirm it in Aria, on the web or in the app, and choose which workspace and project the terminal can reach. You never type a password into the terminal. Useful options:

- `--no-browser` prints the code and the link without opening a browser.
- `--app` confirms the code in the Mac app instead of the browser.
- `--name NAME` names this terminal in your list of keys.

`aria whoami` shows who and what the terminal is signed in to. `aria logout` signs out and revokes the terminal's access.

## How do I connect a repository?

```bash
aria link
aria init
```

`aria link` chooses which project this repository deploys to and writes `.aria/link.json` at the repository root. `aria init` does that if needed, then installs the Aria skill for your agent into `.claude/skills/aria/SKILL.md`, adds or refreshes an Aria section in `AGENTS.md`, and connects Claude Code over MCP. Running it twice changes nothing. Options are `--no-mcp` and `--reconnect`.

To connect a different agent:

```bash
aria mcp add --agent codex
```

See [Connect a coding agent](https://getaria.cloud/docs/agents). Inside the Mac app and the web dashboard you can do most of this by asking [Aria AI](https://getaria.cloud/docs/aria-ai).

## What commands are there?

| Command | What it does |
|---|---|
| `aria login [--no-browser] [--app] [--name NAME]`, `logout`, `whoami` | Sign in, sign out, show who you are. |
| `aria link [--workspace NAME]` | Choose the project this repository deploys to. |
| `aria init [--no-mcp] [--reconnect]` | Install the Aria skill, update `AGENTS.md`, connect MCP. |
| `aria mcp add --agent AGENT` | Add Aria to `claude-code`, `codex`, `gemini-cli`, `antigravity`, `cursor` or `other`. Options: `--app wsp_…`, `--can LIST`, `--no-browser`, `--in-app`. |
| `aria deploy [SERVICE] [--wait]` | Apply `aria.yaml`, or deploy one service. |
| `aria status` | List services with their status and addresses. |
| `aria check` | Check every service, database, migration, Supabase part and domain. Exits 1 if anything fails. |
| `aria logs [SERVICE] [--follow] [--lines N]` | Show recent output. `N` is 1 to 2000, default 200. |
| `aria open [SERVICE]` | Open the service's web address. |
| `aria env ls` | List variables, their sources and whether they are set. |
| `aria env add NAME [--service SVC] [--stdin]` | Set a value with hidden input. |
| `aria env import FILE [--yes] [--no-deploy]` | Send a `.env` file's values to Aria. Prints names only. |
| `aria env rm NAME [--service SVC]` | Remove a value you set. |
| `aria env pull [--file F] [--service SVC]` | Write values to a local file, after you approve it in Aria. |
| `aria db url [--database NAME] [--ttl MIN] [--read-only] [--owner]` | A temporary database login, after you approve it. |
| `aria db migrate FILE [--database NAME] [--name N]` | Run a SQL file once, after you approve it. |

Options on every command:

| Option | What it does |
|---|---|
| `--workspace NAME` | The project to act on. The default is the repository's link. |
| `--api URL` | The Aria API to talk to. The default is the repository's link, then the one you installed from. |
| `--json` | Machine-readable output. |
| `-h`, `--help` | Show help. |
| `-v`, `--version` | Show the version. |

## What does deploying look like?

```bash
aria deploy --wait
```

This applies `aria.yaml` to the whole project and follows each step until it finishes. Without `--wait` it prints an operation id and returns. If `aria.yaml` changed since the last deploy, `aria status` tells you. Once the app is live, pushing to GitHub deploys the services your commit touched.

```bash
aria deploy web
aria logs web --follow
```

## What waits for my approval?

Some commands ask for your approval in the Aria app, and wait until you give it: `aria env pull`, `aria db url` and `aria db migrate`. They reveal secrets or change data, and an agent can drive a terminal, so a typed confirmation in the terminal is not enough. Secret values are typed by a person: `aria env add` refuses to run without a person at the keyboard unless you pass `--stdin`.

## How do agents use the CLI?

Add `--json` to get output a program can read. `aria check --json` exits 1 when something fails, which makes it easy to use in a loop that fixes things. `aria env import` prints names, never values, so it is safe for an agent to run with your approval.

## What are the exit codes?

`0` means success. `1` means a failure, including `aria check` finding a failing check. `2` means a usage error, such as a missing argument.

Next: [The safety model: what agents can do on Aria](https://getaria.cloud/docs/mcp)
