documentation/SETTINGS.md · main · 2026-09-26

Settings

Settings are the user preferences in refs/gitmsg/core/config of the personal bare repository at ~/.config/gitsocial/personal/.

Commands · Keys · Cross-machine sync · Environment

Commands

gitsocial settings list
gitsocial settings get <key>
gitsocial settings set <key> <value>     # the first set creates the personal repo

GitSocial reads an environment-scoped key from the environment and any other key from the personal repository; a key that is not set takes the default below.

Keys

KeyTypeDefaultMeaning
identity.dns_verificationboolfalsetrust .well-known/gitmsg-id.json for attestation (IDENTITY.md)
output.colorenumautoauto, always, never
display.show_emailboolfalseshow the author's email next to the name on cards
display.themeenumautoauto detects the terminal background; light, dark
log.levelenuminfodebug, info, warn, error
extensions.{social,pm,release,review,memo}booltrueshow the extension in the TUI sidebar
fetch.parallelint4concurrent fetch workers
fetch.timeoutint30per-repository fetch timeout, in seconds
fetch.auto.enabledboolfalsefetch periodically while the TUI is open
fetch.auto.intervalint300auto-fetch interval in seconds, minimum 60
fetch.auto.backoffbooltrueslow auto-fetch while idle; reset when new items arrive
s3.concurrencyint16concurrent uploads per s3 push; GITSOCIAL_S3_CONCURRENCY overrides

fetch.workspace_mode is a map from each repository to default or *. The first-fetch prompt writes it, and settings set refuses it.

The registry in library/core/settings/scopes.go defines the core keys. Each extension keeps its user state in refs/gitmsg/<ext>/config of the same repository.

Cross-machine sync

gitsocial personal init --remote [email protected]:me/gitsocial-personal.git
gitsocial personal sync [--push-only | --fetch-only]
gitsocial personal status

Repeat init --remote and sync on each machine. personal sync pushes and fetches refs/heads/* and refs/gitmsg/*; on the config ref, the last write has priority.

Environment

VariableEffect
XDG_CONFIG_HOMEconfig root, default ~/.config
GITSOCIAL_PERSONAL_REPOthe personal repository path, default ~/.config/gitsocial/personal
GITSOCIAL_PPROFcpu, mem or trace: profile this run to /tmp/gitsocial-*
MEMO_SESSION_IDthe active memo session id
MEMO_SESSION_DIRthe memo session directory, default ~/.cache/gitsocial/memo/session

The rest are in CLI.md.