
simslim
Runs far more iOS simulators by cutting background daemons
Description
Testing on a Mac with iOS simulators, the machine starts swapping and the fans spin up around the fifth or sixth one. The cause is not your app — a freshly booted simulator brings up roughly 180 background services: Siri, Spotlight indexing, photo analysis, News, wallpaper posters, iCloud sync and the rest. None of it matters for development or CI, and all of it consumes memory. simslim turns those off: on the same 16 GB M1 Pro, measured process count drops from 258 to 70 and memory from 4.0 GB to 0.9 GB, taking you from a handful of simulators to a screenful.
It is a Go command-line tool driving simulators through
The memory figure is phys_footprint, the number Activity Monitor shows including compressed and swapped pages, rather than a sum of ps RSS values — the README explains why the latter is not comparable. And
Alongside the CLI there is a SwiftUI macOS app that bundles it and adds searchable status, disk-size and live RAM columns. macOS only, requiring Xcode with an iOS Simulator runtime. MIT licensed.
Category-based slimming: services a simulator does not need are grouped into widgets and wallpaper, Siri, Spotlight, iCloud, App Store and push, mail and calendar, Safari sync and Family, each switched off as a group with an estimated saving.
Selective retention:
Real memory measurement:
Live fleet monitoring:
CI verification:
Disk management:
Simulator management: clone, rename, boot, shut down, erase and delete, plus clone repair — a layer over the simctl operations you actually use.
Reversible:
JSON output: read-only and management commands accept
Desktop app: the SwiftUI app bundles the CLI and adds searchable simulator status, disk size and live RAM columns along with per-daemon controls and purpose summaries.
Simple install:
It is a Go command-line tool driving simulators through
xcrun simctl, disabling launchd services by category — widgets and wallpaper, Siri and intelligence, Spotlight, iCloud, App Store and push, mail and calendar, Safari sync, Family and Screen Time — each annotated with roughly how much it saves. Keeping something is explicit: --except search preserves Spotlight, --keep com.apple.apsd preserves push.The memory figure is phys_footprint, the number Activity Monitor shows including compressed and swapped pages, rather than a sum of ps RSS values — the README explains why the latter is not comparable. And
status and measure answer different questions: the first reports the state of the launchd labels simslim manages and is not a live process count, while the second walks every process under that simulator and sums their footprints.Alongside the CLI there is a SwiftUI macOS app that bundles it and adds searchable status, disk-size and live RAM columns. macOS only, requiring Xcode with an iOS Simulator runtime. MIT licensed.
Features
Category-based slimming: services a simulator does not need are grouped into widgets and wallpaper, Siri, Spotlight, iCloud, App Store and push, mail and calendar, Safari sync and Family, each switched off as a group with an estimated saving.
Selective retention:
--except keeps a whole category and --keep keeps a specific launchd label, so testing push keeps apsd and testing search keeps Spotlight — it is not all or nothing.Real memory measurement:
measure walks every process under a simulator and sums phys_footprint, which is the figure that decides how many more fit, rather than an RSS total that double-counts shared mappings.Live fleet monitoring:
top shows a live view across simulators and drills into one for per-daemon RAM and CPU.CI verification:
verify --profile ci.json checks an exact profile match and exits non-zero on drift, which makes it usable in a pipeline, while doctor checks whether specific capabilities such as push, StoreKit or universal links still work.Disk management:
size reports allocation, disk-plan measures reclaimable data read-only, and disk-clean removes chosen categories such as caches and logs after confirmation.Simulator management: clone, rename, boot, shut down, erase and delete, plus clone repair — a layer over the simctl operations you actually use.
Reversible:
off restores a simulator to stock, and the project recommends cloning before changes so the copy serves as a backup.JSON output: read-only and management commands accept
--json for scripting and higher-level tooling.Desktop app: the SwiftUI app bundles the CLI and adds searchable simulator status, disk size and live RAM columns along with per-daemon controls and purpose summaries.
Simple install:
brew install mobai-app/tap/simslim or go install, macOS only, requiring Xcode with an iOS Simulator runtime.