Skip to content

Configuration reference

jj-spice is configured through the standard jj configuration stack. All settings live under the [spice] table and can be set at any level of the hierarchy (user, repo, or workspace) using the regular jj config files or the --config CLI flag.

For details on how jj resolves its configuration, see the jj configuration docs.

Quick reference

Key Type Default Related CLI flag
spice.output "modern" | "classic" "modern" --
spice.auto-accept-changes bool false --auto-accept
spice.auto-clean bool true --
spice.upstream-remote string auto-detected --
spice.forges.<hostname>.type "github" | "gitlab" auto-detected --

spice.output

Terminal output fidelity.

  • "modern" (default) -- Nerd Font Powerline glyphs for status badges, OSC 8 terminal hyperlinks. Requires a Nerd Font.
  • "classic" -- ASCII brackets [Status] with foreground-only colors, plain-text URL fallbacks. Safe for any terminal.
[spice]
output = "classic"

Affects: stack log, stack submit, stack sync.

spice.auto-accept-changes

When true, untracked changes are pushed automatically during stack submit without prompting.

When unset or false, the user is prompted before pushing.

Equivalent to passing --auto-accept on the command line. The config value takes precedence over the flag when set.

[spice]
auto-accept-changes = true

Affects: stack submit.

spice.auto-clean

When true (the default), inactive change requests (closed or merged on the forge) are automatically removed from local tracking during stack submit and stack sync.

Set to false to keep inactive entries until they are removed manually with stack clean or stack untrack.

[spice]
auto-clean = false

Affects: stack submit, stack sync.

spice.upstream-remote

Override the upstream remote name used for fork workflows.

In a fork setup, jj-spice pushes branches to the push remote (git.push, defaulting to "origin") and creates change requests against the upstream remote. By default, a remote named "upstream" is used when it exists. Set this key to use a different name.

[spice]
upstream-remote = "upstream"

Affects: all stack subcommands.

spice.forges.<hostname>.type

Register a custom hostname as a specific forge type.

jj-spice automatically recognises github.com and gitlab.com. For self-hosted instances (GitHub Enterprise, self-managed GitLab, etc.), map the hostname to a forge type so that jj-spice can interact with its API.

This setting is typically written to the repo-level config by stack sync when it encounters an unknown hostname and prompts the user to select a forge type. It can also be set manually.

[spice.forges."git.corp.example.com"]
type = "github"

Accepted values: "github", "gitlab".

Affects: all stack subcommands.