Eris is a private AI chat application that runs entirely on your device using Apple's MLX framework. Named after the dwarf planet that challenged our understanding of the solar system, Eris challenges the notion that AI must live in the cloud.
- 🔒 100% Private - All conversations stay on your device
- 🚀 Blazing Fast - Powered by Apple Silicon and MLX
- 📡 Offline First - Works without internet connection
- 🤖 Multiple Models - Support for Llama, Qwen, DeepSeek, and more
- 🎨 Native Design - Built with SwiftUI for a seamless Apple experience
- 💾 Local Storage - Your data never leaves your device
- 🎯 Syntax Highlighting - Beautiful code blocks with syntax highlighting for 100+ languages
- 📝 Markdown Support - Full markdown rendering for formatted text, lists, tables, and more
- 🌑 Dark Mode - Easy on your eyes, day or night
- ☀️ Light Mode - Clean and bright interface for daytime use
- iPhone with A13 Bionic chip or newer with 6GB+ RAM (iPhone 11 Pro/Pro Max, SE 2nd gen, 12 series and later)
- iPad with M1 chip or newer (iPad Pro/Air with M1, M2, or M4)
- iOS 17.6+ / iPadOS 17.6+
- ~2-8GB free storage per model
✅ iPhone: 11 Pro, 11 Pro Max, SE (2nd gen), 12 series, 13 series, 14 series, 15 series, 16 series
❌ Not Compatible: iPhone 11 (base model), iPhone X, XS, XS Max, XR, and older models
- Apple Silicon Mac (M1, M2, M3, M4)
- macOS 14.0+
- Xcode 15.0+
- Physical iPhone/iPad for testing (see note below)
⚠️ Important Development Note: iOS Simulators are not supported as MLX requires actual hardware acceleration with Metal 3 support. You'll need a physical iPhone or iPad with A13 chip or newer for testing and debugging.
- Clone the repository:
- Open in Xcode:
-
Select your target device and build (⌘+B)
-
Run the app (⌘+R)
Eris supports a variety of quantized models optimized for Apple Silicon:
- Llama 3.2 (1B, 3B) - Meta's latest efficient models
- Qwen 2.5 (0.5B, 1.5B, 3B) - Alibaba's multilingual models
- Mistral 7B - Popular open-source model
- Gemma 2 (2B) - Google's lightweight model
- Phi 3.5 Mini - Microsoft's small but capable model
- DeepSeek-R1-Distill-Qwen (1.5B in 4bit/8bit) - Advanced reasoning capabilities
- CodeLlama 7B - Specialized for programming tasks
- StableCode 3B - Efficient code generation
- First Launch: The app will guide you through downloading your first model
- Chat: Start conversations with your AI assistant
- Switch Models: Access different models from Settings → Model Management
- Manage Data: Delete chats or models from Settings → Danger Zone
- ✅ No telemetry or analytics
- ✅ No network requests except for model downloads
- ✅ All data stored locally using SwiftData
- ✅ Models downloaded from Hugging Face are cached locally
- ✅ Full data deletion available in settings
- UI: SwiftUI
- ML Framework: MLX / MLX Swift
- Data Persistence: SwiftData
- Model Format: Quantized models (4-bit/8-bit)
View our roadmap and progress at eris.natxo.dev/roadmap
- Chat name only applies after exiting and re-entering the chat
- Improve Markdown formatting for AI responses
- Voice input/dictation support (OpenAI Whisper or similar)
- Image support in conversations
- Native macOS app (not iPad port)
Join our Discord community for support, discussions, and updates: https://discord.gg/nr2qpfzCsd
Contributions are welcome! Please feel free to submit a Pull Request.
This project was inspired by Fullmoon iOS and wouldn't be possible without:
- Apple's MLX framework
- The Hugging Face community
- All the open-source model creators
This project is licensed under the MIT License - see the LICENSE file for details.
Created by Ignacio Palacio - natxo.dev
If you're browsing through the commit history and wondering why there are so many commits that just say "commit"... well, I have a confession to make.
I started this project late one night with zero intention of it becoming anything serious. It was supposed to be a quick experiment, maybe a few lines of code to test out MLX. But you know how it goes - "just one more feature" turned into "oh, this actually works!" which turned into "wait, people might actually use this."
So there I was, half-asleep, committing code with the eloquence of a zombie: "commit", "commit", "commit". By the time I realized this was becoming a real project, the damage was done. My git history looks like I fell asleep on the keyboard with my finger on the enter key.
I promise I'm usually better at commit messages. Usually. When I'm awake. ☕
PS: If you're a hiring manager reading this, I swear this isn't representative of my professional work. Please check out my other repos where I actually wrote meaningful commit messages like "fix: resolved null pointer exception in user authentication flow" instead of just "commit" 47 times in a row.