Docs

Config and auth

Configuration is global by default and per-repository with --local, where local wins. Tokens live apart from it, in a file of their own with restrictive permissions.

torii config get user.email .torii/config --local · this repository not set ~/.config/torii global not set git config local, then global error, not a default no "Torii User" fallback tokens live apart auth.toml mode 600 one per platform GITHUB_TOKEN=… wins, for one process which is what CI should use

Config

torii config set user.name "Alice"
torii config set user.name "Alice" --local
torii config get user.name
torii config list [--local]
torii config edit
torii config reset
torii config check-ssh
KeyDoes
user.name user.emailthe identity written into a commit
user.editorthe editor opened for a message or an interactive rebase
git.default_branchthe branch torii init creates
git.sign_commitssign every commit with GPG (alias: commit.gpgsign)
git.gpg_keywhich key to sign with (alias: user.signingkey)
git.pull_rebaserebase rather than merge when integrating
mirror.default_protocolssh or https for new mirrors
mirror.autofetch_enabledfetch from the primary in the background
snapshot.auto_enabledtake snapshots on a timer
snapshot.auto_interval_minuteshow often, when it is on
worktree.base_dirwhere a new worktree is created, default ..
worktree.inherit_pathscomma-separated paths copied into a new worktree
ui.colors ui.emoji ui.verboseoutput style
ui.date_formathow dates are printed

Git's own spellings are accepted as aliases, so a repository that already sets commit.gpgsign needs no migration.

Signing

torii config set git.sign_commits true
torii config set git.gpg_key <key-id>
torii sign                      # re-sign existing history
torii log --signatures          # a verdict column

Signing is honoured at every site that creates a commit — save, cherry-pick, revert, merge, and the history rewrites. Annotated tags are still created unsigned.

Platform tokens

torii auth set github
torii auth set gitlab | codeberg | gitea | forgejo | bitbucket | sourcehut | azure
torii auth status
torii auth logout

Stored in ~/.config/torii/auth.toml, mode 600. Environment variables override the file for a single process, which is what CI should use.

PlatformFlow
GitHub, GitLab, CodebergOAuth device flow, with refresh tokens
Bitbucketauthorisation code with PKCE; a token containing : is treated as user:app_password
Gitea, Forgejoa personal access token; the three Gitea-family names share one client
Sourcehut, Radicle, Azure DevOpspersonal access token, or the platform's own tooling

SSH and HTTPS

Transports are pure Rust: rustls for HTTPS, russh for SSH. The SSH authentication chain is agent, then ed25519, then RSA. Host keys are verified against known_hosts, with a trust-on-first-use prompt for an unknown host.

Two current limits: encrypted private keys need an agent, because there is no passphrase prompt yet, and ~/.ssh/config aliases are not parsed — use the real hostname.

The cloud key

torii auth login refers to an API key for gitorii.com. That service is not currently accepting keys: the account area was withdrawn while it is rebuilt, and nothing in the CLI needs one. Every command documented on this site works without it.