[▲ Vercel Community](/) · [Categories](/categories) · [Latest](/latest) · [Top](/top) · [Live](/live)

[Open Source](/c/open-source/45)

# Conduit: The Native Mobile Client for Self-hosted AI

389 views · 2 likes · 3 posts


Tunap (@cogwheel0) · 2025-12-16

### Why I Built This

I’ve been self-hosting for a couple of years now, and when I set up Open-WebUI to replace commercial AI chat apps, I hit a wall: getting my family to actually *use* it.

The PWA experience just wasn’t cutting it. No native integrations, clunky voice input, and it never felt like a “real” app. My family would default back to ChatGPT because it was just… easier. And I get it, if the UX isn’t there, nobody’s switching.

So I built Conduit. The goal was simple: make self-hosted AI feel as polished as the commercial alternatives so there’s zero friction for non-technical users. Voice calls with your AI that show up in CallKit like a real phone call. Siri integration. Instant startup. The works.

I shared it on [r/selfhosted](https://www.reddit.com/r/selfhosted/comments/1mo9w3t/built_a_native_openwebui_client_for_ios_android/) and the response blew me away, it clearly resonated with others facing the same “family adoption” problem. This is actually my second Flutter app (the first was [Luci Mobile](https://github.com/cogwheel0/luci-mobile) for OpenWrt router management), and building native experiences for self-hosted services has become a bit of a passion project.

---

### The Problem

Open-WebUI is an incredible self-hosted AI interface, but accessing it on mobile has always meant dealing with a PWA that doesn’t feel quite native. No native integrations, no Siri integration, no proper voice calls with your AI, and no offline access to your chat history.

### The Solution

Conduit bridges that gap with a truly native experience:

**Voice Call Mode** — Have phone-style conversations with your AI. Speak naturally, hear responses read aloud, and chat completely hands-free. Full CallKit integration on iOS means your AI calls show up just like regular phone calls.

**Real-time Streaming** — WebSocket-powered responses that feel instant. No waiting for the full response—watch it stream in character by character.

**Privacy-First** — Zero analytics, zero telemetry. Credentials stored in native Keychain/Keystore. Your data stays between you and your server.

**Deep System Integration** — Siri Shortcuts, Android Assistant triggers, home screen quick actions, share extensions, and iOS widgets.

**Full AI Capabilities** — Vision models, RAG with document uploads, function calling/tools, and beautiful markdown rendering with syntax highlighting.

### Tech Stack

* **Flutter** with Riverpod 3.0 for state management
* **Dio + Socket.IO** for HTTP and real-time WebSocket streaming
* **Flutter Secure Storage** for credential management
* Clean architecture with feature-based organization

### What Users Are Saying

> *“The UI is far superior to what OpenWebUI has as a PWA.”* — Google Play Review

> *“UI is on par with ChatGPT app. Great app, dev is quick to fix bugs.”* — App Store Review

> *“If you run an ollama server this app is not only free and open source but really polished and impressive!”* — Google Play Review

### Links

* **GitHub:** https://github.com/cogwheel0/conduit
* **Website:** https://conduit.cogwheel.app
* **App Store:** https://apps.apple.com/us/app/conduit-open-webui-client/id6749840287
* **Google Play:** https://play.google.com/store/apps/details?id=app.cogwheel.conduit

### Grateful for Vercel

Huge thanks to the Vercel OSS program for supporting this project!

---

**License:** GPLv3

Would love to hear from others in the self-hosted AI community! If you’re running Open-WebUI, Ollama, or any compatible backend, give Conduit a try and let me know what you think.

---


Amy Egan (@amyegan) · 2025-12-16 · ♥ 1

Such a good solution to the problem of non-techie family members needing an easier way :black_heart:


Tunap (@cogwheel0) · 2025-12-17 · ♥ 1

Thank you, Amy! It's been incredibly fulfilling really.