# Conduit: a native Flutter client for Open WebUI, Ollama and Hermes agents

> Conduit is a GPL-3.0 Flutter app for iOS and Android that talks to Open WebUI, OpenAI-compatible endpoints, Ollama, OpenRouter, Apple's on-device models and self-hosted Hermes agents. The pitch is that your chats live on the device first, and the README is honest about where the feature set stops.

**cogwheel0/conduit** — Native iOS and Android client for Open WebUI, direct OpenAI-compatible, Ollama, and Hermes agents.

- Repository: https://github.com/cogwheel0/conduit
- Website: https://conduit.mobile
- Stars: 2,199 · Forks: 228
- Language: Dart
- License: GPL-3.0
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/cogwheel0-conduit

## The mobile gap Conduit is built to close

Open WebUI works well in a desktop browser. The README's own framing is that it breaks down at the edges on a phone: authentication behind a reverse proxy, streaming that drops when the app goes to the background, getting a screenshot into a prompt, starting a chat from the home screen. Conduit is a Flutter app written to close that gap rather than a responsive web wrapper.

The intended reader is someone who already self-hosts a model stack. You run Open WebUI, or you run Ollama or LM Studio on a machine in your house, or you have a Hermes agent server. Conduit is the client you put on the phone. As of version 4.0 the README states it works with or without an Open WebUI server at all, which matters because it means the app is not purely a companion to one project.

The privacy claim is specific rather than general: chats live on the device first, and nothing routes through a backend the maintainer operates. That is a statement about architecture, not a security audit. The repository carries a PRIVACY_POLICY.md at the top level, so the details are documented separately from the README.

## Connection modes: Open WebUI, Direct, Apple, Hermes

On first launch the app asks how you want to connect. You pick one, add others later, and skip any sign-in you do not need. The README lists five modes.

Open WebUI is the full-feature path: chats, folders, notes, channels, workspace, tools, web search, image generation. Direct covers OpenAI-compatible endpoints using Chat Completions or Responses, LM Studio, Azure-style API versions, native Ollama, and first-party OpenRouter. You bring an API key, or omit it for a local endpoint that does not want one. Direct connections you already configured inside Open WebUI come along automatically, and the README says keys and custom headers stay in platform secure storage.

Apple On-Device is an iOS-only Direct provider backed by Apple's local SystemLanguageModel. It requires iOS 26 and Apple Intelligence, works offline, and supports streaming, sampling controls and JSON-schema responses with a 4K context window. Image input, reasoning controls and tool calling are not available. Apple Private Cloud Compute is the second iOS-only provider, built on Apple's Foundation Models framework. It requires iOS 27, Apple Intelligence availability and Apple's managed PCC entitlement. It adds image input, reasoning levels, sampling and output limits, JSON-schema responses, live quota and context status, and an optional on-device fallback for PCC network failures. Tool calling is not enabled there either.

Hermes is the agent path. It connects to your own Hermes server, shows tools working live, asks for approval before sensitive steps, and supports scheduled agents. Conversations and schedules get their own tab, and the README notes that Conduit only exposes the capabilities your server actually reports. That last detail is the interesting design choice: the UI is driven by server-declared capability rather than a fixed feature list, which is why sections you lack permission for simply do not appear.

## Installing Conduit and pointing it at a local Ollama endpoint

The README does not give a command-line install. It links to the Google Play listing (package id app.cogwheel.conduit) and the App Store listing (id6749840287). If you want to build it yourself, the README points to docs/BUILDING.md in the repository, and the top level contains pubspec.yaml, android/, ios/, and a cargokit_options.yaml, which indicates a Flutter project with native Rust components pulled in through Cargokit. The Dart SDK constraint and Flutter version live in pubspec.yaml; the README does not restate them.

The first real use is a Direct connection. Take the base URL of an Ollama instance on your network. The README does not print the default port, so check your own Ollama configuration for the address it listens on, and remember that a phone on the same network needs the host machine's LAN address rather than localhost.

