Skip to main content
Documentation
Configuration

Configuration

The current alpha selects one TOML file and exposes a small, explicit key set.

Configuration files

ScopeLocationSelection
Repository.dits/config.tomlDefault while inside a repository
Global<platform config directory>/dits/config.tomlPass --global

There is no system or worktree level. Inside a repository, an unqualified operation reads only .dits/config.toml. Outside a repository, keyed operations require --global; a bare list uses the global file.

Command

dits config [OPTIONS] [KEY] [VALUE]

Options:
    --global   Use the global file
-l, --list     List public values from the selected file
    --unset    Remove an optional key
-h, --help     Show command help
# Repository configuration
dits config chunking.target_size 128KB
dits config chunking.target_size
dits config --list

# Global configuration
dits config --global telemetry.enabled false
dits config --global --list

# Optional identity fields can be removed
dits config --global --unset user.email

Flags such as --local, --system, --edit, --show-origin, and top-level -c overrides do not exist.

Accepted keys

KeyDefaultCurrent effect
user.nameunsetStored preference; commits do not read it yet
user.emailunsetStored preference; commits do not read it yet
core.default_branchmainStored preference; repository init still uses main
core.verbosefalseStored preference; not a global verbosity flag
chunking.target_size64KBRepository-local target chunk size
chunking.min_size16KBRepository-local minimum chunk size
chunking.max_size256KBRepository-local maximum chunk size
telemetry.enabledfalseGlobal opt-in telemetry switch

Boolean values are true or false. Chunk sizes accept raw bytes or B, KB, MB, and GB suffixes. Keep min_size <= target_size <= max_size; the current parser does not validate that relationship.

TOML format

[user]
name = "Jane Editor"
email = "jane@example.com"

[core]
default_branch = "main"
verbose = false

[chunking]
target_size = 65536
min_size = 16384
max_size = 262144

[telemetry]
enabled = false
last_sent = 0

Unknown keys passed to dits config are rejected. Remotes are separate repository metadata in .dits/remotes and are managed by dits remote.

More detail