DocsConfiguration

Configuration

Configure testgap with a .testgap.toml file in your project root.

Creating a Config File#

Run testgap init to generate a default config file:

terminal
testgap init

Full Example#

.testgap.toml
# .testgap.toml

[scan]
include = ["src/**", "lib/**"]
exclude = ["**/generated/**", "**/vendor/**", "**/*.test.*"]
languages = ["rust", "typescript", "python"]

[analysis]
min_severity = "warning"       # Only report warning+ gaps
complexity_threshold = 5       # Cyclomatic complexity threshold for "complex"

[ai]
enabled = true
ai_min_severity = "critical"   # Only send critical gaps to AI
model = "claude-sonnet-4-20250514"

[output]
format = "human"               # human | json | markdown
color = true

[scan]#

Controls which files are scanned.

OptionTypeDefaultDescription
includestring[]["**"]Glob patterns for files to include
excludestring[][]Glob patterns for files to exclude (e.g. generated code, vendored deps)
languagesstring[]all supportedFilter to specific languages: rust, typescript, javascript, python, go

.gitignore support

testgap automatically respects your .gitignore rules. Files ignored by git are never scanned. The exclude option is for additional exclusions beyond .gitignore.

[analysis]#

Controls gap detection and severity classification.

OptionTypeDefaultDescription
min_severitystring"info"Minimum severity to report: critical, warning, or info
complexity_thresholdnumber5Cyclomatic complexity threshold above which a function is considered 'complex' (affects critical classification)

[ai]#

Controls AI-powered analysis via Claude API.

OptionTypeDefaultDescription
enabledbooleantrueEnable AI analysis. Set false to always run in --no-ai mode
ai_min_severitystring"critical"Only send gaps at this severity or above to the AI. Reduces API costs dramatically.
modelstring"claude-sonnet-4-20250514"Claude model to use for analysis

API Key

AI analysis requires the ANTHROPIC_API_KEY environment variable. If not set, testgap falls back to static analysis only (same as --no-ai).

[output]#

Controls output format and display.

OptionTypeDefaultDescription
formatstring"human"Output format: human, json, or markdown
colorbooleantrueEnable colored output (auto-disabled when piping)

CLI vs Config Precedence#

CLI flags always override config file values. For example, --format json overrides format = "human" in the config file. This lets you set team defaults in .testgap.toml while allowing individual overrides.