Centralized Config lets you keep every code review setting and every Kody Rule in one repository instead of editing them per-repo in the web UI. Each change flows through a pull request on that repository, giving you version history, review, and rollback on your review configuration. Use it when you want:Documentation Index
Fetch the complete documentation index at: https://docs.kodus.io/llms.txt
Use this file to discover all available pages before exploring further.
- A single source of truth for review behavior across many repositories.
- Code-review-as-code: history, PR review, rollback, CI validation.
- Consistent Kody Rules (review rules and memories) across the whole organization.
- CLI-driven or CI-driven configuration changes.
How It Works
- Choose one repository to hold your centralized config.
- Enable Centralized Config in the UI and point it at that repository.
- Pick an initial sync mode:
pr— Kodus opens the initialization PR with your current effective settings and rules.manual— Kodus generates the files; your team downloads and opens the PR.
- After the first merge, every future merge on the centralized repository automatically propagates changes to Kodus.
Repository Layout
The centralized repository uses folder paths to map files to scopes. The layout covers both review settings (kodus-config.yml) and Kody Rules (.kody-rules/).
The repository name is arbitrary — pick whatever fits your organization.
kodus-config is used below as a convention.- A
kodus-config.ymlat the root of the centralized repo applies globally. - A top-level folder whose name matches a Kodus repository (e.g.
backend-api/) scopes files to that repository. - A nested path inside a repo folder (e.g.
backend-api/src/auth/) scopes files to that directory, following the same inheritance model as the web UI. - Rules under
.kody-rules/review/become review rules; rules under.kody-rules/memories/become memories.
Config Files
Eachkodus-config.yml uses the same schema as the per-repo kodus-config.yml documented in General settings. Fields are applied at the level of the folder where the file lives and follow the usual inheritance rules (see Config Inheritance & Overrides).
Minimal example:
Kody Rules Files
Each rule is a single YAML file under.kody-rules/review/ (standard rules) or .kody-rules/memories/ (memories). The filename is arbitrary — Kodus identifies rules by the title field and by the canonical file path stored with the rule.
Example review rule (.kody-rules/review/require-tests-for-endpoints.yml):
inheritance.inheritable, exclude, and include behave.
UI Workflow
From Settings → Code Review → General:- Open Centralized Config.
- Enable Centralized Config.
- Select the source repository.
- Pick the Initial Sync Method:
- Automatic (Create PR now)
- Manual (Sync later)
- Save and confirm status.
Web UI Behavior When Enabled
When Centralized Config is enabled, the source of truth for configuration is the centralized repository. The web UI reflects this:- Repository, directory and global code review settings become read-only in the web UI. Edit them by opening a PR on the centralized repository.
- Kody Rules and PR Messages remain editable in the web UI. Saving an edit does not mutate the rule directly — Kodus opens a pull request on the centralized repository with the proposed change. Once the PR is merged, the change becomes active.
UI rules and repo rules coexist
Enabling Centralized Config does not wipe rules that were previously created in the web UI, and it does not prevent new rules from being created through the UI. Both sources feed the same pool of active rules:- Rules imported from the centralized repository are persisted with status
SYNCED. - Rules created directly in the web UI live alongside them and stay active.
- At review time, Kodus loads every active rule from the database regardless of origin. A rule that exists only in the UI is applied exactly like a rule that exists only in the repo.
- Rules in status
PENDING_ADD(a UI/CLI edit that opened a PR not yet merged) are excluded from reviews until the PR is merged and the status transitions toSYNCED.
init so Kodus bundles every existing rule into the initialization PR.
Sync States
Each rule that comes from Centralized Config tracks its lifecycle through a status:| Status | Meaning |
|---|---|
SYNCED | The rule in Kodus matches the file in the centralized repository. |
PENDING_ADD | A new rule has been created via UI/CLI and a PR was opened; the file does not exist on the default branch yet. |
PENDING_EDIT | An edit was proposed via UI/CLI and a PR is open; the existing file has not been updated yet. |
PENDING_DELETE | A deletion was proposed via UI/CLI and a PR is open; the file still exists on the default branch. |
PENDING_* transitions back to SYNCED once the corresponding PR is merged.
Sync Modes
- PR (default)
- Manual
Kodus opens the initialization pull request automatically with your
current effective settings and rules.
Download Configuration Bundle
You can download a ZIP containing the generatedkodus-config.yml files and .kody-rules/ tree that reflect your current settings and rules.
Use this when:
- Auditing generated configuration.
- Sharing setup artifacts with another team.
- Keeping a local backup before a rollout.
- Bootstrapping the centralized repository in
manualmode.
Disable Centralized Config
Disabling Centralized Config clears the selected source repository and returns all repositories to the standard non-centralized behavior (settings edited in the web UI, optional per-repokodus-config.yml).
Rules and settings that were synced in remain in Kodus — they are not deleted on disable.
CLI
Use these commands to manage Centralized Config from terminal workflows and CI scripts.Requirements
- Team key authentication.
- At least one selected repository in Kodus.
Check Status
Initialize Centralized Config
--sync-optiondefaults topr.- If the repository is omitted in an interactive terminal, the CLI prompts for selection.
- In non-interactive environments, the repository must be provided.
Run Sync
Disable Centralized Config
Download Config ZIP
--outis required.- Output is a ZIP bundle containing the generated config files and
.kody-rules/tree.
JSON Output
All centralized commands support structured output with--json.