Save tokens. Sharpen agents.
Boost trims the noisy output your coding agents read (test runs, builds, logs, diffs, MCP responses)
so they spend context on the signal. Free, local-first, no signup.
Website · Quickstart · Docs · Features · Benchmarks · Changelog
▶ Watch Frogi go on a token diet, with sound
English · Español · Français · Deutsch · 日本語 · हिन्दी · עברית
[!NOTE] Boost is in preview and subject to JFrog's Online Preview Agreement.
Get started
Two ways to install. Both run the same Boost engine and connect the coding agents they find on your machine.
🖥️ Option 1: Boost app
A desktop companion for macOS and Windows. It bundles the CLI, connects the agents it detects, keeps itself up to date, and shows your savings in a dashboard and the system tray.
Open the app. That's it.
⌨️ Option 2: Boost CLI
Just the binary, for macOS, Linux, WSL, Windows, and CI.
# macOS / Linux / WSL
curl -fsSL https://boost.jfrog.com/install.sh | bash
# Windows PowerShell
irm https://boost.jfrog.com/install.ps1 | iex
Then connect your agents:
boost init
Installing with a coding agent? Point it at AGENT-INSTALL.md.
Works with your agents
boost init detects each agent below and installs its integration globally under your home directory. Nothing is committed to your repos. To pick agents explicitly, pass their flags. Add --dry-run to preview every file before it changes.
| Agent | Flag | What gets installed |
|---|---|---|
| Claude Code | --claude |
Hook and awareness rule in ~/.claude |
| Cursor | --cursor |
Hook and awareness rule in ~/.cursor |
| Codex CLI | --codex |
Hooks and a BOOST.md note in ~/.codex |
| GitHub Copilot | --copilot |
Hooks in ~/.copilot/hooks |
| OpenCode | --opencode |
Plugin and the Boost skill in ~/.config/opencode |
How it works
Your agent works exactly as before. Boost sits between the agent and everything it reads, and it runs entirely on your machine.
your coding agent
|
runs a command | calls an MCP tool | reads a file | explores code
|
v
+-------------------- Boost, on your machine --------------------+
| |
| terminal filters custom filters MCP filters |
| file optimization BoostGraph |
| |
| keep the signal - drop the noise - save the original |
+----------------------------------------------------------------+
| |
v v
compact context for local history for
the agent boost retrieve, the dashboard,
and OpenTelemetry export
Capabilities
Click any capability for its documentation.
Save tokens: Terminal filters · Custom filters · MCP filters · File optimization · BoostGraph
Stay safe: Reversible output
See the impact: Savings dashboard · PR usage comments · OpenTelemetry export · Agents in CI
Terminal filters
Built-in, flag-aware filters for 100+ tools, including npm, pytest, go, cargo, docker, git, gh, and kubectl. They cut banners, progress bars, repeated warnings, and ANSI noise, and keep failures, errors, summaries, and timings.
pytest --> 25 lines --> [ built-in pytest filter ] --> 11 lines
drops: banner, plugins, progress dots
keeps: failure, traceback, summary
See the real pytest output, before and after
Without Boost (25 lines):
============================= test session starts ==============================
platform darwin -- Python 3.12.4, pytest-8.3.2, pluggy-1.5.0
rootdir: /Users/dev/shop-api
configfile: pyproject.toml
plugins: anyio-4.4.0, cov-5.0.0, asyncio-0.23.8, mock-3.14.0
collected 214 items
tests/test_auth.py .............................. [ 14%]
tests/test_cart.py .......................................... [ 33%]
tests/test_catalog.py .................................... [ 50%]
tests/test_checkout.py ...................F.......... [ 64%]
tests/test_inventory.py .............................. [ 78%]
tests/test_orders.py .............................................. [100%]
=================================== FAILURES ===================================
__________________________ test_applies_discount_code __________________________
def test_applies_discount_code():
cart = Cart(items=[Item(price=100)])
> assert cart.total(code="SAVE10") == 90
E assert 100 == 90
tests/test_checkout.py:42: AssertionError
=========================== short test summary info ============================
FAILED tests/test_checkout.py::test_applies_discount_code - assert 100 == 90
======================== 1 failed, 213 passed in 4.81s =========================
With Boost (11 lines, same failure, same traceback, same summary):
FAILURES
test_applies_discount_code
def test_applies_discount_code():
cart = Cart(items=[Item(price=100)])
> assert cart.total(code="SAVE10") == 90
E assert 100 == 90
tests/test_checkout.py:42: AssertionError
short test summary info
FAILED tests/test_checkout.py::test_applies_discount_code - assert 100 == 90
1 failed, 213 passed in 4.81s
Custom filters
Teach Boost about your internal CLIs and scripts with small TOML files. Boost can point you at the best candidates, and your agent can draft the filter from your local history.
boost filters gaps --> ranks the noisiest commands that still pass through
|
v
.boost/filters/deploy.toml --> written by you, or drafted by your agent
|
v
./deploy.sh --> [ your filter ] --> only the lines that matter
MCP filters
Large MCP JSON responses are compacted before they enter the agent's context, and Boost keeps a local record of each compressed call. Staged rollout.
MCP tool --> large JSON response --> [ MCP filter ] --> compact JSON --> agent
|
+--> original kept on your machine
File optimization
When the agent reads a file, Boost hands it a lighter version, typically for 2–3× fewer tokens.
spec.pdf --> [ Boost ] --> spec.md text instead of a binary blob
analysis.ipynb --> [ Boost ] --> analysis.md cells and trimmed outputs
screenshot.png --> [ Boost ] --> resized to what the model actually sees
BoostGraph
A code graph of your repo that agents query instead of looping through grep and file reads. One call returns the relevant source, who calls it, and what it affects. In early benchmarks, exploration finished 3× faster and cost up to 50% less. Early access.
without: grep -> read -> grep -> read -> read -> grep -> ... many calls
with: "how does checkout apply discount codes?"
--> relevant symbols + verbatim source + call path one call
Reversible output
Nothing is thrown away. Every compressed output is saved on your machine, and the agent can always ask for the original. Boost also learns from those requests: a filter that keeps hiding detail the agent needs is switched off for you.
compact output ...
[Boost compressed ~55%. Get the full original output simply with: boost retrieve 4821]
|
v the agent needs more
boost retrieve 4821 --> the full original, straight from your machine
|
v the same filter is retrieved 3 times (configurable)
that filter is disabled locally
Savings dashboard
See every token Boost saved, per filter and per session, with before/after diffs of exactly what was trimmed. Find opportunities scans your history for noisy commands that still pass through unfiltered. Open it from the Boost app, or from a terminal:
boost ui # interactive dashboard in your browser
boost report -t # summary right in the terminal
Savings are context-weighted. An agent re-sends the whole conversation on every turn, so a trimmed output keeps saving tokens until the session ends or the context is compacted:
turn 1 2 3 4 5
|------|------|------|------|
saved 2K + 2K + 2K + 2K + 2K = 10K context tokens saved
^
output trimmed once, here
PR usage comments
See what each agent spent on a pull request without leaving GitHub. Staged rollout.
agent sessions on a branch --> Boost --> one live comment on the PR
tokens + estimated cost,
per agent harness and model
OpenTelemetry export
Send the same sanitized spans to your own observability backend, such as Datadog, Grafana Cloud, Honeycomb, New Relic, Elastic, Coralogix, or any OTLP collector.
Boost spans --+--> Boost endpoint (sanitized, by default)
|
+--> EXTERNAL_OTEL_ENDPOINT (your collector, when set)
Agents in CI
Running Claude Code or another agent in GitHub Actions? Install Boost in the job before the agent starts, and the agent reads compact output there too.
- name: Install Boost
run: |
curl -fsSL https://boost.jfrog.com/install.sh | bash
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
export PATH="$HOME/.local/bin:$PATH"
boost init --claude --accept-terms
Rolling Boost out to a whole team? See the company-wide install guide (Jamf Pro and Workspace ONE MDM).
Benchmark
On Terminal-Bench 2.0, Boost ran the same 89 tasks with the same success rate, for less.
| Cost per task | Full-suite run time | |
|---|---|---|
| Without Boost | $0.319 | — |
| With Boost | $0.276 (−13.5%) | −28.9% |
Measured with Claude Code and Haiku 4.5. Read the full report →
Stay up to date
- Boost app: updates itself.
- Boost CLI: re-run the install command. It always fetches the latest release.
Security & privacy
- Local-first. Your code, logs, and terminal output stay on your machine. All filtering happens locally.
- Only metadata leaves. Usage data goes only to JFrog, to improve the product. It includes timing, exit codes, and token-savings stats, never raw logs, file contents, or environment values. Secrets matching patterns like
*_TOKEN,*_SECRET,AWS_*, andDATABASE_URLare redacted before anything is stored or exported. - Open protocol, signed binaries. OpenTelemetry-native. Binaries ship signed via GitHub Releases.
What gets scanned on every push to main
Boost's source repository is scanned on every push to main, the same commits every release is built from, by Frogbot running JFrog Xray with JFrog Advanced Security.
| What gets scanned | |
|---|---|
| ✓ | Dependencies (SCA): Go modules and npm trees across every module in the repo, matched against JFrog's vulnerability database |
| ✓ | Contextual Analysis: checks whether a reported CVE is actually reachable from Boost's code, so real risk is not buried in noise |
| ✓ | Malicious packages: dependencies flagged as malicious are caught before they reach a build |
| ✓ | Secrets: every tracked file is scanned for leaked credentials and tokens |
| ✓ | Source code (SAST): Boost's own Go and TypeScript sources |
| ✓ | Infrastructure as Code: CI workflows and deployment definitions |
| ✓ | SBOM: a component inventory is generated per build target on every scan |
Findings land as code-scanning alerts and automated fix pull requests on the source repository.
Full policy, supported versions, and how to report a vulnerability: SECURITY.md.
Community
Questions, ideas, or a filter you want to share? Come say hi.
Found a bug? Open an issue. If Boost saves you tokens, a ⭐ helps others find it.
License
Copyright © 2026 JFrog Ltd. All rights reserved. See LICENSE and the Online Preview Agreement. Sponsored by JFrog.
Dedicated to the memory of Dima Gershovich — a brilliant engineer, a talented musician, and a dear friend. Read Dima's story
See Acknowledgements for maintainers and community contributions.

