Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.murmur.dev/llms.txt

Use this file to discover all available pages before exploring further.

Opens your browser for Claude authentication, completes the OAuth flow, and prints the resulting tokens to stdout. The upload subcommand stores the tokens as tenant secrets instead.

Synopsis

murmur auth
murmur auth upload [flags]

Subcommands

SubcommandDescription
(none)Run the OAuth flow and print tokens to stdout as export statements.
uploadRun the OAuth flow and store both tokens as tenant secrets in the catalog.

Arguments

murmur auth upload

NameTypeRequiredDescription
--name-prefixstringnoPrefix for the stored secret names. Default: CLAUDE_. Produces secrets named <prefix>OAUTH_TOKEN and <prefix>OAUTH_REFRESH_TOKEN.

How the flow works

  1. murmur auth starts a local HTTP server on a random port.
  2. Your browser opens the Claude authorization page.
  3. After you approve, Claude redirects to the local server with an authorization code.
  4. The CLI exchanges the code for an access token and refresh token.
The flow times out after 5 minutes if you do not complete authorization.

Examples

murmur auth
Opening browser for Claude authentication...
If it doesn't open, visit:
https://claude.ai/oauth/authorize?response_type=code&client_id=...

export CLAUDE_CODE_OAUTH_TOKEN=eyJ...
export CLAUDE_CODE_OAUTH_REFRESH_TOKEN=dGhp...
# Expires in: 31536000 seconds | Scopes: user:profile user:inference user:file_upload
Pipe into eval to set the tokens in your current shell:
eval "$(murmur auth)"

Upload tokens as tenant secrets

murmur auth upload
Authenticated (expires in 31536000 seconds, scopes: user:profile user:inference user:file_upload)
Set secret "CLAUDE_OAUTH_TOKEN"
Set secret "CLAUDE_OAUTH_REFRESH_TOKEN"

Secrets stored. Select them in your service profile's Codex Credentials section.

Upload with a custom prefix

murmur auth upload --name-prefix MY_
Authenticated (expires in 31536000 seconds, scopes: user:profile user:inference user:file_upload)
Set secret "MY_OAUTH_TOKEN"
Set secret "MY_OAUTH_REFRESH_TOKEN"

Secrets stored. Select them in your service profile's Codex Credentials section.

Errors

CodeMeaningWhat to do
oauth state mismatchThe state parameter in the callback did not match.Re-run murmur auth. This can happen if multiple auth flows run concurrently.
timed out waiting for authenticationThe 5-minute timeout elapsed before you completed the browser flow.Re-run murmur auth and complete the browser authorization promptly.
oauth flow returned empty tokensClaude returned an incomplete token response.Re-run murmur auth. If the problem persists, check your Claude account status.
UNAUTHENTICATEDIdentity token is missing or expired (upload subcommand).Run murmur setup to configure your profile.