For AI agents: read the documentation index. Documentation pages are available as Markdown by appending .md to their URL, or requesting Accept: text/markdown.

Namera Docs

namera login

Authorize a terminal connection through your browser.

Authorize a terminal connection through your browser.

Usage

namera login

Output

OK Signed in as "personal".
-> Run namera wallet list to see your wallets.

Example output uses fixture accounts and hashes, captured with the CLI's output formatters. Plain-text output is shown without terminal colors; your values and relative expiry dates will differ.

Before approval, the verification URL and code are printed to stderr. The successful JSON result contains profile, status: "connected", and the full CLI actor record. No access or refresh token is printed.

{
  "profile": "personal",
  "status": "connected",
  "actor": {
    "type": "cli",
    "data": {
      "actorId": "0199dfe1-0000-7000-8000-000000000014",
      "organizationId": "0199dfe1-0000-7000-8000-000000000004",
      "organizationName": "Example workspace",
      "grants": [
        {
          "grant": {
            "id": "0199dfe1-0000-7000-8000-000000000013",
            "organizationId": "0199dfe1-0000-7000-8000-000000000004",
            "actorId": "0199dfe1-0000-7000-8000-000000000014",
            "sessionKeyId": "0199dfe1-0000-7000-8000-000000000002",
            "grantedByActorId": "0199dfe1-0000-7000-8000-000000000015",
            "revokedAt": null,
            "revokedByActorId": null,
            "createdAt": "2026-10-11T09:00:00.000Z"
          },
          "sessionKey": {
            "id": "0199dfe1-0000-7000-8000-000000000002",
            "organizationId": "0199dfe1-0000-7000-8000-000000000004",
            "walletId": "0199dfe1-0000-7000-8000-000000000001",
            "signingKeyId": "0199dfe1-0000-7000-8000-000000000005",
            "createdByActorId": "0199dfe1-0000-7000-8000-000000000015",
            "metadata": {
              "version": 1,
              "name": "Example session",
              "logo": { "type": "emoji", "value": "🔑" },
              "description": "SDK test session"
            },
            "policyHash": "0x3333333333333333333333333333333333333333333333333333333333333333",
            "status": "active",
            "revokedAt": null,
            "revokedByActorId": null,
            "createdAt": "2026-10-11T09:00:00.000Z",
            "namespace": "eip155",
            "policies": [
              {
                "id": "0199dfe1-0000-7000-8000-000000000016",
                "appliesTo": "both",
                "type": "evm.chain-allowlist",
                "version": 1,
                "chainIds": ["eip155:84532"]
              }
            ]
          }
        }
      ],
      "authorization": {
        "id": "0199dfe1-0000-7000-8000-000000000017",
        "clientId": "0199dfe1-0000-7000-8000-000000000018",
        "scopes": [
          "wallet:read",
          "session-key:read",
          "execution:read",
          "execution:execute",
          "signature:create",
          "offline_access"
        ],
        "metadata": {
          "type": "cli",
          "version": 1,
          "deviceName": "Example laptop",
          "cliVersion": "1.2.0",
          "platform": "darwin"
        },
        "expiresAt": null,
        "lastUsedAt": "2026-10-11T09:10:00.000Z",
        "createdAt": "2026-10-11T09:00:00.000Z"
      }
    }
  }
}

Options

--profile

  • Type: string
  • Default: personal

Save the connection under this name. Pass it to later commands with --profile. Logging in again replaces that profile's saved connection.

--host

  • Type: absolute API URL
  • Default: https://api.namera.ai

Connect to this API origin. Login uses this flag, not NAMERA_API_URL. For local development, pass --host http://localhost:8080.

--device-name

  • Type: string
  • Default: Namera CLI on <platform>

Name shown during consent and in CLI execution history. Choose a recognizable device name without secrets:

namera login --profile work --device-name "Work laptop"

The command also accepts global options: --output pretty|json, --quiet, and --help.

Browser Approval

Approve access only to the active session keys this connection needs. If the browser cannot open, visit the printed URL and enter the code. Login waits for approval and expires if you do not complete it in time.

Credentials are saved in the OS keyring. Imported signing keys are separate from the login connection. Use Authentication for API-key automation and sign-out behavior.

Errors

Failures exit nonzero and are written to stderr. With --output json, inspect error.code and error.nextStep. See Output and Errors.