Repository navigation
Authentication
lory offers seamless authentication designed for both interactive developer workstations and automated headless CI/CD systems.
lory supports three primary authentication paths:
| Mode | Command / Environment | Use Case |
|---|---|---|
| Talon OAuth 2.0 PKCE | lory login |
Interactive terminal sessions on local developer machines |
| API Key Flag | lory login --api-key <key> |
Standalone API key login without opening a browser |
| Environment Variable |
LORIKEET_API_KEY or LORIKEET_TOKEN
|
CI/CD pipelines, Docker containers, headless agents |
To log in interactively:
lory login-
--port <port>: Specify a custom port for the local callback listener (default:54321). If port 54321 is occupied,loryautomatically falls back to an ephemeral OS-assigned port. -
--api-key <key>: Pass an API key directly without launching the browser. -
--base-url <url>: Override the Lorikeet Security platform base URL (default:https://lorikeetsecurity.com).
-
lorystarts an HTTP loopback server listening on127.0.0.1:54321. - Generates an RFC 7636 PKCE
code_verifier(32 bytes entropy) and SHA-256code_challenge. - Opens the system default browser to:
https://lorikeetsecurity.com/talon/mcp/oauth/authorize?response_type=code&client_id=...&redirect_uri=http://127.0.0.1:54321/callback&code_challenge=...&code_challenge_method=S256&state=... - Upon successful login in the browser, Talon redirects back to the loopback callback.
- The loopback server renders the Lorikeet Security Talon Claw Dual-Tone Shield page with confirmation of your identity.
- The CLI exchanges the authorization code and
code_verifierat:POST https://lorikeetsecurity.com/talon/mcp/oauth/token - Extracts the user profile (user email, company name, company ID). If the token endpoint omits these,
loryautomatically resolves identity via/talon/api/whoamior/talon/mcp/oauth/userinfo. - Saves credentials to disk and sets the active token.
Credentials are saved in:
~/.lorikeet/credentials.json
On systems conforming to XDG standards, $XDG_CONFIG_HOME/lorikeet/credentials.json is respected if $HOME/.lorikeet is unavailable.
The credentials directory and file are created with strict 0700 directory permissions and 0600 (-rw-------) file permissions to ensure that only the owning operating system user can read or write tokens.
{
"access_token": "talon_token_94a8e...",
"refresh_token": "talon_refresh_b32c1...",
"user_email": "engineer@acme.com",
"org_name": "Acme Security",
"org_id": "org_acme_prod",
"auth_method": "talon-oauth",
"expires_at": "2026-11-28T19:30:00Z"
}Inspect your currently active Talon session, token expiration, and organization context:
lory whoami User: engineer@acme.com
Organization: Acme Security (ID: org_acme_prod)
Auth Method: talon-oauth
Session: Active (Expires: 2026-11-28 19:30:00)
Token: talon_token_94a8... [VALID]
To output machine-readable JSON (useful for scripts):
lory whoami --format=jsonTo clear stored session tokens and revoke active credentials:
lory logoutThis immediately deletes ~/.lorikeet/credentials.json and purges any in-memory cached tokens.
Developers who possess a direct Talon Access Token can configure it directly:
# Set an access token
lory token set talon_token_abc12345
# View the active token
lory token show
# Clear the token
lory token clearAlternatively, set the environment variable:
export LORIKEET_TOKEN="talon_token_abc12345"Lorikeet Security Lory CLI • Autonomous AI Security Testing & PTaaS Platform