Username/Password
Register
| Field | Type | Required | Description |
|---|---|---|---|
username | string | Yes | 2-50 chars, alphanumeric + hyphens/underscores |
password | string | Yes | 3-100 chars |
email | string | No | Valid email address |
{ token, user: { id, username, email } }
Login
| Field | Type | Required |
|---|---|---|
username | string | Yes |
password | string | Yes |
{ token, user: { id, username, email, avatarUrl } }
Local Desktop Session
x-openlinear-client: desktop header.
The username is auto-generated from your OS username (e.g., local-kaizen).
{ token, user: { id, username, email, avatarUrl, githubId } }
GitHub OAuth
Browser Flow
Callback
openlinear://callback?token=<jwt>.
Desktop Local Login
gh CLI or environment). Requires x-openlinear-client: desktop.
Check Local Auth
Device Flow
For headless environments or when browser OAuth isn’t available.Start
x-openlinear-client: desktop.
Poll
| Field | Type | Required |
|---|---|---|
deviceCode | string | Yes |
{ status: "pending" } (202) or { status: "complete", token, user } (200).
GitHub Account Linking
Get Connect URL
Confirm Connection
| Field | Type | Required |
|---|---|---|
github_connect_token | string | Yes |
Current User
accessToken and passwordHash). Requires Bearer auth.
Logout
{ success: true }. Token invalidation is handled client-side.
