Inspect the build
Asking the build a question shouldn't require running the build. The
inspection commands let you ask things like "which projects depend
on this one?", "what does my project's config look like after
templates resolve?", "which projects changed since origin/main?",
"is cats-core getting evicted by something else?" — and get
a typed answer.
Two output shapes for every command:
--output text(default): for humans reading the terminal.--output json: a structured payload designed forjq, GitHub Actions matrix expressions, your scripts, your IDE plugin, your agent — anything that can read JSON.
That's the composition story. Bleep doesn't try to be the universal
runner. It tries to be the universal source-of-truth, and to expose
every answer in the format that lets your other tools do their
job. CI matrix from project graph? Pipe bleep build invalidated --output json
into a jq filter into actions/setup-matrix. Editor jump-to-config?
Read bleep extract-info project-graph --output json. Custom dashboard
of your monorepo? Same.
Read what's there
bleep build show short
Prints a project's YAML exactly as you wrote it in bleep.yaml,
without any template expansion. Useful when you want to verify that
your edit landed where you think it did.
bleep build show short myapp
bleep build show effective
Prints the project's YAML after templates and inheritance are merged in — what bleep actually sees and uses to compile, test, and publish. The "is my template change actually doing what I think?" answer.
bleep build show effective myapp
bleep build show effective myapp --output json | jq '.kotlin'
bleep build diff effective
Diff the effective project config between two git revisions. After you edit a template, this answers "did my change actually do what I think it did?" with a concrete YAML diff — not a guess at what should have happened.
bleep build diff effective # vs HEAD
bleep build diff effective --revision v1.2.0 # vs an old release
Reason about dependencies
bleep build evicted
Reports the dependency conflicts in your build — cases where two transitive paths to the same library disagree on the version, and Coursier picked one. Names the callers so you can decide whether the eviction is safe (and pin a library version scheme if it isn't).
bleep build evicted myapp
bleep build evicted myapp --output json | jq '.[] | select(.severity=="error")'
The JSON shape is structured around (winner, losers, callers) so you can audit a whole monorepo's eviction surface without reading text reports.
CI shape
bleep build invalidated --base origin/main
Lists the projects whose source or config changed vs a base commit,
plus every project that transitively depends on them. The
CI-shaping primitive: feed the result into xargs bleep compile
and you build only what changed (and what depends on what changed).
Feed the JSON form into a GitHub Actions matrix and you fan out
exactly the right test job set.
bleep build invalidated --base origin/main | xargs bleep compile
bleep build invalidated --base origin/main | xargs bleep test
bleep build invalidated --base origin/main --output json # for matrix expansion
See CI project invalidation for the full pattern with example workflows.
Build metadata for tools and IDEs
bleep extract-info
Emits structured JSON about the build for IDE plugins, scripts, and external tooling. Several subcommands carve different views:
bleep extract-info all # everything in one JSON object
bleep extract-info project-graph # projects + their dependencies
bleep extract-info project-groups # groups for bulk selection (cross-ids, folders)
bleep extract-info scripts # registered scripts with project + main class
bleep extract-info sourcegen # registered sourcegen entries
This is the data interface bleep's own MCP server consumes, and it's the same data interface third-party IDE plugins or custom scripts use. Compose freely.
bleep projects and bleep projects-test
Plain enumeration of project names — respects subfolder
scoping (cd into integrations/ and only those projects appear)
and the cross-id glob shorthand. Pipe-friendly with
--output raw.
bleep projects --output raw | grep -v test
Reference for projects → ·
Reference for projects-test →
See also
- Refactor your build — the same
model, but the commands that change
bleep.yamlrather than read it. bleep buildreference andbleep extract-inforeference — full flag set, auto-generated from the CLI.- CI project invalidation —
the worked GitHub Actions / GitLab CI patterns built on
bleep build invalidated. - MCP server — AI agents reading the same JSON via Model Context Protocol tool calls.