Go CLI for Gradle
build-brief wraps gradle / ./gradlew,
keeps the full raw log on disk, and replaces walls of task output
with a concise summary -- so you and your AI agents instantly see
what succeeded, what failed, and which warnings are worth your attention.
414 lines of raw Gradle output → 5 lines printed.
How it works
Prefix your Gradle command. build-brief handles the rest.
Prefix the command
Replace ./gradlew build with
build-brief build.
All Gradle flags pass through via --, e.g.
build-brief -- --stacktrace test.
Full log hits disk
Every line Gradle emits is written to a log file like
build-brief-6c5b629d.latest.log.
Control where with --log-dir. Nothing is lost.
Terminal gets the brief
Success stays concise: build status, warnings, and when build-brief can reliably extract them, key outputs like artifact paths. Failure surfaces structured diagnostics: failed tasks, compiler errors, and the raw log path. The Gradle exit code is always preserved.
Before & After
A real 16-module Android/KMP project (:androidApp:assembleDebug).
Left: raw Gradle output from a clean assembleDebug run (414 lines).
Right: exactly what build-brief printed for that same command.
▸ These logs were generated from a real source code project using
build-brief against
staticvar/vlr-gg.
The public repo is the outward-facing project; the multi-module rewrite used for
these logs is newer internal development — not fake or mocked.
The after panel shows the exact 5 lines printed by a freshly built local copy
of the current source. The raw panel is trimmed for layout; the full log contained 414 lines across
androidApp, core, data, domain, designsystem, shared, and 10 feature modules.
When builds fail
On success, build-brief prints one line. On failure, it extracts the failed tasks, compiler errors, and actionable diagnostics.
Exit code preserved. 29 raw lines reduced to 16.
What build-brief keeps
Failures & errors
Compilation errors, exception stack traces, and FAILED task markers surface immediately so you know exactly what broke.
Warnings
Kotlin and Java compiler warnings, deprecation notices, and linter diagnostics stay visible without the surrounding noise.
Test results
Test summaries and individual failure details are preserved. Passing tests stay quiet unless they fail.
Generated artifacts
JAR, AAR, APK, and bootJar output paths are shown so you know where your build products landed.
Build status
The final BUILD SUCCESSFUL / FAILED line, task counts, and timing are always printed. The Gradle exit code is preserved.
Full raw log
Every line goes to a timestamped file in /tmp. Nothing is ever discarded; you can always inspect the complete output.
Install
Pick your preferred method. No runtime dependencies beyond the binary.
Agent integration
Every line of Gradle output an AI agent reads costs context-window tokens.
A single assembleDebug can burn thousands of tokens
on task lifecycle noise that tells the agent nothing useful. build-brief can
install custom instructions so agents automatically route Gradle commands
through it — reclaiming that context budget for reasoning about your code.
⚡ 414 lines → 5 lines. That's thousands of tokens back in your agent's context window.
AI coding agents (Copilot, Claude Code, Codex, Gemini) have finite context windows.
Every token spent reading > Task :core:mergeDebugShaders NO-SOURCE
is a token not spent understanding your code. build-brief keeps Gradle signal,
discards lifecycle noise, and gives your agent more room to think.
GitHub Copilot CLI
Copilot plugin + instruction integration
Claude Code
Claude plugin + instruction integration
Codex CLI
Codex plugin + instruction integration
Gemini CLI
GEMINI.md instruction file
OpenCode
Custom instruction support
Measurement
build-brief gains tracks cumulative token savings across every build.
For AI agents, these savings translate directly to context-window budget
reclaimed — capacity the agent can spend reasoning about your code
instead of parsing Gradle task lifecycle output.
Ecosystem
build-brief is build-script agnostic. If it runs through gradle
or ./gradlew, it works.
Limitations
build-brief is Gradle-only. It does not wrap Maven, Bazel, sbt, or other build tools.
Daemon mode defaults to auto. Use --daemon-mode on or --daemon-mode off to control it explicitly.
Inspired by RTK, but built separately because RTK is not compatible enough with Gradle workflows.
Output modes are human (default, filtered) and raw (pass-through). There is no intermediate verbosity level.
FAQ
No. The Gradle exit code is preserved exactly. If Gradle exits with 1, build-brief exits with 1. CI pipelines, scripts, and && chains work as expected.
To a log file whose path is printed on failure, such as /tmp/build-brief/build-brief-6c5b629d.latest.log. You can override the directory with --log-dir or the BUILD_BRIEF_LOG_DIR environment variable. Nothing is ever discarded.
Yes. build-brief build auto-detects the wrapper. You can also pass an explicit path: build-brief --gradle ./gradlew build or build-brief --gradle gradle build.
By default, build-brief uses --daemon-mode auto. You can control this with --daemon-mode on or --daemon-mode off. When using daemon mode on, consider --gradle-user-home for shared caches.
AI coding agents have finite context windows — typically 100K–200K tokens. Every line of Gradle output they read consumes tokens from that budget. A single assembleDebug on a real 16-module project produces 414 lines of raw output; build-brief reduces that to 5. Across a working session, this reclaims tens of thousands of tokens the agent can use for reasoning about your code. build-brief gains tracks this cumulatively so you can see the concrete difference.
build-brief is inspired by RTK but built separately because RTK is not compatible enough with Gradle workflows. build-brief is purpose-built for Gradle's output patterns, task lifecycle, and error reporting.