In the app, choose Direct as the connection type, select the native Ollama provider, and enter the host address. Leave the API key field empty, since the README says you can skip a key for a local endpoint that does not want one. Then pick a model from the list the endpoint reports. If you are pointing at an OpenAI-compatible server instead, choose that provider and set the base URL plus an API key.

What you should see is a model picker populated from the server, and a chat that streams token by token. The README attributes streaming to WebSocket rather than HTTP chunking, and says the transcript holds its place while a response grows. If the model list comes back empty, the problem is almost always network reachability rather than credentials, so confirm the endpoint answers from the phone's network before debugging the app.

## Rendering, workspace and the parts that are not a web view

Conduit renders with native Flutter surfaces. The README lists syntax-highlighted code blocks with copy and preview, Mermaid diagrams rendered natively, LaTeX and math, expandable reasoning, tool-call and code-execution sections, inline citations, source cards, follow-up suggestions, and Chart.js embeds. Mermaid and LaTeX are the two that usually force a web view in this category, so rendering them natively is the concrete difference from a wrapped browser page.

The Workspace is models, knowledge, prompts, tools and skills as native screens with unified settings navigation. Permissions are reflected in the UI: sections you do not have permission for do not appear. Whether that is helpful depends on your server. On a permissive Open WebUI instance you get the full set; on a locked-down one the app looks sparser than the screenshots, and there is no obvious way from the README to tell whether a missing screen means a permission problem or an unimplemented feature.

Elsewhere the README lists file uploads, re-attaching previously uploaded server files, multimodal prompts, clipboard image paste and audio attachments; notes with autosave, pinning, AI-generated titles, AI enhancement and audio recording, all available offline; channels with threads and reactions when the server enables them; and voice input with on-device or server speech recognition plus a full voice-call mode. The phrase "when your server enables them" is doing real work there: channels are conditional on server configuration.

## Where Conduit stops: Apple providers, tool calling and server coupling

The clearest limitation is stated by the project itself. Tool calling is not available on Apple On-Device, and it is not enabled on Apple Private Cloud Compute. For an app whose topics list includes ai-agents, that is a meaningful gap: the Apple paths are chat and structured-output providers, not agent runtimes. If your workflow depends on the model invoking tools, you are pushed toward Hermes, Open WebUI or a Direct endpoint that supports it.

The Apple providers also carry hard prerequisites. On-Device needs iOS 26 and Apple Intelligence; PCC needs iOS 27, Apple Intelligence availability and Apple's managed PCC entitlement. That last item is not something you configure in the app. On-Device additionally caps context at 4K and omits image input and reasoning controls.

Server coupling is the second constraint. The full feature set exists only against Open WebUI, and the README does not state a minimum Open WebUI version. Channels, threads, reactions, workspace sections and permission filtering all depend on what the server reports. A Direct connection to Ollama gives you chat, streaming and multimodal prompts, but not notes, channels or the workspace. Reading the README, you cannot tell which Open WebUI release introduced each endpoint Conduit calls, so a mismatch will surface as a missing screen rather than an error message.

Finally, there is no desktop build described. This is an iOS and Android client. If you want the same interface on a laptop, Conduit is the wrong tool and the browser is the right one.

## How it compares to the Open WebUI Progressive Web App

The obvious alternative is the Open WebUI PWA: add your server to the home screen and use it in a mobile browser. The difference is architectural. A PWA is the same web application rendered in a mobile viewport, so authentication flows through whatever reverse proxy you already configured, and streaming depends on the browser keeping the page alive. Conduit replaces that with a Flutter UI and a WebSocket streaming path, and it stores chats on the device first rather than treating the server as the only copy.

The trade-off runs the other way too. The PWA needs no install from a store, works on any platform with a browser, and always matches the server's feature set because it is the server's own UI. Conduit has to track Open WebUI's API surface, and the README's capability-driven UI is the mitigation for that, not an elimination of it. If your Open WebUI instance is heavily customized with plugins and custom front-end tweaks, the PWA will show them and Conduit may not.

