Configuration File
This page is the canonical reference for Thymian configuration.
Where configuration is loaded from
Section titled “Where configuration is loaded from”Thymian resolves configuration in this order:
- If you pass
--config <path>, Thymian uses that file. - Otherwise, Thymian looks for
thymian.config.yamlin--cwd(or your current directory). - If no file is found, Thymian uses built-in defaults.
Full configuration schema
Section titled “Full configuration schema”See Configuration Schema for the complete list of supported keys, types, defaults, and descriptions.
Precedence and overrides
Section titled “Precedence and overrides”After loading config, CLI flags can override parts of it. Common overrides include:
--spec <type:path>overridesspecifications--traffic <type:path>overridestraffic--target-url <url>overridestargetUrl--rule-set <name>extendsruleSetsat runtime (appends and deduplicates)--rule-severity <off|error|warn|hint>overridesruleSeverity--log-level <trace|debug|info|warn|error|silent>overrideslogLevel--debugeffectively overrideslogLeveltodebug--verboseeffectively overrideslogLeveltoinfo--autoload/--no-autoloadcontrols plugin autoloading
Generated baseline config
Section titled “Generated baseline config”thymian generate config creates a config based on built-in defaults plus your selected specification(s).
Typical generated baseline:
specifications: - type: openapi location: ./openapi.yaml
traffic: []
ruleSets: - '@thymian/rules-rfc-9110' - '@thymian/rules-api-description-validation'
ruleSeverity: errorrules: {}
plugins: '@thymian/plugin-http-linter': {} '@thymian/plugin-openapi': {} '@thymian/plugin-request-dispatcher': {} '@thymian/plugin-sampler': {} '@thymian/plugin-reporter': options: formatters: text: {} '@thymian/plugin-http-tester': {} '@thymian/plugin-http-analyzer': {} '@thymian/plugin-har': {}Workflow-specific examples
Section titled “Workflow-specific examples”Static linting only
Section titled “Static linting only”specifications: - type: openapi location: ./openapi.yaml
ruleSets: - '@thymian/rules-rfc-9110'
plugins: '@thymian/plugin-http-linter': {} '@thymian/plugin-openapi': {} '@thymian/plugin-reporter': options: formatters: text: {}Live API testing
Section titled “Live API testing”specifications: - type: openapi location: ./openapi.yaml
targetUrl: http://localhost:3000
ruleSets: - '@thymian/rules-rfc-9110'
plugins: '@thymian/plugin-openapi': {} '@thymian/plugin-request-dispatcher': {} '@thymian/plugin-sampler': {} '@thymian/plugin-http-tester': {} '@thymian/plugin-reporter': options: formatters: text: {}Analyze recorded traffic
Section titled “Analyze recorded traffic”traffic: - type: fixture location: static
ruleSets: - '@thymian/rules-rfc-9110'
plugins: '@thymian/plugin-http-analyzer': {} '@thymian/plugin-reporter': options: formatters: text: {}Validation behavior and failure modes
Section titled “Validation behavior and failure modes”If config parsing or schema validation fails, the CLI exits with code 2 and prints an error.
Common issues:
- Unsupported file extension when loading with
--config - Invalid YAML/JSON syntax
- Invalid value types (for example non-array
ruleSets) - Unknown or misspelled top-level keys — the schema only allows the documented keys and rejects anything else
- Missing specification with commands that require one
Practical tips
Section titled “Practical tips”- Prefer
thymian generate configto bootstrap a correct baseline. - Keep plugin configuration minimal first, then add plugin
optionsincrementally. - Use
--specfor one-off checks without editing files. - Keep
ruleSeverity: errorin CI unless you explicitly want warnings/hints to gate builds.
Related pages
Section titled “Related pages”- Understanding the Configuration File — quick overview in the Getting Started guide
- Use
thymian lintworkflow - Use
thymian testworkflow - Use
thymian analyzeworkflow