Run Kimi K3 (2.8 T parameters,1.56 TB) on iPhone 16 Pro? Weights stream from your SSD through a memory budget you set. Free, local, on Mac and iPhone.
38
stars
13
commits
Swift
primary language
Sep 10, 2026
updated
Run models larger than memory.
Weights stream from your SSD through a memory budget you set. Free, local, on Mac and iPhone.
English | 简体中文
Minirun is a native macOS and iOS app that runs open models whose weights are far larger than the device's memory. Instead of loading a model, it reads each layer — and only the experts the router picks — from an external NVMe SSD into a small, fixed set of buffers, hands them to MLX without copying, and releases them. The amount of memory in use is a number you choose before the run, and the runtime refuses a budget it cannot honor rather than exceeding it later.
Containers are byte-preserving repacks of the published checkpoints (no requantization), published at huggingface.co/nanguoyu and listed at minirun.dev/models. Speeds below are what the app shows on the reference devices — a MacBook Pro (M1 Pro, 32 GB) over a USB4 (40 Gb/s) enclosure, and an iPhone 16 Pro over its USB 3 port with a powered dock — and change with the drive, cable and budget.
| Model | On disk | Mac (M1 Pro, 32 GB) | iPhone 16 Pro | Status |
|---|---|---|---|---|
| DeepSeek V4 Flash — 284 B MoE | 167 GB | ≈ 1.7 s / token, 10.7 GB budget; runs at 2 GB | ≈ 15 s / token, 3.8 GB budget; runs at 2 GB | Chat ready |
| Kimi K3 — 2.8 T MoE | 1.56 TB | ≈ 70 s / token, 8 GB budget | ≈ 220 s / token, 5.8 GB budget, 2-token replies | Chat ready |
| MiniMax H3 — audio & video generation | 64 GB | download, verify and store | download, verify and store | Container ready |
| Qwen3.8-27B | — | — | — | Coming soon |

The whole setup: the phone, a USB4 NVMe enclosure and a powered dock. Kimi K3 lives on that drive.
Mac. Download Minirun.dmg, drag Minirun to Applications, open it. The app is signed and notarized, and checks for updates itself (Sparkle).
iPhone. Install TestFlight from the App Store, then open the public link on the phone: testflight.apple.com/join/QuYTybjV. iPhone 15 Pro or later, iOS 18 or later. Builds expire after 90 days; TestFlight updates them.
Open Apps/Minirun/Minirun.xcodeproj, select the Minirun-iOS scheme and
your iPhone.
In Signing & Capabilities pick your Apple Developer team and change the bundle identifier to one of your own (a free personal team works; the app then re-signs every seven days).
On the phone, enable Settings → Privacy & Security → Developer Mode, then press Run. Or from a terminal:
xcodebuild build -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-iOS -destination 'generic/platform=iOS' \
DEVELOPMENT_TEAM=YOUR_TEAM_ID \
PRODUCT_BUNDLE_IDENTIFIER=com.example.minirun \
-allowProvisioningUpdates
The full guide is at minirun.dev/docs.
Requirements: an Apple-silicon Mac, macOS 15 or later, Xcode 26 or newer.
# Mac app, no signing team needed
xcodebuild build -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-macOS -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
# iOS app for the Simulator (needs an iOS platform installed in Xcode)
xcodebuild build -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-iOS -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO
# Tests: the app suite, then the package suites (use xcodebuild, not swift test)
xcodebuild test -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-macOS -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
xcodebuild test -scheme minirun-Package -destination 'platform=macOS' \
-only-testing:MinirunKitTests -only-testing:MinirunRunnersTests
The Xcode project is generated from Apps/Minirun/project.yml; after editing
it, run xcodegen generate in Apps/Minirun
(XcodeGen).
| Path | What it is |
|---|---|
Apps/Minirun/ | The SwiftUI app — one source tree for macOS and iOS |
Sources/MinirunKit/ | Catalog, download, verification, storage lifecycle, memory planning, the runner protocol (no MLX) |
Sources/MinirunRunners/ | Binds verified containers to the K3 and V4 runtimes |
Sources/ModelAdapters/ | Model layouts, streaming caches and operators on MLX |
Sources/MLXBridge/ | The thin boundary between storage and MLX |
Sources/StorageCore/ | Bounded reads, containers, scheduling — Foundation and Darwin only |
Sources/BenchScenarios/ | Reproducible decode scenarios used by the tests |
Tests/ | Package tests; Apps/Minirun/Tests/ holds the app suite |
docs/ARCHITECTURE.md | Dependency direction and the rules behind it |
Model weights are external artifacts governed by their own licenses; this repository grants no rights to any weights.
Contributions are welcome under Apache-2.0. Every commit is signed off under the Developer Certificate of Origin 1.1; see CONTRIBUTING.md. Report security issues privately as described in SECURITY.md.
Copyright (c) 2026 Dong Wang. Source code is licensed under the Apache License 2.0; see NOTICE and THIRD_PARTY_NOTICES.md. The license does not grant rights to the Minirun name and logo; see TRADEMARKS.md.
Website: minirun.dev · Docs: minirun.dev/docs · Contact: minirun.dev/contact
13 commits
Swift
100.0%
Run Kimi K3 (2.8 T parameters,1.56 TB) on iPhone 16 Pro? Weights stream from your SSD through a memory budget you set. Free, local, on Mac and iPhone.
38
stars
13
commits
Swift
primary language
Sep 10, 2026
updated
Run models larger than memory.
Weights stream from your SSD through a memory budget you set. Free, local, on Mac and iPhone.
English | 简体中文
Minirun is a native macOS and iOS app that runs open models whose weights are far larger than the device's memory. Instead of loading a model, it reads each layer — and only the experts the router picks — from an external NVMe SSD into a small, fixed set of buffers, hands them to MLX without copying, and releases them. The amount of memory in use is a number you choose before the run, and the runtime refuses a budget it cannot honor rather than exceeding it later.
Containers are byte-preserving repacks of the published checkpoints (no requantization), published at huggingface.co/nanguoyu and listed at minirun.dev/models. Speeds below are what the app shows on the reference devices — a MacBook Pro (M1 Pro, 32 GB) over a USB4 (40 Gb/s) enclosure, and an iPhone 16 Pro over its USB 3 port with a powered dock — and change with the drive, cable and budget.
| Model | On disk | Mac (M1 Pro, 32 GB) | iPhone 16 Pro | Status |
|---|---|---|---|---|
| DeepSeek V4 Flash — 284 B MoE | 167 GB | ≈ 1.7 s / token, 10.7 GB budget; runs at 2 GB | ≈ 15 s / token, 3.8 GB budget; runs at 2 GB | Chat ready |
| Kimi K3 — 2.8 T MoE | 1.56 TB | ≈ 70 s / token, 8 GB budget | ≈ 220 s / token, 5.8 GB budget, 2-token replies | Chat ready |
| MiniMax H3 — audio & video generation | 64 GB | download, verify and store | download, verify and store | Container ready |
| Qwen3.8-27B | — | — | — | Coming soon |