A second alternative is a generic chat client pointed at your OpenAI-compatible endpoint. That gets you a model picker and streaming with less setup, but you give up the Open WebUI-specific surfaces: notes, channels, the workspace, and the permission-aware navigation. The choice is really between matching your server's full UI and getting a purpose-built mobile shell around a subset of it.

## Licence, build cost and what upgrading involves

Conduit is GPL-3.0. If you redistribute a modified build, the licence's source-availability terms apply to your version, and the repository carries a THIRD_PARTY_NOTICES.md and a LICENSE file at the top level. The README does not offer a separate commercial or alternative licence, so there is no dual-licensing escape hatch described. This is not legal advice; if you plan to ship a modified Conduit inside a product, read the licence text and the third-party notices yourself.

The repository layout tells you what a source build costs. It is a Flutter project with android/ and ios/ platform folders, a pubspec.yaml with a committed pubspec.lock, an l10n.yaml for localization, a pigeons/ directory for platform-channel code generation, and cargokit_options.yaml for native Rust integration. The README defers build instructions to docs/BUILDING.md rather than inlining them. Nothing in the README describes a self-hosted server component, which is consistent with the claim that chats stay on the device.

On maintenance, the last push to the default branch was on 2026-09-03, and the most recent release listed is v4.1.4 on 2026-09-01, preceded by v4.1.3 on 2026-08-28 and v4.1.2 on 2026-08-26. Those three releases land within a week of each other, which is a fast patch cadence rather than a slow one. The README does not document an upgrade path between major versions, so the 4.0 change that decoupled the app from a required Open WebUI server is described as a capability, not as a migration with steps.

## Conclusion

Adopt Conduit if you already run Open WebUI or a local Ollama/LM Studio endpoint and want a native mobile front end that keeps chats on the device and streams over WebSocket. Skip it if you need tool calling on the Apple on-device or Private Cloud Compute providers, or if you want a web client you can host yourself. Before installing, confirm your Open WebUI server version exposes the workspace and channel endpoints the app expects, and check whether your iOS device and OS version qualify for the Apple provider you intend to use.

## FAQ

### How do I install Conduit?

Get it from the Google Play listing (package id app.cogwheel.conduit) or the App Store listing linked in the README. To build it yourself, the README points to docs/BUILDING.md in the repository.

### How do I use Conduit with my own model endpoint?

Choose Direct on first launch and pick the matching provider: OpenAI-compatible, LM Studio, Azure-style API versions, native Ollama, or OpenRouter. You supply an API key, or skip it for a local endpoint that does not want one, and the README says keys and custom headers stay in platform secure storage.

### Does Conduit work without an Open WebUI server?

Yes. The README states that as of version 4.0 the app works with or without an Open WebUI server. Direct connections, the Apple providers and Hermes each stand on their own, though the full feature set including notes, channels and the workspace requires Open WebUI.

### Can Conduit call tools on the Apple on-device model?

No. The README says tool calling is not available on Apple On-Device, and tool calling is not enabled on Apple Private Cloud Compute either. For tool use you need Open WebUI, a Direct endpoint that supports it, or a Hermes server.

### What are the requirements for the Apple Private Cloud Compute provider in Conduit?

It requires iOS 27, Apple Intelligence availability and Apple's managed PCC entitlement. The README also notes an optional on-device fallback for PCC network failures.

### What licence is Conduit released under?

GPL-3.0, per the README badge and the LICENSE file in the repository. There is also a THIRD_PARTY_NOTICES.md covering bundled dependencies.

## Sources

- [cogwheel0/conduit on GitHub](https://github.com/cogwheel0/conduit)
- [License: GPL-3.0](https://github.com/cogwheel0/conduit/blob/main/LICENSE)
- [Project website](https://conduit.mobile)
- [README](https://github.com/cogwheel0/conduit/blob/main/README.md)
- [Releases](https://github.com/cogwheel0/conduit/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/cogwheel0-conduit
