Model or dataset
jfrog/boost avatar
jfrog/boost

jfrog/boost: a command wrapper that compresses agent shell output

Save tokens. Maximize context, Safely

483 stars19 forksShellNOASSERTION

At a glance

What is it?
Boost sits between a coding agent and the shell commands it runs, filtering noisy logs down to errors, timings and counts. The README claims identical task pass rate at roughly 12% lower cost, and the design choices behind that claim are worth reading closely.
Who is it for?
Adopt Boost if your agents spend most of their context on repeated npm, pytest, go test or docker build output and you want that scrollback replaced by a structured summary. Do not adopt it if your bottleneck is the model's own replies or retrieval over a document corpus, since Boost compresses command output and full-context or RAG material, not assistant messages.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem Boost targets: scrollback eating the context window

A coding agent that runs `npm ci` gets back roughly 9,800 tokens of deprecation warnings, package counts and audit lines, according to the example in the README. Almost none of that helps the model decide what to do next, but all of it occupies the context window and is billed on every subsequent turn. The same pattern repeats across test runners, linters, Docker builds and log tails. Over a long session of dozens of shell calls, the useful signal (a failing test name, a compiler error, a changed file count, a cache hit) is buried under output the agent will never reason about. Boost's stated goal is to wrap the commands an agent already runs and return a compact, structured summary instead. The audience is narrow and specific: teams running Cursor, Claude Code, GitHub Copilot or Codex CLI in long sessions, plus CI pipelines where shorter job logs are easier to scan. It is not a general logging tool and it is not aimed at humans debugging interactively.

Command-aware filters instead of truncation

The README is explicit that Boost does not simply truncate. It applies per-command filters that decide what to keep. The example given is `boost npm ci`, which yields a single line reading `[OK] npm ci · 1,285 packages restored from boost cache in 2.4s · 0 vulnerabilities` in place of the install log. That line carries three things an agent can act on: success, a package count, and a timing. On failure the documentation states that Boost keeps the failing test, the compiler error or the stack frame that matters, which is the part that separates this from a head-and-tail truncator. The same compression loop is meant to cover internal tooling through TOML filters, so a team can describe its own CLI's output shape and have it treated like `pytest` or `go test`. The README's comparison table also lists full-context and RAG compression, command output recovery, versioned retrieval feedback, and auto-disable of filters that keep getting retrieved. Those last two are the interesting ones: a filter that produces output the agent then asks for again is a filter that failed, and Boost appears to track that and turn itself off rather than keep degrading the result.

Installing and wiring Boost into an agent

The install path is a single script per platform. On macOS, Linux or Windows WSL the README gives `curl -fsSL https://boost.jfrog.com/install.sh | bash`. On Windows PowerShell it gives `irm https://boost.jfrog.com/install.ps1 | iex`. Both are pipe-to-shell installs, which means you are trusting the remote script at execution time; the README does not offer a checksum or a signed release artifact in the material supplied. Wiring comes next with `boost init`, described as connecting Boost to Cursor, Claude Code, GitHub Copilot and Codex CLI. For agents installing Boost on a user's machine, the repository points to a separate AGENT-INSTALL.md rather than the main README. Once commands are wrapped, `boost report` opens an interactive web dashboard showing context tokens saved over time, with breakdowns by CLI filter and by code base exploration, and `boost report -t` prints a terminal narrative summary instead. The README's dashboard description mentions a CLI filter view, which is the screen to check if a custom TOML filter is behaving. The binary is written in Go and the badge lists Go 1.25, with Linux, macOS and Windows as target platforms.

What the compression claim rests on, and what it does not cover

The README cites a Terminal-Bench 2.0 benchmark showing identical task pass rate at roughly 12% lower cost, and links to a blog post on boost.jfrog.com for the methodology. That is a vendor-run benchmark, and the material here gives no independent replication, no per-task breakdown and no failure distribution, so treat the 12% figure as a claim to verify against your own workloads rather than a settled number. The scope of compression is also bounded in a way the comparison table makes clear: Boost compresses command output and full-context or RAG material, but the table marks assistant reply compression as absent. If your token bill is dominated by long model responses or by retrieved documents, this tool addresses a different part of the pipeline. The other boundary is the preview status. The README carries a preview notice pointing at JFrog's Online Preview Agreement, which signals that interfaces, filter behaviour and the report format can change between releases. The release cadence supports that reading: v0.13.13, v0.13.14 and v0.13.15 all landed within three days in September 2026.

