Skip to main content
Run Pullfrog on the Claude plan you already pay for, with no Anthropic API bill on top. One command stores the token, and every run on an Anthropic model uses it.
A Claude subscription covers the Anthropic models: Claude Fable, Claude Opus, Claude Sonnet and Claude Haiku. For other providers, see Model access.

Setup

Run this inside a clone of the repository. The CLI uses the GitHub CLI to sign you in, so run gh auth login first if you have not.
The CLI:
  1. Opens a Claude sign-in in your browser. Sign in with the account on the paid plan and approve it.
  2. Receives the token claude setup-token would print: inference-only, valid for a year, starting with sk-ant-oat. Claude Code does not need to be installed.
  3. Saves it to Pullfrog’s encrypted store. Pullfrog refuses a token that Anthropic rejects.
The CLI shows which account signed in. A browser signs in as the account it already holds, so to connect a different one, sign out of Claude in that browser or open the sign-in link in a private window.

Remote machines

The sign-in finishes on localhost, so the browser must be on the machine that runs the CLI. Over SSH, or on Linux with no display, the CLI asks for a token instead: run claude setup-token from Claude Code on any machine with a browser, and paste the token it prints. Pass --paste-token to choose this yourself:
The next run on an Anthropic model uses the subscription. Run the command again to add another account or replace one. Each connection is labelled with the last six characters of its token. With several connections, or an ANTHROPIC_API_KEY beside them, Pullfrog moves to the next credential when one is rejected or out of quota; see multiple subscriptions and fallback.
The Subscriptions row of the Providers section: Claude, Codex / ChatGPT and Grok

Scope

On an organization repository, the CLI asks where to store the token: A personal account has only the account scope, so the CLI does not ask. To skip the prompt or run outside a checkout, pass the scope as a flag:

Credential refresh

The token is static and lasts a year. Pullfrog stores no refresh token, so nothing rotates between runs. Run npx pullfrog auth claude again when the token expires or you revoke it, and pick the old connection to replace.

Troubleshooting