
layerX (Go, MIT, v1.4.1, 72★) is a terminal TUI for Docker and Podman image layer inspection with two capabilities `dive` doesn't have: interactive side-by-side image comparison and a CI gate (`layerx ci`) with configurable thresholds and exit codes. Released June 12, 2026.
RUN layer left behind a 400 MB apt cache. docker history gives you layer hashes and byte counts but no way to browse the filesystem. dive, the usual answer, is excellent for interactive inspection — but it has no CI mode and no image-compare feature. You close the terminal and promise yourself you'll fix it after the next release.github.com/deveshctl/layerx — is a Go TUI released June 12, 2026, that covers the two things dive doesn't: side-by-side image comparison and a CI gate with a configurable exit code. 1# macOS / Linux (Homebrew)
brew install deveshctl/tap/layerx
# Windows (Scoop)
scoop bucket add deveshctl https://github.com/deveshctl/scoop-bucket
scoop install layerx
# Go toolchain (any platform, Go 1.26+)
go install github.com/deveshctl/layerx@latest
# Pre-built binaries: .deb, .rpm, Linux/macOS/Windows amd64 + arm64
# → https://github.com/deveshctl/layerx/releases/latestlayerx image nginx:1.27j/k to move, Enter to expand, / to search). You can filter to just the "wasted" files — those added in one layer and deleted or overwritten in a later one — which is often where the bloat is hiding.
layerx archive ./my-image.tar reads a docker save or OCI tar directly. Useful in air-gapped environments or when analyzing images built on a different machine. Podman is supported natively (layerx image --podman myimage). Multi-platform images work too: pass --platform linux/arm64 to inspect the architecture you actually care about. 1RUN pip install calls to a single consolidated layer, and you want to confirm the refactor actually reduced both total size and wasted bytes before merging the PR.layerx compare python-api:before python-api:afterdocker inspect | jq pipelines.dive doesn't have. layerX ships a ci subcommand with three configurable thresholds: 1.layerx.yaml at repo root. The project ships five starter configs for node, python, java, go, and a generic baseline:# .layerx.yaml — Python service example
ci:
minEfficiency: 0.90
maxWastedBytes: 50MB
maxUserWastedPercent: 5- name: Check image efficiency
run: layerx ci python-api:${{ github.sha }}0 means the image passed all thresholds. Exit code 1 means a rule failed — the build stops. Exit code 2 is an internal error. JSON output is available via --output json if you want to feed results into a downstream step or surface them in a PR comment. 1| Field | Value |
|---|---|
| Repo | github.com/deveshctl/layerx |
| Version | v1.4.1 (released 2026-06-12) |
| Language | Go (100%) |
| License | MIT |
| Stars | 72 ★ |
| Commits | 190 |
| Install (fastest) | brew install deveshctl/tap/layerx |
| Requires | Docker or Podman (or a saved .tar for archive mode) |
| Platforms | Linux, macOS, Windows — amd64 + arm64 |
dive for layer inspection and want to add CI gating or image comparison to your workflow. The two can coexist — layerX is narrower in scope than dive's overall UX polish but covers the two gaps that matter in a CI context.docker history before you push.github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.