Skip to content

aether login

Terminal window
aether login

Without flags, the command opens your browser, where you sign in and authorize this machine. Your password, your passkey, your authenticator code: all of it stays in the browser, and the terminal never sees any of it. Once you approve, the CLI gets its own credential and writes it to ~/.aether/credentials.json. On POSIX systems that file is created readable only by you; Windows and some network filesystems have no equivalent mode to set. Sessions last 60 days.

$ aether login
Opening Aether in your browser...
If nothing opens, visit:
https://dashboard.aetherpush.com/cli/authorize?request=...
Waiting for authorization...
Credentials written to /Users/you/.aether/credentials.json. Run aether logout to terminate the session.
Signed in as user@example.com.
This device is now authorized.

While a session is still good, running aether login again says you are already signed in. Run aether logout first if you want to start over. Once a session has expired or been revoked, aether login replaces it without complaint, and the machine keeps one credential rather than collecting a new one each time.

Flag Default Purpose
--device off Print a short code to enter in a browser elsewhere. For SSH sessions, containers, and machines with no browser.
--accessKey, --key none Sign in without prompts, using an access key or an API key. This is the CI path.
--password off Deprecated. Sign in with email and password. Fails on accounts with multi-factor authentication.
--serverUrl production Sign in against a different Aether server. The URL is remembered for the session.

Over SSH, inside a container, or on a locked-down host, ask for a code instead:

Terminal window
aether login --device
Open:
https://dashboard.aetherpush.com/activate
Enter code:
XXXX-XXXX

Open that page in any browser you are signed in to, type the code, and approve. The terminal picks up the approval and finishes. The CLI switches to this by itself when it cannot open a browser or cannot listen for the callback, so you rarely have to ask for it.

Pipelines and other machines keep using a key:

Terminal window
aether login --accessKey $AETHER_API_KEY

Use a deploy-scoped API key, not a session access key. The access keys and API keys page explains which credential belongs where.

The CLI detects CI through the CI variable and refuses browser sign-in there, so a misconfigured pipeline fails loudly instead of hanging on a browser nobody will open.

Every machine you authorize appears under Account → CLI & Devices in the dashboard, with its name, CLI version, and expiry. Revoking one signs that machine out immediately. aether logout does the same thing from the machine itself.