Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Configuration

jjpr reads configuration from two optional TOML files.

LocationCreated byPurpose
~/.config/jjpr/config.toml (or $XDG_CONFIG_HOME/jjpr/config.toml)jjpr config initGlobal defaults
.jj/jjpr.toml (inside the repo’s .jj/ directory)jjpr config init --repoRepo-local overrides

If neither file exists, jjpr uses built-in defaults. CLI flags override config files. Repo-local config overrides global config.

Global config

merge_method = "squash"
required_approvals = 1
require_ci_pass = true
reconcile_strategy = "rebase"
stack_nav = "comment"

Repo-local config

Repo-local config goes in .jj/jjpr.toml. Because .jj/ is gitignored, the file is per-clone.

forge = "forgejo"
forge_token_env = "FORGEJO_TOKEN"
stack_nav = "description"

Field reference

merge_method

How the forge combines the PR when it lands.

  • squash (default): all commits in the PR collapse into one commit on the target branch. Linear history.
  • merge: a merge commit is created. The individual commits from the PR branch are preserved.
  • rebase: commits are rebased onto the target branch individually with no merge commit. Linear history, each commit kept separately.

required_approvals

Number of approving reviews required before merging. Default 1.

require_ci_pass

If true (default), CI checks must pass before merging. Override with --no-ci-check on a single invocation.

reconcile_strategy

How the remaining stack is synced after a PR is merged.

  • rebase (default): rebases downstream commits onto the new base. Rewrites history. Pushes become force-pushes.
  • merge: creates merge commits on downstream branches that incorporate the updated base. Pushes stay fast-forward (no force-push events on GitHub) but the history grows merge commits.

stack_nav

Where to show the stack navigation block.

  • comment (default): a separate comment on each PR.
  • description: embedded in the PR body. More visible to reviewers. Updates the body on each submit.

forge

Forge type. One of github, gitlab, or forgejo. When set, auto-detection is skipped. Use this for self-hosted instances that auto-detection can’t recognize. Repo-local only.

forge_token_env

Name of the environment variable that holds the API token. When unset, jjpr falls back to the forge’s default (GITHUB_TOKEN, GITLAB_TOKEN, or FORGEJO_TOKEN). Repo-local only.

Configuring forges

Forge-specific authentication and self-hosted instance setup live in Forge support.