Config file loader for spel.json — agent-browser parity.
Layered precedence (lowest → highest):
~/.spel/config.json (user-level defaults)./spel.json (project-level overrides)SPEL_* environment vars (shell overrides)Config values use camelCase keys (headed, userAgent, allowedDomains)
and are normalized to the same kebab-case keywords the CLI flag parser
already uses, so a single merged map feeds both layers.
Unknown keys are silently ignored for forward compatibility. The
extensions array merges by concatenation (user + project) rather than
replacement so you can add project extensions on top of your user config.
Config file loader for `spel.json` — agent-browser parity. Layered precedence (lowest → highest): 1. `~/.spel/config.json` (user-level defaults) 2. `./spel.json` (project-level overrides) 3. `SPEL_*` environment vars (shell overrides) 4. CLI flags (explicit per-invocation) Config values use camelCase keys (`headed`, `userAgent`, `allowedDomains`) and are normalized to the same kebab-case keywords the CLI flag parser already uses, so a single merged map feeds both layers. Unknown keys are silently ignored for forward compatibility. The `extensions` array merges by concatenation (user + project) rather than replacement so you can add project extensions on top of your user config.
(load-config)(load-config cli-config-path)Loads and merges the active config layers, returning a kebab-case map.
cli-config-path (optional): explicit path from --config <path>. When
present, it REPLACES both auto-discovered files instead of adding to them.
A missing file at that path is a hard error.
Auto-discovered files that do not exist are silently ignored.
Returns {} when no config is found, so callers can unconditionally merge into their existing flag defaults.
Loads and merges the active config layers, returning a kebab-case map.
`cli-config-path` (optional): explicit path from `--config <path>`. When
present, it REPLACES both auto-discovered files instead of adding to them.
A missing file at that path is a hard error.
Auto-discovered files that do not exist are silently ignored.
Returns {} when no config is found, so callers can unconditionally merge
into their existing flag defaults.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |