Bazel Visualizer

A tool for helping dig through and visualize Bazel build data.

Bazel Build Visualizer (BBV)

Bazel is a polyglot build system designed for massive monorepos. When implemented correctly, it can perform most builds for any language in just a few minutes - even in repositories with billions of lines of code. Bazel does this by executing thousands of actions in parallel across a fleet of machines, caching actions for later use, and various other facets like worker processes. All these different mechanisms can make Bazel builds rather difficult to debug.


Over the course of 2 weeks, I spent some time in a bit of a 'vibe coding' era - mostly to give it a whirl. I felt that a rather harmless means of doing this was a locally executing tool (with remote SSH capabilities to make remote development a bit easier, but details). The product of that time is a Java Swing UI tool for executing and digging through the vast amount of build data that Bazel provides.


When a build is performed, BBV will add several flags to the command line that is executed, allowing it to capture and process various information Bazel sends. It will also set up a Build Event Server (BES) to receive Bazel's Build Event Protocol (BEP) in real time with the subject build. The app pushes all data into an embedded database (currently SQLite), allowing for native SQL querying of the data, along with several pre-built pages for digging into the data.


The project is open to contributions, including your own vibe-coded creations!