Config¶
Put the block below into kuunfig.toml, or under [tool.kuu] in your
pyproject.toml.
The [default] section holds values shared across presets.
Each [presets.<name>] overrides only the fields you set; unset fields
fall back to [default].
Omitting [default] and writing a flat config is allowed for backward
compat (keys land in [default] automatically).
[default]
app = "src.core.broker:broker"
task_modules = [
#...
]
queues = []
processes = 2
concurrency = 32
prefetch = 16
shutdown_timeout = 30.0
scheduler.enable = false
metrics.enable = true
[default.dashboard]
enable = true
path = "/"
[default.persistence]
enable = true
dsn = "sqlite:///./kuu.db"
schema = ""
runs_table = "kuu_runs"
logs_table = "kuu_run_logs"
keep_days = 7
max_runs = 100_000
log_level = "INFO"
capture_args = true
[default.watch]
enable = true
root = "."
respect_gitignore = true
exclude = [".git/**"]
reload_delay = 0.25
reload_debounce = 0.5
[presets.scheduler]
task_modules = [
#...
]
processes = 2
concurrency = 16
scheduler.enable = true
dashboard.enable = false
[presets.message]
app = "src.core.message_broker:message_broker"
task_modules = [
#...
]
processes = 1
concurrency = 16
scheduler.enable = false
dashboard.enable = false
CLI Overrides¶
Any setting can be overridden with -o dotted.path=value, repeatable.
Pick a preset with -p / --preset:
uv run kuu start -p prod \
-o concurrency=128 \
-o dashboard.enable=true \
-o queues='["high","low"]'
Note
Overrides apply to the selected preset, not to [default].
Values parse as JSON when possible (true, 42, [1,2]);
otherwise raw strings.