Configuration
Okulo works with zero config. Add .okulo.toml at the repo root
when you want layers, author aliases, teams, or cost defaults.
Commit it so the whole team sees the same results.
Priority
CLI flags > .okulo.toml > built-in defaults. Exclude lists are additive.
Minimal example
# .okulo.toml
[analysis]
window = "6m"
exclude = ["generated/**", "**/*.pb.go"]
[architecture.layers]
frontend = ["web/*", "apps/web/*"]
backend = ["server/*", "services/*"]
[authors.aliases]
"Ada Lovelace" = ["ada@example.com", "alovelace"]
[teams]
Platform = ["Ada Lovelace", "Grace Hopper"]
[cost]
hourly_rate = 60
currency = "EUR"
Architecture layers
Layers turn folder globs into named components for coupling, bus factor, and --components.
Order matters: earlier layers claim matching files first.
Validate with okulo components.
Author aliases
Run okulo authors, then confirm suggested merges in [authors.aliases].
Without unification, one person can look like two half-owners and hide knowledge islands.
Teams
Optional [teams] table powers coordination summaries and a team column in okulo people.
Prefer already-unified display names from okulo authors.
Cost model
Defaults for okulo debt / refactor live under [cost]
(hourly_rate, currency, hours-per-change, etc.).
Proportions between files matter more than perfect calibration.