Skip to content

overlane auth login

Log in: approve a device code on any device, or sign in for this repository with no one at the keyboard

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Log in with a device-style sign-in: it prints a code and a link, opens the browser, waits until you approve it (a phone is fine), then stores the session in the OS keychain (or a 0600 file). Works over SSH and in a cloud session someone is watching, since nothing listens locally. The session lasts 30 days. With –repo, an agent running unattended (a cloud session, a routine, a scheduled job) signs in for the repository it has checked out instead: it proves it can push to a repository connected to an Overlane project through the Overlane GitHub App and gets a one-hour token for that one project. Nobody creates or copies a token. Other commands sign in for the repository on their own when there is no terminal.

Usage

overlane auth login [--service URL] [--no-browser] [--repo] [--dry-run]

Flags

Flag Type Required Default Description
--service string no The service address (default: OVERLANE_SERVICE_URL, then the project’s binding, then the hosted service)
--no-browser boolean no Print the link and code without opening a browser
--repo boolean no Sign in for the checked-out repository instead of as a person (unattended agents)
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane auth login
overlane auth login --no-browser
overlane auth login --repo
overlane auth login --dry-run

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: no. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema auth login.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "signedIn": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "how": {
          "type": "string",
          "enum": [
            "keychain",
            "file"
          ]
        },
        "method": {
          "type": "string",
          "enum": [
            "device",
            "repository"
          ]
        },
        "tenantId": {
          "type": "string"
        },
        "projectId": {
          "type": "string"
        },
        "expiresAt": {
          "type": "string"
        },
        "next": {
          "type": "string"
        }
      },
      "required": [
        "signedIn",
        "service",
        "how",
        "method",
        "tenantId",
        "expiresAt",
        "next"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.