deplaneDocs Dashboard

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.io/beta.

Install the CLI

The CLI is one binary for macOS (Apple silicon and Intel), Linux (x86-64 and Arm64), and Windows (x86-64). Every release is signed: its list of SHA-256 sums carries Deplane's signature. Every install method below gets the same binary. The binaries themselves are not code-signed for Windows or notarized for macOS yet, so Windows SmartScreen may warn about the download.

The first public release of the CLI is on its way. Until it is out, the message we send when you are approved tells you how to get the CLI.

Install script

On macOS and Linux:

curl -fsSL https://deplane.io/install | sh

The script picks the build for your computer and downloads it from https://deplane.io/cli/. Before it installs anything, it checks two things:

  1. The release's list of SHA-256 sums carries a valid signature from Deplane's release key. The key is built into the script. The version to install comes from that signed list too.
  2. The download matches its sum on that signed list.

If either check fails, the script stops and installs nothing. It needs curl, tar, and ssh-keygen from OpenSSH 8.2 or newer. macOS and current Linux distributions include all of them. GNU wget works instead of curl.

It installs deplane into ~/.local/bin if that folder is on your PATH, or else into /usr/local/bin if you can write to it. It asks before it uses sudo, and without a terminal it never does. It does not replace a newer deplane in that folder, or one Homebrew installed. To choose for yourself:

VariableWhat it does
DEPLANE_INSTALL_DIRInstall into this folder.
DEPLANE_VERSIONInstall this version instead of the newest, such as 0.1.0. This is also how you go back to an older version.

To update, run the script again.

Homebrew

brew install deplane-cloud/tap/deplane

The Homebrew tap opens with the first public release.

npm

After the first npm release, this will work:

npx @deplane/cli version

The @deplane/cli package holds no binary. On its first run it downloads the release of its own version and checks the signature and the sum the same way the install script does. It keeps the binary in your cache folder and checks it again before each run. It needs Node.js 20 or newer, and it does not use HTTPS_PROXY: behind a proxy, use the install script.

The npm package is not published yet. Until it is, do not install any other package that claims to be the Deplane CLI.

Windows

Download deplane_VERSION_windows_amd64.zip from https://deplane.io/cli/VERSION/, where VERSION is the newest version: the version in the file names at https://deplane.io/cli/latest. Check it as shown below, unzip it, and put deplane.exe in a folder on your PATH. The check needs Windows 11, or OpenSSH 8.2 or newer on Windows 10. After the first npm release, npx @deplane/cli works on Windows too.

Check a download yourself

Every release has a list of SHA-256 sums, SHA256SUMS, and its signature, SHA256SUMS.sig, made with Deplane's release key:

ssh-ed25519 NO_KEY_YET

Its fingerprint is SHA256:NO_KEY_YET. The same key is in the install script and the npm package. It is also published on GitHub, apart from Deplane's own servers, at https://github.com/deplane-cloud/homebrew-tap. If the two differ, do not install, and write to security@deplane.io.

https://deplane.io/cli/latest is the newest release's SHA256SUMS followed by its signature. To check a download by hand, here for Linux on x86-64:

V=$(curl -fsSL https://deplane.io/cli/latest | sed -n 's/.*  deplane_\([^_]*\)_linux_amd64\.tar\.gz$/\1/p')
for f in SHA256SUMS SHA256SUMS.sig "deplane_${V}_linux_amd64.tar.gz"; do
  curl -fsSLO "https://deplane.io/cli/$V/$f"
done
echo "release@deplane.io ssh-ed25519 NO_KEY_YET" > deplane-release.allowed
ssh-keygen -Y verify -f deplane-release.allowed -I release@deplane.io -n deplane-cli -s SHA256SUMS.sig < SHA256SUMS
grep "deplane_${V}_linux_amd64.tar.gz" SHA256SUMS | sha256sum -c

ssh-keygen prints Good "deplane-cli" signature for release@deplane.io, and sha256sum prints OK. On macOS, use shasum -a 256 -c instead of sha256sum -c. If the key above reads NO_KEY_YET, the first release is not out yet.

On Windows, in PowerShell, with VERSION set to the newest version:

$V = "VERSION"
foreach ($f in "SHA256SUMS", "SHA256SUMS.sig", "deplane_${V}_windows_amd64.zip") { Invoke-WebRequest "https://deplane.io/cli/$V/$f" -OutFile $f }
Set-Content -Encoding ascii -NoNewline deplane-release.allowed "release@deplane.io ssh-ed25519 NO_KEY_YET"
cmd /c "ssh-keygen -Y verify -f deplane-release.allowed -I release@deplane.io -n deplane-cli -s SHA256SUMS.sig < SHA256SUMS"
(Get-FileHash -Algorithm SHA256 "deplane_${V}_windows_amd64.zip").Hash.ToLower()
Select-String windows_amd64.zip SHA256SUMS

ssh-keygen prints the same Good line. The sum Get-FileHash prints must be the one on the zip's line in SHA256SUMS.

What the checks protect against

After installing

Check that it works:

$ deplane version
deplane 0.1.0

With --json:

{
  "version": "0.1.0"
}

Log in

deplane login

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

$ deplane login

To log in, open https://app.deplane.io/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:

$ 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

VariableWhat it does
DEPLANE_TOKENUse this token instead of the stored login. For CI, agents, and scripts. Create one with deplane tokens create.
DEPLANE_API_URLThe API to use. Default https://api.deplane.io.

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 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.

$ deplane doctor
ok   api      The Deplane API at https://api.deplane.io 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.

This page is also available as Markdown. AI agents can start at /llms.txt.