---
sidebar_position: 39
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# `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`](./init) authenticates an account that already exists — it cannot create one.

```bash
lium signup --email you@example.com
```

## Options

| Flag | Effect |
|------|--------|
| `--email ADDRESS` | Your real email address — the confirmation link is sent there. **Required.** |
| `--name NAME` | Display name (defaults to the local part of the email) |
| `--password PASSWORD` | Account password. One is generated when you omit it. |
| `--json` | Print 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`](./up).

After it finishes, [`lium ls`](./ls) and [`lium up`](./up) work with no further setup. The command prints the password — it is your login at [lium.io](https://lium.io) and is not stored anywhere else.

## Confirm your email before renting

Renting stays blocked until you click the link in the **"Please confirm your email"** message. The separate "Welcome to Celium!" message carries no link.

## 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:

```bash
# 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

```bash
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:

```json
{
  "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`](./balance) 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](https://lium.io) and copy an API key from the dashboard.

## See also

- [`lium init`](./init) — authenticate an existing account
- [`lium balance`](./balance) — check the balance
- [`lium ls`](./ls) — find a node to rent
