Skip to content

Configuration

Bindu reads configuration from TOML files at standard locations. All keys are optional.

From highest to lowest:

  1. CLI flags
  2. Environment variables (BINDU_*)
  3. ./bindu.toml (project-local)
  4. $XDG_CONFIG_HOME/bindu/config.toml (user)
  5. /etc/bindu/config.toml (system)
  6. Built-in defaults

Use bindu config show to print the effective merged configuration.

~/.config/bindu/config.toml
# Default compression level for `bindu compress`
[compress]
level = 6
jobs = "cpu" # "cpu" or a number
no_entropy = false
keep = false
# Schema registry
[registry]
url = "https://schemas.example.com"
cache_dir = "~/.cache/bindu/schemas"
auth_token_env = "BINDU_REGISTRY_TOKEN"
# Dictionary behavior
[dict]
auto_fetch = true # Pull referenced dicts automatically
cache_dir = "~/.cache/bindu/dicts"
# Telemetry (opt-in)
[telemetry]
enabled = false
endpoint = "https://telemetry.example.com"
# Query engine
[query]
memory_budget = "2GB"
parallel = true
# Logging
[log]
level = "info" # trace|debug|info|warn|error
format = "pretty" # pretty|json

Any key above can be set via env var by uppercasing, replacing . with _, and prefixing with BINDU_:

BINDU_COMPRESS_LEVEL=9
BINDU_REGISTRY_URL=https://schemas.example.com
BINDU_LOG_LEVEL=debug

Additional env vars:

VariableEffect
BINDU_NO_COLORDisable ANSI colors (same as --no-color)
BINDU_CONFIGOverride config file location
BINDU_CACHE_DIROverride all cache directories
BINDU_DISABLE_MMAPNever use mmap (useful on network filesystems)

Tell bindu compress --recursive to skip files, using gitignore syntax:

.binduignore
node_modules/
*.png
*.jpg
build/
.git/
Terminal window
bindu config validate

Exits non-zero if any key has an invalid value or an unknown key is present.