| name | sbh |
| description | Disk-pressure defense for AI coding workloads. Use when: disk full, low space, ballast, cleanup, scan artifacts, emergency, sbh daemon, sbh status. |
SBH — Storage Ballast Helper
Prevents disk-full disasters via ballast files, artifact scanning, and predictive pressure monitoring. Three-pronged: ballast (instant space), scanner (stale artifacts), special locations (/tmp, /dev/shm, swap).
Quick Check
sbh status
sbh status --json | jq '.pressure'
sbh check --need 5G
sbh check --predict 30
Exit codes: 0 = healthy, 1 = pressure, 2 = error.
Daemon
sbh daemon
systemctl --user start sbh
sbh install --systemd --user --auto
sbh install --launchd --auto
sbh install --wizard
Signals: SIGHUP = reload config, SIGUSR1 = force scan now, SIGTERM = graceful stop.
Ballast
Pre-allocated sacrificial files — released in milliseconds, no scanning needed.
sbh ballast status
sbh ballast provision
sbh ballast release 3
sbh ballast replenish
Defaults: 10 x 1 GiB = 10 GiB. Ensure ballast dir is on same mount as pressure source.
Scanning & Cleanup
sbh scan /data/projects --top 20
sbh clean /data/projects --dry-run
sbh clean --target-free 50G --yes
Scoring: Location (.25) + Name (.25) + Age (.20) + Size (.15) + Structure (.15) = 1.0.
Protection
sbh protect /path
sbh unprotect /path
Config globs: scanner.protected_paths. Hard vetoes (always enforced): .git/ dirs, open files, age < 10 min, non-writable parents.
Emergency Recovery
Zero-write mode for near-100% full disks. No config file needed.
sbh emergency /data --yes
sbh emergency --target-free 10G
Observability
sbh dashboard
sbh stats --window 24h
sbh blame --top 10
sbh explain --id <ID>
Configuration
Config: ~/.config/sbh/config.toml | Env: SBH_ prefix | Fallback: /etc/sbh/config.toml
sbh config show
sbh config validate
sbh config set KEY VALUE
sbh tune --apply --yes
Anti-Patterns
| Don't | Do Instead |
|---|
Ballast on /tmp | paths.ballast_dir on same mount as pressure source |
| Daemon as root, CLI as user | --user scope — avoids state file permission mismatch |
| Skip pre-build check | sbh check --need 10G in CI/hook |
Delete .sbh-protect by hand | sbh unprotect /path |
| Wait for Red to act | Act at Yellow — agent swarms escalate fast |
min_file_age_minutes = 0 | Keep >= 5 to protect in-flight writes |
Reference Index