Walks an OTP runtime tree and tells you which libraries are dead weight.
Reads each .beam file's imports chunk to build a call graph, seeds
reachability from your app's modules + the OTP runtime essentials
(kernel/stdlib/elixir/logger/sasl), and reports:
- Libraries with zero reachable modules → safe to strip entirely
- Duplicate library versions → keep only the newest
- Foreign apps from another project's release tree → cache cruft
- Per-lib breakdown of reachable vs total module count + KB
Usage
mix mob.audit_otp # audit the most recent release tree
mix mob.audit_otp --root path/to/otp # audit a specific tree
mix mob.audit_otp --json # machine-readable outputWhere the audit reads from
Looks for an OTP root in this order:
--rootarg if given_build/mob_release/<App>.app/otp(latest release build)- The iOS device cache at
~/.mob/cache/otp-ios-device-*
What this is NOT (yet)
Read-only. Does not modify the bundle. The companion mix mob.release --slim will use the same audit to drive auto-stripping; this task is
the dry-run that lets you see what would happen.