Approval paths and the original executable

One row in the comparison table deserves attention on its own. Boost is marked as preserving a native approval view of the original executable, and the competing tools listed are marked as not doing so or as unspecified. This matters because a wrapper that rewrites a command can hide what is actually about to run from whatever approval prompt the agent surfaces. If Boost keeps the original executable visible in that prompt, the human reviewing the action sees `npm ci` rather than an opaque filter invocation. The README states the capability but does not describe the mechanism, so this is something to confirm in your own agent setup after `boost init` rather than take on faith. The same applies to output recovery: the table lists command output recovery as present, meaning the original output is retrievable, but the README does not document the command or flag that retrieves it. If you adopt Boost in a regulated or audited environment, that retrieval path is the first thing to pin down.

Where Boost is the wrong tool

Boost assumes the noisy output comes from a command with a recognisable shape. A one-off script that prints an unstructured blob, a database migration emitting custom progress lines, or an interactive REPL session will not match a built-in filter, and until someone writes a TOML filter for it, the compression either does not apply or applies badly. Writing those filters is real work and the README does not show a filter schema in the material supplied, so the cost of covering internal tooling is unquantified here. The second wrong-tool case is debugging. An engineer chasing an intermittent failure often needs the full scrollback, including the lines Boost considers noise. If output recovery is not wired into that person's workflow, Boost makes their job harder, not easier. The third case is any environment where a pipe-to-shell installer is disallowed; the README offers no alternative install method such as a package manager or a pinned release binary. Finally, the license metadata for the repository reports NOASSERTION rather than a recognised SPDX identifier, which means the terms are not machine-readable from the repository alone and need to be read directly before redistribution.

How it compares with general context-compression tools

The README's table names RTK, Headroom and Caveman as the comparison set. RTK and Headroom are listed as doing command output compression and full-context or RAG compression, but neither is marked as supporting versioned retrieval feedback or auto-disable of repeatedly retrieved filters. Caveman is listed as compressing assistant replies, which is the one axis Boost does not cover. The practical difference is where each tool sits in the pipeline. A reply-compression tool shrinks what the model writes back. A context-compression tool shrinks what gets retrieved or fed in. Boost sits earlier still, at the shell boundary, and rewrites what a command returns before the agent ever sees it. That position has an advantage: the reduction happens before the tokens are generated, so the saving applies to every downstream turn that would otherwise carry the scrollback. It also has a limitation, because anything the filter drops is gone from the agent's view unless output recovery is used. Teams already running a retrieval-side compressor are not choosing between Boost and those tools so much as deciding whether the shell boundary is worth covering too.

Maintenance cost and licence questions to settle first

The release history shows three patch releases in three days, which suggests active development but also a moving target for anyone pinning a version. The README's preview notice ties usage to JFrog's Online Preview Agreement, so the governing terms are that agreement rather than a conventional open source licence, and the repository metadata reports the licence as NOASSERTION. That combination is worth reading carefully before Boost goes into a build pipeline that other people depend on. A pipe-to-shell installer plus a preview agreement plus a fast patch cadence means upgrades should be pinned and tested rather than pulled automatically. On the operational side, the material here does not describe what happens to the local cache that `boost npm ci` reports reading from, how large it grows, or how it is cleared, so disk behaviour on a long-lived CI runner is an open question. None of this is a reason to avoid the tool, but it is the list of things to verify before the first team-wide rollout rather than after.

Editorial conclusion

Adopt Boost if your agents spend most of their context on repeated npm, pytest, go test or docker build output and you want that scrollback replaced by a structured summary. Do not adopt it if your bottleneck is the model's own replies or retrieval over a document corpus, since Boost compresses command output and full-context or RAG material, not assistant messages. Before wiring it into a team workflow, run boost init on one machine, confirm the native approval path still shows the original executable in your agent, and check the preview agreement and the license terms, which the repository metadata reports as NOASSERTION rather than a recognised SPDX identifier.

Official sources

  1. Issues
  2. jfrog/boost on GitHub
  3. Project website
  4. README
  5. Releases
Community notes

Community notes