mix mob.cache (mob_dev v0.5.1)

Copy Markdown View Source

Inspects every cache mix mob.* writes to outside the project tree, and (with --clear) deletes them. Distinct from mix clean (build artifacts in _build/) and mix deps.clean (deps in deps/) — this targets caches in your home directory that survive across projects.

By default the command is read-only — it prints a summary of what's on disk and exits. Pass --clear to wipe Mob's own cache, and add --include-transitive to also wipe caches owned by transitive deps (currently elixir_make, used by exqlite for its prebuilt NIF tarball).

Caches we do not touch — even with --include-transitive — because they're shared with the rest of your Elixir/Android/iOS work:

  • ~/.hex/, ~/.mix/ — Hex/Mix global state
  • ~/.gradle/ — Gradle wrapper + caches
  • ~/Library/Developer/Xcode/ — Xcode DerivedData, Index
  • ~/Library/Caches/com.apple.dt.* — Xcode-related caches

Clean those manually if you want a true scorched-earth reset.

Usage

mix mob.cache                                 # show what's on disk (default)
mix mob.cache --include-transitive            # also list elixir_make cache
mix mob.cache --clear                         # delete Mob's own cache
mix mob.cache --clear --include-transitive    # delete Mob's + elixir_make's
mix mob.cache --clear --yes                   # skip the confirmation prompt
mix mob.cache --dry-run                       # explicit "list only" (alias for default)

Where the caches live

Mob's own cache — pre-built OTP runtimes (iOS sim, iOS device, Android arm64, Android arm32). One per platform/ABI; ~200–400 MB each. Reused across every Mob project on this machine.

$MOB_CACHE_DIR     (if set)
~/.mob/cache/      (default)

Override with MOB_CACHE_DIR in your shell or mob.exs if you want it somewhere project-local or sandbox-friendly (Nix users: this is the switch you want).

elixir_make cache — pre-built NIF tarballs that exqlite and other NIF-using deps download instead of recompiling from source. The same tarball is reused across every Elixir project on this machine.

~/Library/Caches/elixir_make/    (macOS)
~/.cache/elixir_make/            (Linux)

This belongs to elixir_make, not Mob — but mix mob.deploy is what populated it, so we offer to clear it here.