Skip to main content
Reference
Flags
Flags are double-dash shortcuts (
So
Built-in flags are stripped from the prose before it reaches the agent — they configure the run, they aren’t part of the prompt.
A model flag in your own
The default is 1 hour. The repo’s timeout setting is the repo-level default and resolves into the leveled stack like any other flag.
Cross-repo access is always bounded by the triggering user’s own GitHub permissions —
--xrepo, --opus, --timeout=30m, --refactor) you can drop into any instruction Pullfrog reads. Some are custom aliases you define for reusable text; others are built-in flags that change how a run behaves (model, timeout, cross-repo access). All of them resolve through one leveled pass so the most specific instruction wins.
Where flags are read
Pullfrog assembles instructions from three levels, most general first:- Org instructions — apply to every repo in the organization
- Repo instructions — apply to every run in the repository
- The per-run request — your
@pullfrogprompt when you tagged Pullfrog, otherwise the trigger’s fallback instructions (most specific)
@pullfrog makes your prompt the request, and the trigger’s fallback instructions don’t apply.
Flags and standing instructions resolve when Pullfrog dispatches a run from a GitHub event. Runs you trigger directly with a raw prompt (the headless action) bypass this resolution — configure those runs through the action’s own inputs instead.
Custom flags (aliases)
A custom flag is a bash-style text alias: define--tag once, and every occurrence expands inline to its replacement text. Use them for reusable snippets — a --refactor that expands to your refactoring checklist, a --security that pastes your review rubric.
Custom flags can be defined at the org level (available to every repo) and the repo level (a repo alias shadows an org alias with the same name). The tag must start with a letter and may contain letters, numbers, underscores, and hyphens. Tags are case-sensitive — --refactor and --Refactor are different flags.
Because aliases expand before built-in flags resolve, an alias whose text contains a built-in flag just works:
@pullfrog fix the flaky test --ship runs on Claude Opus with no timeout. Expansion is single-pass: an alias that expands to another alias is not re-expanded.
Creating a flag
- Open your repository (or organization) in the Pullfrog console
- Scroll to the Flags section
- Click Add flag
- Enter a tag (e.g.
refactor) and the replacement text
Precedence
Built-in flags resolve last-occurrence-wins across the whole leveled stack. Reading org → repo → per-run request left to right, the last value of a given flag wins, so a more specific level always overrides a more general one:Built-in flags
Model
Override the model for a single run. Family flags resolve to the latest version of that model and inherit your repo’s current provider when possible:@pullfrog prompt is an explicit request: if the run can’t serve it (no provider key, not funded by an OSS subsidy, or not servable by Pullfrog Router) the run fails fast with an actionable error instead of silently downgrading. A model flag in org/repo instructions or a trigger’s fallback instructions is a standing default — if it’s unavailable, the run quietly falls back to a free model so it still produces value.
Timeout
| Flag | Effect |
|---|---|
--timeout=<duration> | Set a custom run timeout, e.g. --timeout=30m, --timeout=1h30m |
--notimeout | Disable the timeout entirely |
Cross-repo
--xrepo lets one run read and open PRs across multiple repositories in the same organization. See Cross-repo below.
Cross-repo
By default a run only touches the repository it was triggered from.--xrepo widens that to a bounded set of repos in the same organization.
--xrepo can never let a run touch a repo the person triggering it couldn’t already touch. Each secondary repo is granted the narrowest access the user has: read-only repos are reference-only (clone and inspect, no PRs); repos the user can write to accept branches and pull requests.
Because a bare --xrepo needs the triggerer’s identity to resolve, the value form --xrepo=a,b is the recommended org-wide default — it resolves without per-user OAuth and keeps token scope tight.
During a cross-repo run the agent uses list_repos to see what’s in scope and checkout_repo to clone a secondary, then passes repo: "<name>" to the git and pull-request tools to act inside it.
You can steer cross-repo work with two org-level settings: an xrepo brief (operator prose describing how your repos relate) and xrepo learnings (structural knowledge Pullfrog curates over time). See Learnings.

