Enchanted: A native iOS and macOS client for private Ollama models
Enchanted is iOS and macOS app for chatting with private self hosted language models such as Llama2, Mistral or Vicuna using Ollama.
At a glance
- What is it?
- Enchanted is an open source Swift app that turns an Ollama server into a ChatGPT-style interface across Apple devices, but it requires you to expose your own server and the project has been superseded by a new iteration.
- Who is it for?
- Adopt Enchanted if you already run Ollama, want a native Apple UI, and accept the need to expose your server via a public URL or local network. Do not adopt it if you expect a zero-configuration app or need a maintained project, since the README states Jaz is the new iteration and the last release is from June 2026.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 70 days ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
A private ChatGPT UI for Apple devices
Enchanted solves a specific problem: it gives you the feel of ChatGPT inside a native macOS, iOS, visionOS, and Watch app, but the models run on your own hardware. The README describes it as an Ollama compatible app for privately hosted models like Llama 2, Mistral, Vicuna, and Starling. The target user is someone who already runs Ollama and wants a polished client that works across the Apple ecosystem without sending prompts to a third party. The pitch is privacy and control. All conversation history is stored on your device, and the app works offline once your Ollama server is reachable. That last point matters. The app itself does not need the internet, but it does need a network path to your Ollama instance.
How Enchanted talks to Ollama
Enchanted is a client, not a model runner. It relies on Ollama, a separate server program, to download and execute models. The app connects to an Ollama endpoint and sends prompts, receives completions, and manages conversation history. The README lists features that reveal the data flow: conversation history is included in API calls, so each request carries prior turns. That is a design choice. It keeps state simple, but it also means the server sees the entire conversation each time. The app also supports system prompts, custom prompt templates, and editing message content or resubmitting a message with a different model. Those features imply that Enchanted does not just display a raw text stream. It parses responses, renders markdown, and handles attachments. Image attachments are mentioned, which suggests the app can send multimodal input to models that support it, though the README does not explain the exact payload format.
Getting it running: the ngrok requirement
The setup is not plug and play. You need Ollama v0.1.14 or later, and you need to run your own server. The README gives two cases. In the first, you have a server with public access, and you simply enter its endpoint in the app settings. In the second, you run Ollama on your computer, and the documented path is to install ngrok and forward port 11434. The exact command is: ngrok http 11434 --host-header="localhost:11434". You then copy the forwarding URL, which looks like https://b377-82-132-216-51.ngrok-free.app, and paste it into the app settings. That is a real constraint. The app has no built-in discovery mechanism for finding Ollama on your local network. The README does not mention a localhost option for macOS, even though the app runs on macOS. The ngrok workaround is the only documented route for a home server, which is an odd gap for a native app.
Feature set beyond basic chat
Enchanted is not a minimal chat window. The README lists a substantial set of features. Text to speech, read aloud, voice prompts, and image attachments for prompts all appear. So does markdown support that displays tables, lists, and code blocks. Conversation management includes deleting a single conversation or all conversations. There is a macOS Spotlight panel triggered with Ctrl+Command+K, which is a distinctive touch for quick access. The app also supports dark and light mode. The README claims all features work offline, but that phrase needs qualification. Offline means no dependence on cloud services, not that you can run models without Ollama. The conversation history is stored on your device, so your chats stay local. The feature list is broad enough to suggest the app was built as a serious daily driver, not a demo.
Where the project stands: maintenance and succession
The most important fact for adoption is at the top of the README: Jaz is the new iteration of this project. That is a direct statement that Enchanted is no longer the primary development target. The repository is not archived, and the last push was July 2026, but the most recent release is v1.8.2 from June 2026, and the earlier releases are from May 2024. That gap suggests sporadic updates. The author still lists a contact email and runs an App Store presence, but the codebase has effectively been handed off to a successor project. For an engineer evaluating Enchanted, this matters. You are adopting a client that the maintainer has publicly replaced. The license is Apache-2.0, which is permissive and allows you to fork and continue development, but you would be starting from a codebase that the original author chose to abandon in favor of Jaz.
Limitations and the wrong tool cases
Enchanted has genuine limitations. The biggest is the network exposure. The README's own instructions tell you to make your Ollama server publicly accessible through ngrok. That creates a temporary public URL, which is a security risk if you are not careful. The README does not discuss authentication, encryption, or protecting that endpoint. If you are handling sensitive data, exposing the server even briefly is a bad idea. The app also requires Ollama specifically. It is not a generic OpenAI-compatible client, so you cannot point it at a different backend without modification. For users who want a local model client without running their own server, Enchanted is the wrong tool. It does not bundle models or manage downloads. Also, the feature set is Apple-only. If you need Android or Windows, this project does not help. The visionOS and Watch support are mentioned in the description, but the README only shows screenshots for Mac, iPhone, and Vision Pro, so Watch support is unverified from the material.
Alternatives and the actual difference
The obvious alternative is the Ollama command line interface itself. Ollama provides a terminal chat interface, and it works on macOS, Linux, and Windows. The difference in approach is fundamental: Ollama CLI is text-only, has no markdown rendering, no conversation management UI, and no image attachment handling. Enchanted adds a native GUI that makes the same backend feel like a modern chat product. Another alternative is any web-based UI that connects to Ollama, such as Open WebUI, but that runs in a browser and requires a separate server process. Enchanted is a compiled Swift app that integrates with the Apple ecosystem, including Spotlight and system-level shortcuts. The trade-off is that Enchanted ties you to Apple hardware, while web UIs are cross-platform. For a user who lives in the Apple ecosystem and already runs Ollama, Enchanted offers a tighter integration than a browser tab.
Who should pick Enchanted today
Enchanted is a reasonable choice if you are already committed to Ollama and want a native client on your Mac or iPhone. The App Store availability lowers the barrier, and the feature set covers the essentials. But the project's own README points to Jaz as the replacement. Before you download Enchanted, check whether Jaz is actively maintained and whether it supports the same features. If you need a maintained client, Enchanted may not be the best starting point. If you are evaluating the code for learning or forking, Apache-2.0 gives you freedom, but you inherit a codebase that may have known issues that the author chose not to fix. The concrete next step is to visit the Jaz repository, compare its feature list and release cadence, and then decide whether Enchanted's current version meets your needs or whether you should start with the successor.
Editorial conclusion
Adopt Enchanted if you already run Ollama, want a native Apple UI, and accept the need to expose your server via a public URL or local network. Do not adopt it if you expect a zero-configuration app or need a maintained project, since the README states Jaz is the new iteration and the last release is from June 2026. Before using it, verify that your Ollama version is at least 0.1.14 and decide how you will securely expose the server, because the documented ngrok method creates a temporary public endpoint. Enchanted is a functional stopgap, but its own maintainer has moved on, so check Jaz before committing.
Community notes