Reference
TOML Filters
Boost compresses command output with Go parsers for major tools and
declarative TOML filters for everything else.
Drop a filters.toml file in your home config or project
to teach Boost how to trim a custom script, linter, or internal CLI — no recompile required.
Where filters load
Boost merges filters from several locations. Later files can add new filters;
the first match_command regex that matches the
command line wins at runtime.
- Built-in filters shipped with Boost (
make,terraform,shellcheck, …) ~/.config/boost/filters.toml.boost/filters.tomlin your repo (commit this for team-wide rules)
Example: custom deploy script
Your team runs ./scripts/deploy.sh through Boost.
The script prints hundreds of progress lines but only errors matter to the agent.
.boost/filters.toml
schema_version = 1
[filters.deploy]
description = "Keep failures from deploy.sh"
match_command = "^\\./scripts/deploy\\.sh\\b"
strip_ansi = true
keep_lines_matching = [
"^(ERROR|WARN|FAIL)",
"^\\s+at ",
]
max_lines = 80
on_empty = "deploy: ok" ==> Resolving staging manifest…
==> Pulling image acme/web:staging
==> Waiting for rollout (1/3 ready)
==> Waiting for rollout (2/3 ready)
ERROR: pod api-7f9c failed readiness: connection refused
at deploy.sh:142 check_health
WARN: retry 1/3 in 5s
==> Rollout complete ERROR: pod api-7f9c failed readiness: connection refused
at deploy.sh:142 check_health
WARN: retry 1/3 in 5s $ boost ./scripts/deploy.sh staging
Example: strip make chatter
Built-in filters use the same schema. This mirrors the shipped
make filter: drop entering/leaving directory lines and blank rows.
[filters.make]
match_command = "^make\\b"
strip_lines_matching = [
"^make\\[\\d+\\]:",
"^\\s*$",
"^Nothing to be done",
]
max_lines = 50
on_empty = "make: ok" make[1]: Entering directory '/home/user/app' gcc -O2 -c src/main.c gcc -O2 -o app src/main.o make[1]: Leaving directory '/home/user/app'
gcc -O2 -c src/main.c gcc -O2 -o app src/main.o
Example: short-circuit on clean lint
Use match_output to return a one-line summary when the tool succeeded quietly.
[filters.eslint-quiet]
match_command = "^eslint\\b"
match_output = [
{ pattern = "0 problems", message = "eslint: ok" },
] Filter fields
| Field | Purpose |
|---|---|
| match_command | Required regex against the full command line |
| strip_ansi | Remove terminal color codes first |
| strip_lines_matching | Drop lines matching any pattern |
| keep_lines_matching | Keep only matching lines |
| truncate_lines_at | Cap each line length |
| head_lines / tail_lines | Keep first or last N lines |
| max_lines | Total line budget with ...+N more lines suffix |
| match_output | Replace entire output when a pattern matches |
| on_empty | Message when filtering removes everything |
Commands without a Go or TOML filter pass output through unchanged. See the full reference in docs/TOML_FILTERS.md on GitHub.