Choose by workload
Start with your workload’s bottleneck
Use these recommendations as a starting point, not a performance guarantee. Dependency count, compiler settings, simulator count, and data size all affect results. Test a representative task from your own project for a more reliable comparison than chip names alone.
Single-project builds and releases
Start with Keep M4 S.Specs: M4 / 16GB / 256GB. A good fit for focusing on one project at a time, with dependency installation, archiving, and artifact export all within one rental period.
Check the combined size of your repository, dependency caches, and DerivedData first. If you only need macOS for packaging, a short rental can help avoid paying for idle time between releases.
Watch memory pressure and swap in Activity Monitor. If you also need several simulators open during builds, clearing SSD space won’t solve a memory shortage.
Multi-branch CI and UI testing
Start with Keep M4 L.Specs: M4 / 24GB / 512GB. Compared with the entry-level plan, you get more memory and storage headroom. Both plans use M4, so the difference isn’t a chip upgrade.
Queue builds and UI tests separately, then increase concurrency gradually. Track duration, peak memory, and cache usage for each run to find a concurrency level that avoids frequent swapping.
Long-running runners also need cache cleanup, log rotation, and credential management. Choose a monthly rental based on actual usage, not just how many times a pipeline runs each day.
MLX inference and editing large media projects
Start with Keep M4 Pro.Specs: M4 Pro / 64GB / 2TB. Start here if you need more unified memory or want to keep model weights, evaluation data, and large media files on the same machine.
Model weights aren’t the only memory requirement: leave room for the context cache, runtime, and system. Quantization, context length, and batch size all affect which models will run.
For editing, check your media formats, proxy files, effects, and export settings. Test a representative clip first to estimate export time and storage growth before scheduling a full batch.