> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pullfrog.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI configuration

> Inspect and change repository settings, organization defaults, and stored credentials.

```bash theme={null}
pullfrog config list
pullfrog config get model
pullfrog config set model anthropic/claude-opus
pullfrog config unset model
```

## CLI compatibility

The API rejects incompatible CLI contracts before performing an operation. Compatible releases continue working; an upgrade is required only when the contract changes. Older clients that do not report a contract version are also rejected.

```bash theme={null}
npm install --global pullfrog@latest
# or run without a global installation
npx pullfrog@latest config list
```

Restart any running `pullfrog watch` or MCP process after upgrading. If the latest CLI still reports incompatibility, wait for the matching server deployment to complete and retry.

The CLI authenticates with the GitHub user signed in through `gh auth login`. Commands use the current repository's GitHub `origin` unless an explicit scope is supplied.

## Scope

```bash theme={null}
pullfrog config get model --repo acme/api
pullfrog config set model openai/gpt-sol --org acme
pullfrog config set enabled false --repo acme/api
```

The `--repo` option (alias `-R`) selects one repository. The `--org` option selects organization defaults or a personal account's shared settings. They cannot be combined.

Disabling a repository affects that repository only. Re-enabling does not install a missing workflow; use `pullfrog init` for setup.

## Keys and values

```bash theme={null}
pullfrog config keys
pullfrog config keys review
pullfrog config keys --org acme
pullfrog config describe shell
```

The `keys` and `describe` commands work offline. They describe the installed CLI's supported keys, not the caller's permissions. The authenticated `list` command shows write access and the source of each value.

| Repository keys                                                                                                                                     | Values                                     |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| `enabled`, `progress-comments`, `oss`, `signed-commits`, `auto-merge`                                                                               | `true` or `false`                          |
| `model`                                                                                                                                             | `provider/model`, or unset                 |
| `effort`                                                                                                                                            | Number from `0` to `1`, or unset           |
| `instructions`, `env-allowlist`                                                                                                                     | Text, or unset                             |
| `push`, `shell`                                                                                                                                     | `disabled`, `restricted`, `enabled`        |
| `hooks.setup`, `hooks.post-checkout`, `hooks.pre-push`, `hooks.stop`                                                                                | Script text, or unset                      |
| `prompts.review`, `prompts.build`, `prompts.plan`                                                                                                   | Text, or unset                             |
| `mention.enabled`, `mention.non-collaborators`                                                                                                      | `true` or `false`                          |
| `mention.instructions`                                                                                                                              | Text, or unset                             |
| `review.mode`                                                                                                                                       | `none`, `links`, `agent`                   |
| `review.non-collaborators`, `review.re-review`, `review.approve`, `review.drafts`, `review.own-prs`, `review.status-check`, `review.approval-check` | `true` or `false`                          |
| `issue.mode`                                                                                                                                        | `none`, `links`, `plan`, `build`, `custom` |
| `issue.instructions`, `label.instructions`                                                                                                          | Text, or unset                             |
| `issue.non-collaborators`, `label.enabled`, `address-reviews.enabled`, `fix-ci.own-prs`, `fix-ci.reviewed-prs`                                      | `true` or `false`                          |

| Organization keys                 | Values                                            |
| --------------------------------- | ------------------------------------------------- |
| `model`, `effort`, `instructions` | Same types as the repository keys                 |
| `xrepo.brief`                     | Text, or unset                                    |
| `billing.mode`                    | `byok`, `router`                                  |
| `billing.auto-reload`             | `true` or `false`                                 |
| `billing.reload-threshold-usd`    | Whole USD, `5`–`10000`                            |
| `billing.reload-amount-usd`       | Whole USD, `10`–`100000`                          |
| `billing.monthly-limit-usd`       | Whole USD, `10`–`1000000`, or unset for unlimited |
| `billing.limit-mode`              | `hard_cap`, `alert_only`                          |

### Inherited defaults

When the repository has no model or effort override, `get` prints the organization default. With neither override set, model prints `auto` and effort prints `0.5`. Unsetting a repository override restores inheritance.

These are configured defaults, not predictions of the next run. Trigger overrides, task flags, workflow environment, credentials, and funding can change runtime selection. Outside collaborators cannot read private org defaults; an inherited value reports unavailable to them.

### Text and scripts

```bash theme={null}
pullfrog config set instructions --file instructions.md
pullfrog config set hooks.setup --file setup.sh
pullfrog config set prompts.review 'Check authorization boundaries.'
pullfrog config unset prompts.review
```

Use `--file -` to read text from stdin. Prompt edits affect only the named prompt. The environment allowlist uses one variable name per line.

### Confirmations

Consequential changes prompt before writing: disabling a repo or its OSS subsidy, widening permissions or environment access, allowing non-collaborators or approving reviews, enabling auto-merge, and increasing automatic charging exposure. Ordinary edits and reductions do not prompt.

Without a terminal, consequential writes require `--yes`. Enabling auto-merge also requires `--ack-auto-merge`; interactively, type `MERGE`. Confirmation never grants permission.

```bash theme={null}
pullfrog config set enabled false --repo acme/api --yes
pullfrog config set auto-merge true --yes --ack-auto-merge
```

The `oss` setting uses an existing funding grant; it does not enroll a repository. Enabling a grant can clear an incompatible model override, which the CLI reports. Signing and auto-merge remain subject to entitlement and runtime gates.

## Secret names and values

```bash theme={null}
pullfrog secret list
pullfrog secret list --org acme
pullfrog secret set OPENAI_API_KEY --org acme
pullfrog secret set SERVICE_TOKEN --file ./token --repo acme/api
pullfrog secret delete SERVICE_TOKEN --repo acme/api --yes
```

The list shows **names only**, including inherited org names for a repo. Values are never returned. Repository secrets override identically named organization secrets. Deleting a repo override exposes the org value again.

The `set` command prompts for a masked value or reads one from `--file PATH` (`-` for stdin). Secret values are not accepted as command arguments. Multiple names prompt for multiple values and save together, useful for custom provider credentials. File input accepts one name at a time. GitHub Actions secrets are separate; these commands manage Pullfrog's secret store.

Subscription credentials use the existing provider flows:

```bash theme={null}
pullfrog auth codex --org acme
pullfrog auth claude --repo acme/api
pullfrog auth grok --org acme
```

## Permissions

| Change                                                               | Required access |
| -------------------------------------------------------------------- | --------------- |
| Ordinary repository settings                                         | Repo write      |
| Push, shell, environment allowlist, signing, auto-merge, OSS subsidy | Repo admin      |
| Repository secrets                                                   | Repo admin      |
| Organization defaults and instructions                               | Org member      |
| Billing settings and organization secrets                            | Org owner       |

Personal-account owners have the corresponding organization-owner permissions. The GitHub token must also have access to the target. Suspended installations cannot be configured.

## Console

```bash theme={null}
pullfrog console
pullfrog console --org acme
pullfrog console --repo acme/api
pullfrog console --no-browser
```

The command prints the selected console URL and opens it when stdout is a terminal. Use the console for payment methods, subscriptions, advanced trigger overrides, learnings, and custom aliases. There is no bulk apply/export or JSON-output contract for configuration.
