# CLI overview

> The `openrail` CLI deploys, inspects and manages your services from a terminal or CI, and also answers to `railway`.

The `openrail` CLI deploys, inspects and manages your services from a terminal or CI, and also answers to `railway`.

## Install

The CLI installs on macOS, Linux and Windows (Windows builds are experimental). On macOS or Linux:

```sh
curl -fsSL https://openrail.app/install.sh | sh -s -- --cli
```

It goes to `/usr/local/bin` when that is writable (or you run it as root), else to `~/.local/bin`. Run `openrail alias install` to also answer to `railway`. Release archives for every platform are on the GitHub Releases page.

## Log in and deploy

```sh
openrail login https://console.example.com
cd my-app
openrail init -n my-app
openrail up --new
```

## Commands

| Command | What it does |
|---|---|
| [login](https://openrail.app/docs/cli/login), [logout](https://openrail.app/docs/cli/logout), [whoami](https://openrail.app/docs/cli/whoami) | Manage the stored token |
| [init](https://openrail.app/docs/cli/init), [link](https://openrail.app/docs/cli/link), [unlink](https://openrail.app/docs/cli/unlink) | Create and link projects |
| [status](https://openrail.app/docs/cli/status), [list](https://openrail.app/docs/cli/list), [open](https://openrail.app/docs/cli/open) | See where you are |
| [up](https://openrail.app/docs/cli/up) | Upload this directory and deploy it |
| [redeploy](https://openrail.app/docs/cli/redeploy), [restart](https://openrail.app/docs/cli/restart), [down](https://openrail.app/docs/cli/down) | Act on the active deployment |
| [deploy](https://openrail.app/docs/cli/deploy), [templates](https://openrail.app/docs/cli/templates) | Deploy templates |
| [add](https://openrail.app/docs/cli/add) | Add a database, repo, image or empty service |
| [import](https://openrail.app/docs/cli/import) | Import from Railway, Docker Compose or Heroku |
| [logs](https://openrail.app/docs/cli/logs) | Deploy, build and HTTP logs |
| [variables](https://openrail.app/docs/cli/variables) | List, set and delete variables |
| [run](https://openrail.app/docs/cli/run), [shell](https://openrail.app/docs/cli/shell) | Run local commands with the service's variables |
| [ssh](https://openrail.app/docs/cli/ssh) | Shell inside a running replica |
| [connect](https://openrail.app/docs/cli/connect) | Database clients through a tunnel |
| [domain](https://openrail.app/docs/cli/domain), [tcp-proxy](https://openrail.app/docs/cli/tcp-proxy) | Public endpoints |
| [environment](https://openrail.app/docs/cli/environment), [service](https://openrail.app/docs/cli/service) | Switch and change environments and services |
| [scale](https://openrail.app/docs/cli/scale), [volume](https://openrail.app/docs/cli/volume), [cron](https://openrail.app/docs/cli/cron) | Replicas, volumes and cron runs |
| [metrics](https://openrail.app/docs/cli/metrics), [usage](https://openrail.app/docs/cli/usage) | Resource use |
| [config](https://openrail.app/docs/cli/config) | Export settings to a file |
| [host](https://openrail.app/docs/cli/host), [upgrade](https://openrail.app/docs/cli/upgrade) | Admin: hosts and upgrades |
| [alias](https://openrail.app/docs/cli/alias), [completion](https://openrail.app/docs/cli/completion), [version](https://openrail.app/docs/cli/version) | The CLI itself |

## Next steps

- [Global options](https://openrail.app/docs/cli/global-options)
- [The railway alias](https://openrail.app/docs/cli/railway-alias)