The whole setup: the phone, a USB4 NVMe enclosure and a powered dock. Kimi K3 lives on that drive.
Mac. Download Minirun.dmg, drag Minirun to Applications, open it. The app is signed and notarized, and checks for updates itself (Sparkle).
iPhone. Install TestFlight from the App Store, then open the public link on the phone: testflight.apple.com/join/QuYTybjV. iPhone 15 Pro or later, iOS 18 or later. Builds expire after 90 days; TestFlight updates them.
Open Apps/Minirun/Minirun.xcodeproj, select the Minirun-iOS scheme and
your iPhone.
In Signing & Capabilities pick your Apple Developer team and change the bundle identifier to one of your own (a free personal team works; the app then re-signs every seven days).
On the phone, enable Settings → Privacy & Security → Developer Mode, then press Run. Or from a terminal:
xcodebuild build -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-iOS -destination 'generic/platform=iOS' \
DEVELOPMENT_TEAM=YOUR_TEAM_ID \
PRODUCT_BUNDLE_IDENTIFIER=com.example.minirun \
-allowProvisioningUpdates
The full guide is at minirun.dev/docs.
Requirements: an Apple-silicon Mac, macOS 15 or later, Xcode 26 or newer.
# Mac app, no signing team needed
xcodebuild build -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-macOS -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
# iOS app for the Simulator (needs an iOS platform installed in Xcode)
xcodebuild build -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-iOS -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO
# Tests: the app suite, then the package suites (use xcodebuild, not swift test)
xcodebuild test -project Apps/Minirun/Minirun.xcodeproj \
-scheme Minirun-macOS -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
xcodebuild test -scheme minirun-Package -destination 'platform=macOS' \
-only-testing:MinirunKitTests -only-testing:MinirunRunnersTests
The Xcode project is generated from Apps/Minirun/project.yml; after editing
it, run xcodegen generate in Apps/Minirun
(XcodeGen).
| Path | What it is |
|---|---|
Apps/Minirun/ | The SwiftUI app — one source tree for macOS and iOS |
Sources/MinirunKit/ | Catalog, download, verification, storage lifecycle, memory planning, the runner protocol (no MLX) |
Sources/MinirunRunners/ | Binds verified containers to the K3 and V4 runtimes |
Sources/ModelAdapters/ | Model layouts, streaming caches and operators on MLX |
Sources/MLXBridge/ | The thin boundary between storage and MLX |
Sources/StorageCore/ | Bounded reads, containers, scheduling — Foundation and Darwin only |
Sources/BenchScenarios/ | Reproducible decode scenarios used by the tests |
Tests/ | Package tests; Apps/Minirun/Tests/ holds the app suite |
docs/ARCHITECTURE.md | Dependency direction and the rules behind it |
Model weights are external artifacts governed by their own licenses; this repository grants no rights to any weights.
Contributions are welcome under Apache-2.0. Every commit is signed off under the Developer Certificate of Origin 1.1; see CONTRIBUTING.md. Report security issues privately as described in SECURITY.md.
Copyright (c) 2026 Dong Wang. Source code is licensed under the Apache License 2.0; see NOTICE and THIRD_PARTY_NOTICES.md. The license does not grant rights to the Minirun name and logo; see TRADEMARKS.md.
Website: minirun.dev · Docs: minirun.dev/docs · Contact: minirun.dev/contact
13 commits
Swift
100.0%