Configuration¶
Yilan reads ~/.config/yilan/config.toml by default.
Override with --config PATH or the YILAN_CONFIG environment variable.
All sections are optional — omitted settings use the defaults shown below.
[owners]¶
| Key | Type | Default | Description |
|---|---|---|---|
accounts |
list of strings | [] |
Codeberg usernames and org names to discover repos under |
Yilan first tries the /users/{account}/repos endpoint; if that returns an
error it retries with /orgs/{account}/repos. Non-fork, non-archived repos
are included.
[repos]¶
| Key | Type | Default | Description |
|---|---|---|---|
known_monorepos |
list of strings | [] |
Repo names to treat as monorepos without probing the packages/ directory |
Yilan automatically detects monorepos by checking whether a packages/
directory exists. Use known_monorepos to skip that probe for repos you
know are monorepos.
[intent_files]¶
[intent_files]
files = [
"roadmap.md", "ROADMAP.md",
"improvements.md",
"security-audit.md", "Security-Audit.md", "Security_Audit.md",
"TODO.md",
"NOTES.md",
]
plain_bullet_files = ["security-audit.md", "security_audit.md"]
| Key | Type | Default | Description |
|---|---|---|---|
files |
list of strings | (see above) | Filenames to scan in each repo for outstanding items |
plain_bullet_files |
list of strings | ["security-audit.md", "security_audit.md"] |
Files whose ## sections use plain bullets instead of checklists |
Matching is case-sensitive for files (so both roadmap.md and ROADMAP.md
are listed). Matching for plain_bullet_files is case-insensitive at runtime
(fname.lower() is compared).
See Intent Files for the full parser rules.
[concepts]¶
[concepts]
items = ["my-idea", "project-alpha"]
dir = "../concepts" # relative to the working directory
repo = "" # "owner/repo" — overrides dir when non-empty
| Key | Type | Default | Description |
|---|---|---|---|
items |
list of strings | [] |
Concept folder names to include on the board |
dir |
string | "../concepts" |
Local directory containing concept subdirectories |
repo |
string | "" |
Remote owner/repo to fetch concepts from; overrides dir |
Each concept entry is a folder with a README.md or concept.md file.
Yilan extracts the phase, status line, and outstanding items from that file.
[api]¶
| Key | Type | Default | Description |
|---|---|---|---|
base_url |
string | "https://codeberg.org/api/v1" |
Codeberg API base URL |
max_retries |
integer | 5 |
Number of retry attempts on HTTP 429 (rate limit) |
request_timeout |
integer | 15 |
Per-request timeout in seconds |
[cache]¶
| Key | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | true |
Enable the SHA-based response cache |
path |
string | "~/.cache/yilan/cache.json" |
Path to the cache file (supports ~ expansion) |
The cache stores the full RepoData for each repo keyed by the HEAD commit SHA.
A repo is only re-fetched when its SHA changes. The snapshot (used by yilan diff)
is stored in the same directory as the cache file.
[paths]¶
| Key | Type | Default | Description |
|---|---|---|---|
output |
string | "BOARD.md" |
Path to write the board (relative to the working directory) |