Configuring JFrog Boost
Configure JFrog Boost filters, hooks, reporting, and data paths.
JFrog Boost reads settings from .boost/config.toml and from environment variables. Use project-level config for team defaults, global config for personal preferences, and environment variables for one-off runs.
Where Boost Looks for Configuration
Boost reads the first config.toml it finds, checking these locations in order:
.boost/config.tomlin the current directory — a per-invocation override..boost/config.tomlat the enclosing Git repository root, so a command run from a subdirectory still finds the project configuration.~/.boost/config.tomlin your home directory — the global fallback thatboost initwrites.
A legacy boost.config.toml in any of those directories is still read for backward compatibility, but .boost/config.toml takes precedence.
When run from a subfolder inside a monorepo, Boost defaults to using the configuration file at the repository root. However, if you place a .boost/ folder in your current working directory, Boost will detect it first and use it to override both repository-wide and global settings.
Configuration and Data Directories
Configuration directory: Settings live under .boost/ as config.toml.
Data directory: Runtime data, which includes the history.db SQLite database, update-check cache, and tee logs, lives in the operating system data directory:
| Platform | Data directory |
|---|---|
| macOS | ~/Library/Application Support/boost/ |
| Linux | $XDG_DATA_HOME/boost/ or ~/.local/share/boost/ |
| Windows | %LOCALAPPDATA%\\boost\\ |
Point the database elsewhere with BOOST_DB_PATH or [tracking] database_path.
Configuration Settings
Every configuration key is optional; omit a section to keep its defaults. Top-level keys such as accept_terms are written by boost init when you accept the terms.
~/.boost/config.toml Global Defaults
accept_terms = "yes"
[hooks]
exclude_commands = ["vim", "nano"]
[tracing]
report = false # silence per-command stderr savings lines
[report]
usd_per_million_tokens = 5.0
co2e_kg_per_million_tokens = 0.21
[update]
auto_update = false # only read from ~/.boost/config.toml.boost/config.toml Project Override
A project-level .boost/config.toml only needs to contain settings that differs from the global defaults. All other settings are inherited from ~/.boost/config.toml or its built-in default.
[tracking]
database_path = "/data/ci/history.db" # this repo's CI containers only
[report]
co2e_kg_per_million_tokens = 0.09 # this team's low-carbon regionIn the example above, accept_terms, [hooks], and [tracing] report are left unset, which means this repo will use the global ~/.boost/config.toml — or the built-in default settings for those keys.
| Key | Purpose | Default Value |
|---|---|---|
accept_terms | Records that you accepted Boost's terms; set by boost init. | unset |
[[hooks] exclude_commands] | Command names skipped by hook rewrite (matched on the first word's binary name). | [ ] |
[tracing] report | Set to false to hide the per-command stderr savings line. Is overridden by BOOST_REPORT. | true |
[tracking] database_path | Override the SQLite history database location. BOOST_DB_PATH takes precedence over this setting. | OS data dir / history.db |
[report] usd_per_million_tokens | US dollars per 1M saved tokens for boost report dollar figures (non-negative). | 5.0 |
[report] co2e_kg_per_million_tokens | kg CO₂e avoided per 1M saved tokens for emissions estimates (non-negative). | 0.21 |
[update] auto_update | Set false to opt out of background self-updates. Read from global config only. | true |
Hook Exclusion Settings
When Cursor, Claude Code, or Gemini CLI runs a shell command, Boost's hook rewrites supported tools to boost <cmd> so output is compressed before it reaches the agent.
To keep certain commands unwrapped, add them to [hooks] exclude_commands. Each entry is matched against the first word of the command, reduced to its binary name. For example, docker also matches /usr/bin/docker compose up.
[hooks]
exclude_commands = ["playwright", "vim", "docker"]In this example, playwright test stays playwright test instead of becoming boost playwright test. The same list applies to boost rewrite and the Gemini and Copilot hook paths.
Note
exclude_commandsprevents automatic wrapping in agent hooks. It does not disable capture or filtering when someone runsboost playwright testdirectly.
Environment Overrides
You can use environment variables to override the settings in config.toml, which makes them handy for one-off runs.
| Variable | Effect |
|---|---|
BOOST_DB_PATH | Path to the SQLite history database; overrides [tracking] database_path. |
BOOST_REPORT | 0 silences the per-command stderr savings line. |
BOOST_REPORT_USD_PER_MTOK | Override [report] usd_per_million_tokens. |
BOOST_REPORT_CO2E_KG_PER_MTOK | Override [report] co2e_kg_per_million_tokens. |
BOOST_TEE_DIR | Directory for raw output tee logs written on failure. |
XDG_DATA_HOME / LOCALAPPDATA | Relocate the data directory (history database, caches, tee logs) on Linux or Windows. |
You can run environment variables in various ways. For example, to change the database path do the following:
- Prepend the variable to a specific command for one-time execution:
BOOST_DB_PATH="/tmp/custom_boost_history.db" boost go test ./... - Export the variable to your shell environment for the current session:
# Set the persistent path override export BOOST_DB_PATH="/tmp/custom_boost_history.db" # All subsequent commands will now read/write to this new database file boost go test ./... boost report - Add the variable inside the
envblock of your CI/CD workflow:- name: Run Tests with JFrog Boost run: boost go test ./... env: BOOST_DB_PATH: "${{ github.workspace }}/.boost/history.db"
Configuration Summary
| Goal | Mechanism |
|---|---|
| Edit settings for a project | .boost/config.toml |
| Edit settings for every project | ~/.boost/config.toml |
Agent should not wrap playwright, vim, and similar tools | [hooks] exclude_commands |
| One-off full bypass of Boost for any command | DISABLE_BOOST=1 |
| Move the history database | BOOST_DB_PATH |
| Hide per-command savings on stderr | [tracing] report = false or BOOST_REPORT=0 |
| Opt out of background self-updates | [update] auto_update = false in ~/.boost/config.toml |
