Skip to main content

lium signup

Create a Lium account from the terminal and store the API key it mints.

Use this when you have no account yet. lium init authenticates an account that already exists — it cannot create one.

This is the email path. Confirming the address is optional — it enables password resets and account mail, and does not gate renting. For a signup with no email at all, post to https://lium.io/api/auth/signup instead — see Signing up without an email.

lium signup --email you@example.com

Options​

FlagEffect
--email ADDRESSYour real email address — the confirmation link is sent there. Required.
--name NAMEDisplay name (defaults to the local part of the email)
--password PASSWORDAccount password. One is generated when you omit it.
--jsonPrint machine-readable JSON

Prefer the LIUM_SIGNUP_PASSWORD environment variable over --password: a flag value is left behind in your shell history and in ps output.

What it does​

  1. Creates the account.
  2. Writes the minted API key to ~/.lium/config.ini under api.api_key.
  3. Sets up an SSH key locally: picks the first of ~/.ssh/id_ed25519, id_rsa, id_ecdsa that exists, generates id_ed25519 when none does, and records the path in the config. Nothing is uploaded yet — the public key reaches your Lium account on the first lium up.

After it finishes, lium ls and lium up work with no further setup. The command prints the password — it is your login at lium.io and is not stored anywhere else.

Email confirmation​

Click the link in the "Please confirm your email" message to verify the address for password resets and account email. The separate "Welcome to Celium!" message carries no link. Confirmation does not gate renting; a balance above 15 minutes of the node's hourly price does.

When an account already exists locally​

lium signup refuses to run while an API key is already in effect, rather than creating a second account you cannot reach. Where the key comes from decides how to clear it — the error message names the right one:

# Key stored in ~/.lium/config.ini
lium config unset api.api_key

# Key exported in the environment — `lium config unset` will not help here
unset LIUM_API_KEY

lium signup --email you@example.com

Examples​

lium signup --email ada@example.com
lium signup --email ada@example.com --name Ada
lium signup --email ada@example.com --json
LIUM_SIGNUP_PASSWORD=... lium signup --email ada@example.com

--json output:

{
"api_key": "sk_...",
"email": "ada@example.com",
"next_steps": ["...", "...", "..."],
"password": "generated-or-supplied",
"signup_credit_granted": true,
"ssh_key_configured": true
}

signup_credit_granted answers whether the signup credit landed: true granted, false not granted, null not reported by the backend — read lium balance --json in that case.

If the command fails after the account was created, the error still reports the email and password, so you can log in at lium.io and copy an API key from the dashboard.

See also​