The best native iOS & iPadOS client for Open WebUI
Chat with any AI model on your self-hosted server — beautifully.
Open Relay is completely free and open source. If it saves you time or brings you joy, a ⭐ star helps other people discover it and motivates continued development. Takes 1 second — star it here. Thank you! 🙏
Open Relay is a 100% SwiftUI native iOS & iPadOS app that connects to your self-hosted Open WebUI server, giving you a fast, polished, truly native experience that the mobile web browser can't match.
Think of it as ChatGPT on your phone — but pointed at your server, running your models, with your data staying private.
| Feature | Description | |
|---|---|---|
| 🗨️ | Streaming Chat | Real-time word-by-word streaming with full Markdown — code blocks, tables, math, mermaid diagrams, and more |
| 📞 | AI Voice Calls | Call your AI like a real phone call via CallKit — animated orb visualization reacts live to your voice |
| 🎙️ | On-Device TTS / STT | Marvis Neural Voice (MLX, ~250 MB, fully offline) + Qwen3 ASR for on-device speech recognition |
| 🖥️ | Terminal Integration | Give AI direct terminal access; slide-over file panel with directory nav, file upload, mini terminal |
| 🧠 | Reasoning Display | Collapsible "Thought for X seconds" blocks for chain-of-thought models (DeepSeek, QwQ, etc.) |
| 📐 | SVG & Mermaid | AI-generated SVGs and Mermaid diagrams render as crisp, zoomable inline images |
| 🌐 | Rich HTML Embeds | Interactive HTML tools (audio, video, charts, dashboards, forms) render as live inline webviews |
| 📁 | Folders & Org | Drag-and-drop folders with per-folder system prompts, models, and knowledge bases |
| 💬 | Channels | Topic-based group chat rooms for multiple users and AI models |
| 📚 | Knowledge Bases | Type # for a searchable picker for your knowledge collections (RAG) |
| 🛠️ | Tools & Workspace | Toggle tools per conversation; manage models, prompts, skills, and tools from within the app |
| 🧠 | Memories | View, add, edit, and delete AI memories that persist across conversations |
| 🤖 | Automations | Schedule prompts to run automatically at recurring times |
| 📅 | Calendar | Schedule events with AI assistance |
| 🎨 | Deep Theming | Accent color picker, pure black OLED mode, tinted surfaces — with live preview |
| ♿ | Accessibility | Independent font size, UI scaling, and live preview with presets |
| 🔐 | Full Auth Support | Username/password, LDAP, SSO, and auth proxy support (Authelia, Authentik, Keycloak, etc.) |
| 🔗 | Multi-Server | Save multiple Open WebUI servers, switch instantly |
| 🏠 | Widgets & Shortcuts | Home screen widgets and Action Button integration via Shortcuts |
| 📱 | iPad Native | Full persistent sidebar, 4-column grids, persistent terminal panel |
| Trigger | Action |
|---|---|
@ |
Switch model mid-conversation |
/ |
Browse & search your prompt library |
$ |
Browse & apply skills |
# |
Pick a knowledge base / file (RAG) |
| Requirement | |
|---|---|
| 📱 Device | iPhone or iPad |
| 🍎 iOS | iOS 18.0 or later |
| 🛠️ Build | Xcode 16.0+ / Swift 6.0+ |
| 🌐 Server | A running Open WebUI instance |
git clone https://github.com/ichigo3766/Open-Relay.git
cd Open-Relayopen "Open UI.xcodeproj"Xcode will automatically fetch all Swift Package dependencies on first open. This may take a minute.
- Select the Open UI target in the Project Navigator
- Go to Signing & Capabilities
- Choose your Development Team
- Update the Bundle Identifier if needed
Select an iOS 18+ simulator or connected device → press ⌘R
On first launch, enter your Open WebUI server URL and sign in.
| Layer | Technology |
|---|---|
| UI | SwiftUI (100%) |
| Language | Swift 6, strict concurrency |
| Architecture | MVVM |
| Streaming | SSE (Server-Sent Events) |
| Voice Calls | CallKit |
| On-Device ML | MLX Swift (Marvis TTS + Qwen3 ASR) |
| Persistence | Core Data |
Pull requests are welcome! Whether it's a bug fix, improvement, or new feature — feel free to open an issue or submit a PR.
- Fork the repo
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the GPL License. See LICENSE for details.
Made with ❤️ for the Open WebUI community
