A provider is an external service authsome can authenticate against —Documentation Index
Fetch the complete documentation index at: https://authsome.mbajaj.me/llms.txt
Use this file to discover all available pages before exploring further.
github, google, openai, and so on. Each provider is described by a JSON definition that tells authsome which authentication flow to run, where the OAuth endpoints live, and how to inject credentials into outbound requests.
The provider registry is the system that resolves a provider name to its definition.
Resolution order
When authsome looks up a provider by name, it checks two sources in this order:- User overrides at
~/.authsome/providers/<name>.json. These always win. - Bundled providers shipped inside the
authsomepackage (src/authsome/auth/bundled_providers/).
~/.authsome/providers/.
Provider sources
authsome list shows whether each provider came from the bundled set or from a user-registered file.
--json output exposes the same split as bundled and custom arrays.
What a provider definition contains
Every provider definition declares:- An identity (
name,display_name). - An auth type (
oauth2orapi_key) and a default flow (pkce,device_code,dcr_pkce, orapi_key). - A flow-specific config block (
oauthorapi_key). - An optional
host_urlfor proxy routing. - An optional
export.envmap describing which environment variables hold which credential fields.
Bundled providers do not imply bundled credentials
A bundled provider definition only describes how to talk to a service. It does not include OAuth client credentials. The first time you log in to an OAuth2 provider, authsome collects yourclient_id and client_secret through a secure browser bridge and stores them encrypted in your profile.
For services that support Dynamic Client Registration (DCR), the dcr_pkce flow registers a fresh OAuth client automatically — no client_id collection needed.
Multi-tenant and self-hosted providers
For services where the base URL varies per deployment (GitHub Enterprise, Okta, GitLab self-managed), the provider definition usesoauth.base_url as a default and {base_url} as a placeholder in URL fields:
authsome login, the user is prompted for the base URL with the JSON value as the default. A custom base URL is saved to the profile and used for all future token refreshes on that connection.
Adding your own providers
Two ways:- Drop a file at
~/.authsome/providers/<name>.json. Authsome picks it up on the next CLI invocation. - Register through the CLI.
authsome register ./acmecrm.jsonvalidates the JSON, copies it into~/.authsome/providers/, and confirms the new provider appears inauthsome list.
Override a bundled provider
To override a bundled provider — for example, to add a scope to GitHub — copy the bundled JSON, edit it, and place it under~/.authsome/providers/github.json. Authsome resolves your file first.