Credential matrix
A PAT cannot elevate the owning user’s org/project role.
Personal access tokens
- Prefix:
nmp_ - Created in Settings → API tokens (Clerk session required)
- Stored by
nmpin the OS keyring when available, with a0600file fallback - Env override:
NMP_API_TOKEN
Scopes
Write routes that accept PATs require explicit scopes (for exampleimports:write, exports:write). Routes that omit PAT scopes reject tokens entirely and stay Clerk-session only (invites, profile mutations, many web-internal writes).
workspace:read is the default floor for authenticated read APIs when using a PAT.
Token lifecycle API
These operations are Clerk-session only (PATs receive403):
GET/POST /api/v1/users/me/tokensDELETE /api/v1/users/me/tokens/{token_id}
Example
docs/adr/0002-developer-api-cli-boundary.md) for the full stability boundary.
