CoreAI-Model-Zoo

Core AI is Apple’s on-device ML runtime in iOS 27 / macOS 27 and the successor to Core ML. This repo is a community catalog of more than 90 open models converted to it, ready to download from Hugging Face. It is not affiliated with Apple. Each model’s output was compared with the original before it shipped, and each comes with a conversion recipe. You can try them in the CoreAI Zoo app or add one to your own Swift app.
A zoo model answering on an iPhone, in a sample app from apps/.
PyTorch models are exported with Apple’s coreai-torch into .aimodel bundles that run on the GPU or the Neural Engine. On the June 2026 betas, Qwen3-8B in 4-bit decoded at 94 tok/s on an M4 Max GPU, against 90 for MLX under the same protocol (apple-silicon-llm-bench). Qwen3.5-0.8B decoded at 69.7 to 74.0 tok/s on an iPhone 17 Pro GPU.
Try it
To try a model without building anything, get CoreAI Zoo for iPhone or Mac. The iPhone app needs iOS 27, and the Mac app needs macOS 27 on Apple silicon. Both OS versions are out now, and models download inside the app.
To use one in your own Swift app, add the package https://github.com/john-rocky/coreai-kit in Xcode. CoreAIKit is this catalog’s Swift package, and it loads a model by its catalog id:
import CoreAIKit
guard let modelID = ModelCatalog.builtin.entry(id: "qwen3-0.6b")?.modelID else {
throw CoreAIKitError.modelNotAvailableOnPlatform(id: "qwen3-0.6b")
}
let chat = try await ChatSession(model: modelID)
let reply = try await chat.respond(to: "What is the capital of Japan?")
print(reply)
The first download is about 352 MB on a Mac and 456 MB on an iPhone. See CoreAIKit’s quickstart for the exact version and the tested Xcode build. There is more on the first run, including the ChatDemo sample, text to speech and Apple’s FoundationModels.
Models
Start with Qwen3 0.6B for chat or Whisper large-v3-turbo for speech to text. Many model cards include the Swift code to load the model.
| Task |
Models |
| Chat, 2B and smaller |
Qwen3 0.6B, Qwen3.5-0.8B, Qwen3 1.7B, Qwen3.5-2B, Gemma 4 E2B, Gemma 4 E2B with hand-written Metal kernels, LFM2.5-1.2B-Instruct, LFM3-1.7B, Granite 4.0-H 1B / 350M, RWKV-7 Goose 1.5B, MiniCPM5-1B, MiniCPM5-2B, Youtu-LLM-2B |
| Chat, larger |
Gemma 4 E4B, LFM2.5-2.6B, LFM2.5-8B-A1B, Nanbeige4.1-3B, Nanbeige4.2-3B, Qwen3 4B, Qwen3.5-4B, Nemotron-3-Nano 4B, Agents-A1-4B, BitCPM-8B, LLaDA-8B dLLM |
| Chat, Mac only |
Qwen3.6-35B-A3B, Qwen3.6-27B, Qwen3.8-27B, Ornith-1.0-9B, GLM-4.7-Flash, Gemma 4 12B, Gemma 4 31B, Bonsai 2 27B, Muse-Glimmer-30B |
| Vision-language |
Qwen3-VL, Holo2-4B, MiniCPM-V 4.6, MiniCPM-V 4.7-1B, WeVisOne-VL-2B, LFM2.5-VL-450M, North-Micro-Vision, LFM2.5-VL-3B, Gemma 4 E2B vision (VL), BitVLA |
| Documents and OCR |
Unlimited-OCR, GLM-OCR, MinerU2.5-Pro, ColModernVBERT |
| Speech to text |
Whisper large-v3-turbo, Qwen3-ASR-1.7B, Fun-ASR-Nano-2512, EmbeddingGemma 2 Transcribe, Parakeet-TDT-0.6B, Parakeet-TDT-0.6B-v2, Nemotron 3.5 ASR Streaming 0.6B, S1-mini |
| Speaker diarization and audio understanding |
Streaming Sortformer 4-spk v2, Nemotron-3-Diarization, Qwen2.5-Omni-3B Audio |
| Text to speech |
Kokoro-82M, VoxCPM-0.5B, VoxCPM2 2B, VibeVoice-Realtime-0.5B, pocket-tts, Audio8-TTS-Preview-0.6b |
| Music and stems |
Stable Audio Open Small, Mel-Band RoFormer |
| Embeddings and ranking |
EmbeddingGemma 300M, Qwen3-Embedding 0.6B, Qwen3-Reranker 0.6B, Granite-Embedding-97M-Multilingual-R2 |
| Routing, scoring and yes-no decisions |
decider-0.8b, decider-2b-vision, clef-flash, Kev-0.8B, Kev-4B, d1-3B, OpenThai-SystemOne, laya multilingual, Julia-1, d1-omni-600M, APUS-Decision-v1-4B, Qwen3.5-2B-Decision, System One scorer — Qwen3.5-4B |
| Classification and extraction |
Shieldstral-1.0-3B, GLiNER2-PII, GLiNER2.5-Decide |
| Detection, depth, upscaling and 3D |
RF-DETR nano/small/medium/large, RF-DETR-Seg nano→2xlarge, YOLOX-S, AdcSR ×4, Depth Anything 3, TripoSplat, V-JEPA 2 |
| Image and video generation |
LTX-Video 2B distilled, FLUX.2 klein 4B, GLM-Image, Z-Image-Turbo, RGBA-Image-2.1, RGBA-Image-2.1-Turbo |
| Time series |
TimesFM 2.5 200M, Timestral-209M |
See MODELS.md for downloads, licenses and measured speeds.
Convert or rebuild a model
To port a new model, follow PORTING.md from a Hugging Face checkpoint to a verified .aimodel on an iPhone. To rebuild a published model from its recipe, see Rebuild a bundle.
My notes on how the runtime behaves, with measured numbers, are in knowledge/ and on the website. The Art of Core AI is a free book built from them. If you hit an error, search for its text in the error index, or open a conversion clinic issue.
The other entry points and the repository layout are in Where to start.
Agent Skills
This repo ships a plugin with two skills for coding agents. An agent without plugin support can read AGENTS.md instead.
| Skill |
Description |
reproduce-a-zoo-model |
Choose a model from models/index.json, rebuild its published bundle with zoo_convert.py and its prerequisites, and check it with zoo_verify.py. |
port-a-model-to-the-zoo |
Port a new model: compare it with the original at every step, choose a compression, test it on a device, and publish it. |
Apple’s own coreai-skills cover authoring, export and compression. You can install both.
Install
Claude Code
/plugin marketplace add https://github.com/john-rocky/coreai-model-zoo
/plugin install coreai-zoo-skills@coreai-model-zoo
Codex CLI
codex plugin marketplace add https://github.com/john-rocky/coreai-model-zoo
then /plugins → coreai-model-zoo → coreai-zoo-skills → Install.
Gemini CLI
From a local clone of this repo:
gemini extensions install /path/to/coreai-model-zoo/skills
Contributing
Anyone can port a model. The port stays under your own Hugging Face account with your name on it, and CONTRIBUTING.md lists what I accept. To help without code, run the Bench tab in CoreAI Zoo and submit the result. Your device then appears in BENCHMARKS.md.
These came from other people and stay under their own Hugging Face accounts:
Thank you both. Each of these ports also found a bug in this repo.
People who ran the Bench tab of the CoreAI Zoo app on their own devices:
- @jarrodpr — iPhone 18 Pro Max (A20 Pro,
iPhone19,7): qwen3.5-2b, minicpm5-1b
- @Lancelotbronner — MacBook Pro 16-inch 2024 (M4 Pro,
Mac16,7): qwen3-0.6b, qwen3-4b, qwen3.5-0.8b, qwen3.5-2b, minicpm5-1b, minicpm5-2b, qwen3.6-27b, qwen3.8-27b
- @LinkedWrong — iPhone 17 (A19,
iPhone18,3): minicpm5-1b
- @minato-devv — iPhone 17 Pro (A19 Pro,
iPhone18,1): minicpm5-2b
The results are in BENCHMARKS.md. To add your device, use the Bench tab of CoreAI Zoo.
Built with the zoo
- RF-DETR, Roboflow’s real-time detection and segmentation model.
RFDETR.export(format="coreai"), added in 1.11.0, was ported from the zoo’s RF-DETR conversion (pull request).
- Archon, a local-first Swift SDK for AI features on Apple platforms. Its
CoreAIModelZooCatalog reads the zoo’s models/index.json and lists the recipes marked verified (source).
- Slurper, a macOS CLI that transcribes YouTube or audio files and splits them into stems. Its Core ML conversion script for Mel-Band RoFormer follows the zoo’s recipe (source).
To add yours, open a showcase issue with a name, a link and one line.
Maintainer
I’m Daisuke Majima (MLBoy). My converted models live at huggingface.co/mlboydaisuke. I also run devicemark, an on-device LLM leaderboard that measures these ports.
License
BSD-3-Clause (LICENSE). Re-authored model code derives from Apple’s BSD-3-Clause coreai_models and retains its notices. Model weights follow their own licenses (see each Hugging Face repo).
评论