Releases: ShopDevX/breakerbox
Release list
v0.2.0 — Terraform spend preflight
Spend preflight for Terraform — the point where breakerbox stops linting command strings and starts pricing the real diff.
terraform plan -out tfplan
terraform show -json tfplan > plan.json
breakerbox plan plan.jsonbreakerbox plan prices every created or replaced resource against the same catalog and 24h horizon the command engine uses, and applies the same caps — turning the unknownBlastRadius that terraform apply returns at the hook into a real number when you choose to run it.
- Opt-in by design — deliberately NOT wired into the PreToolUse hook, so the hot path stays pure string-parsing with no subprocess and no Terraform dependency (~48ms preserved).
- Coverage over precision — AWS/GCP/Azure compute, managed DBs, EKS/GKE/AKS node pools, NAT/ALB, and more; unrecognised resource types are reported as unpriced rather than guessed.
- Same verdict surface — DENY/ASK against your action/session/daily caps, exit 2 on deny. Run it in CI before
apply. - Also fixes
breakerbox version(was hardcoded0.1.0; now reads the package version, off the hook path).
78 tests · MIT · https://shopdevx.github.io/breakerbox/
From r/ClaudeAI feedback (u/kantorcodes1): terraform show -json + provider pricing is where it becomes real spend preflight instead of command linting.
🤖 Generated with Claude Code
v0.1.3 — decision log
First public release line of breakerbox — hard spend caps and a kill-switch for the non-LLM actions your AI agent takes.
npm i -g @shopdevx/breakerbox && breakerbox init
Highlights
- Guardrail in Claude Code’s PreToolUse hook — reads every Bash command before it runs, prices it, and denies/asks if it breaches a cap. Zero deps, no build, ~48ms.
- Decision log (
.breakerbox/decisions.jsonl, new in 0.1.3) — one line per evaluated command: the command, the verdict, and whichfailModewas live. A crash is recorded asoutcome:"evaluation-error"; an absent line means the hook was never wired. - Fail-closed coverage (0.1.2) — a spawn test asserting
failMode:"closed"turns a crash into an explicitask, never a silent allow. - Belt and suspenders (0.1.2) — pair with
--allowedToolsso raw Bash is stripped when cloud access isn’t needed.
Honest limits
Spend guardrail, not a security sandbox (base64/eval evade it); only Bash is inspected today; prices are approximate list prices.
70 tests · MIT · https://shopdevx.github.io/breakerbox/
🤖 Generated with Claude Code