build-brief
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in install.sh
- rm -rf — Recursive force deletion command in scripts/build-artifacts.sh
- rm -rf — Recursive force deletion command in scripts/publish-homebrew-tap.sh
- rm -rf — Recursive force deletion command in scripts/validate-homebrew-formula.sh
Permissions Pass
- Permissions — No dangerous permissions requested
This is a small command-line utility written in Go that filters verbose Gradle output into concise, readable build summaries. It preserves the full raw log on your disk while only displaying failed tasks, warnings, and overall status in the terminal.
Security Assessment
The overall risk is Medium. While the tool itself does not request dangerous permissions or contain hardcoded secrets, the recommended installation method poses a significant concern. The official instructions pipe a remote script directly into bash (`curl | bash`). An automated audit flags multiple `rm -rf` recursive force deletion commands within the installer and various build/publish scripts. While standard for cleaning up build artifacts during development, executing these via an unreviewed remote script always carries inherent risk. The application executes shell commands by design, as it acts as a wrapper around your Gradle environment, and it requires network access to download dependencies during a build.
Quality Assessment
The project appears to be actively maintained, with repository activity reported as recent as today. It uses the permissive MIT license and includes a clear description and documentation. However, community trust and visibility are currently very low. With only 5 stars on GitHub, the tool has not yet been widely adopted or heavily vetted by the broader developer community.
Verdict
Use with caution. The Go application itself is likely safe, but you should audit the `install.sh` script or build the binary from source to avoid blindly running remote `rm -rf` commands.
Reduce noisy Gradle output into concise build briefs
build-brief
build-brief is a small Go CLI that sits in front of Gradle, keeps the full raw log on disk, and cuts terminal output down to the parts that usually matter.
It is inspired by rtk, but built separately because RTK is not compatible enough with Gradle workflows to reuse directly here.
For full docs, real before/after examples, agent setup, hook guidance, limitations, and install details, see https://bb.staticvar.dev.
Why build-brief?
- Wraps either
gradleor./gradlew - Preserves the Gradle exit code
- Keeps the full raw log on disk
- Returns failed tasks, failed tests, warnings, artifacts, and final status
- Normalizes output-shaping flags so reduction stays stable
- Reuses or starts the Gradle daemon by default
- Works across Spring Boot, Ktor, Android, Kotlin Multiplatform, plain JVM, and multi-project builds
Install
Script install
curl -fsSL https://bb.staticvar.dev/install.sh | bash
wget -qO- https://bb.staticvar.dev/install.sh | bash
Homebrew or Linuxbrew
brew tap static-var/tap
brew install static-var/tap/build-brief
Build from source
go build -o build-brief ./cmd/build-brief
The installer currently targets macOS and Linux. Windows should use a release archive or build from source.
Quick start
build-brief test
build-brief build
build-brief gradle test
build-brief ./gradlew test
build-brief --gradle-user-home /tmp/build-brief-gradle-home ./gradlew test
build-brief gains --history
build-brief --help
If you want to keep the original command shape explicit, prefer build-brief gradle ... for a PATH-resolved Gradle binary and build-brief ./gradlew ... for a project-local wrapper.
Example successful test run:
$ build-brief test
BUILD SUCCESSFUL in 2s
Tests: 2 passed, 0 failed
Warnings: 1
- OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
Example failed test run:
$ build-brief test
BUILD FAILED in 900ms
Tests: 7 passed, 1 failed
Command: gradle --console=plain test
Failed tasks:
- :test
Failed tests:
- GreetingServiceTest > returns fallback message
Highlights:
- GreetingServiceTest > returns fallback message: expected:<Hello> but was:<null>
Raw log: /tmp/build-brief/build-brief-abcd1234.latest.log
Check your gains
build-brief records rough token savings automatically whenever it wraps a Gradle command. Use the gains subcommand to inspect totals, recent runs, project-only scope, or machine-readable output:
build-brief gains
build-brief gains --history
build-brief gains --project
build-brief gains --format json
build-brief gains --reset
The savings numbers use the built-in chars-divided-by-4 heuristic. They are useful for rough feedback and trend tracking, not billing-grade accounting.
Example text output:
build-brief Token Savings (Global Scope)
============================================================
Total commands: 38
Raw tokens: 80.9K
Emitted tokens: 3.8K
Tokens saved: 77.2K (95.4%)
Efficiency: ██████████████████████░ 95.4%
By Command
------------------------------------------------------------------------------
# Command Count Saved Avg%
------------------------------------------------------------------------------
1 gradlew :androidApp:assembl… 6 38.6K 98.2%
2 gradlew :androidApp:clean :… 6 32.7K 92.5%
3 gradlew build 9 2.6K 60.8%
4 gradlew assembleDebug 2 1.4K 99.1%
5 gradle clean jvmTest 6 848 47.5%
Recent Commands
----------------------------------------------------------
03-21 13:02 ▲ gradle clean test 67.2% (90)
03-21 13:02 ▲ gradle clean jvmTest 35.8% (82)
03-21 13:02 ▲ gradle clean test 49.2% (62)
Example JSON output:
{
"summary": {
"total_commands": 38,
"total_raw_tokens": 80925,
"total_emitted_tokens": 3757,
"total_saved_tokens": 77168,
"avg_savings_pct": 95.3574297188755,
"by_command": [
{
"command": "gradlew :androidApp:assembleDebug",
"count": 6,
"saved_tokens": 38555,
"avg_savings_pct": 98.18226065576931
},
{
"command": "gradlew :androidApp:clean :androidApp:assembleDebug",
"count": 6,
"saved_tokens": 32680,
"avg_savings_pct": 92.50760139796417
},
{
"command": "gradlew build",
"count": 9,
"saved_tokens": 2557,
"avg_savings_pct": 60.75767841011745
}
]
}
}
Agent integration
build-brief can install managed instruction blocks for supported tools:
build-brief --install
build-brief --install-force
build-brief --global
There is also a checked-in Claude Code hook example at examples/hooks/claude-code/.
For Claude Code, build-brief --global now installs a managed local plugin plus
the usual CLAUDE.md guidance when Claude is detected.
For GitHub Copilot CLI, build-brief --global now installs a managed local plugin
with a preToolUse guardrail when Copilot is detected.
For Codex, build-brief --global now installs a managed local plugin, marketplace
entry, and hook-backed guardrail alongside the AGENTS integration when Codex is
detected.
If your agent tool supports AGENTS.md or an instructions file, a simple default rule is:
Use `build-brief` for routine Gradle commands.
Prefer `build-brief gradle ...` or `build-brief ./gradlew ...` over raw Gradle calls.
For chained shell commands, rewrite each Gradle segment, for example `build-brief gradle test && build-brief gradle check`.
Fall back to raw Gradle only when the reduced summary is not enough.
Current limitations
- Standard Gradle layouts work best today
- Custom artifact directories or unusual plugin output may still require the raw log
- Platform support exists for macOS, Linux, and Windows, but the project is not heavily tested across every OS, shell, CI environment, and Gradle/plugin combination yet
For the fuller behavior guide, hooks, examples, and caveats, head to https://bb.staticvar.dev.
Project links
- Website: https://bb.staticvar.dev
- Releases: https://github.com/static-var/build-brief/releases/latest
- Homebrew tap: https://github.com/static-var/homebrew-tap
- Hook examples:
examples/hooks/README.md
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found