# Install

Install the deplane CLI, log in with your passkey, and check your setup.

Deplane is in an invite-only beta. You need an approved account to log in. Request access at https://deplane.cloud/beta.

## Install the CLI

Pick one of these. Each installs the same signed binary for macOS, Linux, or Windows.

```sh
brew install deplane
```

```sh
curl -fsSL https://deplane.cloud/install | sh
```

The install script checks the binary's signature before it installs it. It stops if the signature does not match.

```sh
npx deplane
```

> These install channels are available with the public beta. Until then, the message we send when you are approved tells you how to get the CLI.

Check that it works:

```sh
$ deplane version
deplane 0.1.0
```

With `--json`:

```json
{
  "version": "0.1.0"
}
```

## Log in

```sh
deplane login
```

The CLI shows an 8-character code and opens https://login.deplane.cloud/device in your browser:

```sh
$ deplane login

To log in, open https://login.deplane.cloud/device and type this code:

    WDJB-MJHT

Only approve it if you just ran this command yourself. The code expires in 10 minutes.

Logged in as you@example.com (organization you-example).
```

What happens in the browser:

1. You sign in, with your passkey if you have one.
2. You type the code from your terminal. The page never fills it in for you from a link, so nobody can trick you into approving their request with a link.
3. The page shows where the request came from: the IP address, an approximate location, the CLI version, and the time. Approve it only if you just ran `deplane login` yourself.
4. You confirm with your passkey.

The CLI stores its token in your operating system's keychain. If there is no keychain, it stores the token in a file in your config folder that only you can read, and tells you where. A CLI login lasts 30 days. You can revoke a login at once. Email notices of new logins are not sent yet, because email sending is not set up.

If you do not have a passkey yet, the first sign-in link we send you when you are approved walks you through creating one. You can use an authenticator app instead if your device has no passkey support. A second factor is always required.

Check who you are logged in as:

```sh
$ deplane whoami
Logged in as you@example.com
Organization: You (you-example)
```

To log out, run `deplane logout`. It revokes the token and removes it from this computer.

## Environment variables

| Variable | What it does |
|---|---|
| `DEPLANE_TOKEN` | Use this token instead of the stored login. For CI, agents, and scripts. Create one with `deplane tokens create`. |
| `DEPLANE_API_URL` | The API to use. Default `https://api.deplane.cloud`. |

When `DEPLANE_TOKEN` is set, `deplane login` refuses to run, because the stored login would not be used. Unset it first. See [Agents, CI, and scripts](agents.md) for how to use tokens.

## Check your setup

`deplane doctor` checks that the API answers, that you are logged in, and whether the current folder is a project Deplane can build. It explains any problem and how to fix it.

```sh
$ deplane doctor
ok   api      The Deplane API at https://api.deplane.cloud answers.
ok   login    Logged in as you@example.com.
ok   project  Detected Next.js 15, Node 22, port 3000.
ok   config   No deplane.toml here; `deplane launch` writes one.
```

Next, deploy your first app with the [Quickstart](quickstart.md).
