pan account
Sign this machine in to your overdeck.ai account with GitHub’s device flow. Sign-in is
optional: nothing else in the CLI reads the token file, and no command prompts for it.
It is the prerequisite for the directory (PAN-2356)
and Shared Sessions — see anywhere.
login
verification_uri always comes from the account service’s response; pan account never
hardcodes the sign-in host.
The base URL resolves in order:
--base-url, then the OVERDECK_ACCOUNT_URL environment
variable, then the default https://account.overdeck.ai. An invalid URL (wrong scheme, a
path, a query, or a fragment) exits 1 before any network call with
Invalid account service URL: <url>.
An unsupported platform exits 1 before any network call:
The sign-in code expired. Run: pan account login; Cannot reach <baseUrl>: <reason> after the service is unreachable for several consecutive polls; or, if a token arrived but reading the account afterward failed, the token is still saved and it prints Signed in (device <label>, <deviceId>), but could not read the account: <reason>. Run: pan account status.
status
GET /v1/me against the stored base
URL and prints:
Access: expired on <date>; ask the operator to renew the invite.
If this machine’s token was revoked or the account was deleted:
This machine's sign-in is no longer valid (<error>). Run: pan account login, exit 1 — the token file is kept so you
can see this message again rather than silently sign you out. If the account service is
unreachable: Signed in as <login> (account service unreachable: <reason>), exit 1, using
the login cached in the token file.
logout
DELETE /v1/devices/<deviceId>) and
deletes the local token file either way — a 204, 401 or 404 all mean the device is gone or
already invalid:
Not signed in., exit 0, no network call. logout never touches
anything under ${OVERDECK_HOME} besides account.json — not the Session Vault key, not
environment-id.json.
The token file
${OVERDECK_HOME}/account.json, mode 0600, written atomically. Holds baseUrl,
accessToken, deviceId, label, githubLogin, githubId and signedInAt. A corrupt or
unreadable file is never rewritten silently: reading it fails with a message naming the
path and Delete it to sign out locally.
It never holds the Session Vault key, a vault passphrase, or any conversation content —
see pan vault for those.