Conduit
A native iOS and Android client for private models, Open WebUI, and self-hosted agents.
The README says traffic goes directly to user-configured servers or providers, credentials use Keychain/Keystore, no third-party analytics or maintainer relay is used, and unnecessary sign-in can be skipped. Hermes requests approval for sensitive tool steps and only exposes server-reported capabilities. Sign-out offers retention choices, while clearing is claimed to fail safely. Deductions apply because these privacy and recovery guarantees are mostly documentary assertions without implementation code or the privacy-policy text in the supplied evidence; scheduled agents may act unattended, but their approval boundary is not detailed. Workflows use scoped permissions and persist-credentials:false, yet Actions mix commit-pinned and floating major-version references, and no dependency scanning, vulnerability-response process, or minimal mobile-permission inventory is shown. Repository, product, independence, copyright holder, and contact attribution are present, but publisher identity is registry-unverified and the supplied files do not fully reconcile the repository account with the named copyright holder.
The README's Flutter, recursive-submodule, build_runner, and two-platform build directions are broadly consistent with the release workflows. The release process validates baked release notes and builds Android and iOS artifacts, supporting ordinary source consistency and dependency availability. Deductions apply because Flutter tracks stable, Xcode tracks latest-stable, several Actions use floating major versions, and no lockfiles or offline strategy are supplied. Connection testing, a referenced troubleshooting guide, and safe failure during clearing are mentioned, but concrete user-facing error messages, error classes, and recovery instructions are not shown.
The evidence clearly distinguishes Open WebUI, direct model endpoints, and Hermes scenarios, covering self-hosting, cloud providers, local Ollama, reverse proxies, several authentication paths, 13 locales, and both mobile platforms. Server-dependent features disappear when unavailable, and Hermes exposes only reported capabilities, giving strong capability boundaries. The main deduction is for trigger precision: first-launch selection, conditional visibility, and sensitive-step approval are described, but the static rules for scheduled execution, sensitivity classification, and when each entry point causes an external action are incomplete.
The README has clear navigation and well-separated connection, feature, onboarding, privacy, build, contribution, support, and license sections. Store installation and source-build commands are present, but the referenced BUILDING.md is absent from the evidence, so complete prerequisites and troubleshooting cannot be confirmed. Conduit and its three connection modes are named consistently; screenshots, procedures, and feature tables provide examples, but there is no full FAQ. Server-dependent features, recursive submodules, code generation, and contribution constraints are disclosed, while a compatibility matrix and known-defect list are limited. GPL-3.0 metadata, README wording, and the full LICENSE agree, justifying full license credit. Tag-triggered releases, release-note validation, and version signals such as 4.0 and Open WebUI 0.11 exist, but no changelog content or support lifecycle is supplied. Issues, Discussions, email, and support paths identify maintenance channels, while team structure, response commitments, succession, and verified publisher identity remain unspecified.
The source presents directly usable mobile interactions: streaming chat, rich rendering, files and voice, workspace screens, terminal access, shortcuts, and offline notes. It addresses concrete mobile gaps including background streaming, reverse-proxy authentication, screenshot prompting, and home-screen initiation, showing substantial marginal value. Cost-benefit is deducted because optional sign-in, local endpoints, and the lack of a maintainer relay reduce adoption overhead, but users still need their own server or provider and potentially paid API keys; resource use, subscription terms, and operating-cost comparisons are not documented.
Core product, privacy, and security claims are traceable to specific README sections, the license is directly checkable against LICENSE, and workflow files partially corroborate build and release claims. Deductions apply because many runtime features, data-flow guarantees, secure storage, absence of analytics SDKs, and safe deletion are supported only by README assertions, without corresponding implementation files or the referenced privacy policy. Store availability, badges, and external testing acknowledgements also lack independent support in the supplied files. The prose generally separates product claims from third-party acknowledgements and states server-dependent boundaries, but it does not systematically label implementation facts versus design intentions or claims not verified by execution.
- This assessment is limited to the README, license, and two workflows. Application code, mobile permissions, dependency lockfiles, and PRIVACY_POLICY.md were not supplied, so secure storage, absence of analytics SDKs, direct-only data flow, and safe deletion cannot be independently confirmed.
- Hermes supports unattended scheduled agents. Before deployment, verify how sensitive tools are classified, whether schedules can bypass interactive approval, and what cancellation, audit, and recovery controls exist.
- Not all third-party Actions in the release workflow are pinned to commit hashes, and no dependency or vulnerability scanning is shown; the release supply chain needs additional review.
- Direct connections transmit chat content and credential-bearing requests to the user-selected third-party or self-hosted endpoint; its privacy, cost, retention, and security properties are not guaranteed by this repository description.
- Publisher identity is unknown, not suspicious. Enterprise adoption should still independently verify the maintainer, artifact signatures, and update channel.
What does this agent do, and when should you use it?
Conduit is a native Flutter mobile client for Open WebUI, user-supplied model endpoints, and self-hosted Hermes agents. It offers three connection modes: the full Open WebUI integration, direct access to OpenAI-compatible APIs, Ollama, or OpenRouter, and a client for a user's own Hermes server. Its mobile interface covers streaming and multimodal chat, voice, notes, workspace administration, system sharing, and server-dependent features such as search, image generation, channels, and terminal sessions. Chats, notes, and drafts are stored on the device first, credentials use the iOS Keychain or Android Keystore, and traffic does not pass through a backend operated by the maintainer. It is a strong fit for people who want mobile access to self-hosted AI infrastructure, but it is a client rather than a model host or a replacement for the Hermes agent server.
On first launch, the user selects Open WebUI, Direct connection, or Hermes Agent. Open WebUI mode discovers the server's models and exposed capabilities, authenticates through password, LDAP, JWT, SSO, OAuth, or reverse-proxy flows, and streams chat output over WebSocket; where supported, it also exposes files, notes, channels, knowledge, prompts, tools, skills, web search, image generation, and interactive terminal sessions. Direct connection mode calls OpenAI-compatible Chat Completions or Responses endpoints, Azure-style API versions, native Ollama, LM Studio, or first-party OpenRouter, then uses discovered or manually entered models for chat. Hermes mode connects with a server URL and API_SERVER_KEY, displays tool execution live, requests approval before sensitive actions, and provides conversations and scheduled agents. The app produces and stores chat transcripts, notes, and drafts while rendering syntax-highlighted code, Mermaid, LaTeX, citations, tool calls, code-execution sections, and Chart.js embeds; prompts can also originate from the share sheet, clipboard, camera, photos, audio, widgets, and system shortcuts.
- An Open WebUI operator who needs dependable mobile authentication through a reverse proxy, streaming responses, and attachment handling.
- An iPhone or Android user who wants to talk directly to a local Ollama or LM Studio instance without creating an Open WebUI account.
- A user of OpenRouter or another OpenAI-compatible provider who wants multiple endpoint profiles and secure storage for keys and custom headers.
- A Hermes server operator who needs to watch tools run, approve sensitive steps, and inspect scheduled agents from a phone.
- A privacy-conscious self-hoster who wants chats kept on the device and no maintainer-operated relay between the app and the configured endpoint.
- A mobile worker who starts multimodal prompts through widgets, the share sheet, camera, microphone, photos, or clipboard content.
What are this agent's strengths and limitations?
- One mobile client covers Open WebUI, OpenAI-compatible APIs, native Ollama, OpenRouter, and self-hosted Hermes instead of requiring a single provider.
- The Flutter interface includes WebSocket streaming, share-sheet ingestion, widgets, App Intents, Shortcuts, camera and clipboard entry points, rather than merely wrapping a web page.
- Chats, notes, and drafts are device-first; credentials use Keychain or Keystore, and the app documents no third-party analytics or advertising SDKs.
- Authentication accounts for password, LDAP, JWT, SSO, OAuth, and deployments behind oauth2-proxy, Authelia, Authentik, Pangolin, or Cloudflare Tunnel.
- Hermes tool execution is visible in real time, sensitive steps require approval, and the UI exposes only capabilities reported by the server.
- Useful operation requires an existing Open WebUI deployment, provider endpoint, local Ollama or LM Studio instance, or Hermes server; Conduit does not host model inference.
- Channels, web search, image generation, toggle filters, and terminal access depend on server support, so feature parity varies between connections.
- Source builds require a recursive submodule checkout, build_runner code generation, Flutter, and a working iOS or Android toolchain.
- Direct users must manage endpoint URLs, API keys, custom headers, and the choice between server-side and device-only chat history.
- Unsolicited pull requests are not the project's primary contribution path; prospective contributors are asked to align through an issue or discussion first.
How do you install or deploy this agent?
End users can install Conduit from the App Store or install the Android package app.cogwheel.conduit from Google Play. Building from source requires Git, Flutter, Dart, and an iOS or Android development environment. Run:
git clone --recursive https://github.com/cogwheel0/conduit.git
cd conduit
flutter pub get
dart run build_runner build
flutter run -d iosUse flutter run -d android for Android. The recursive clone is required because the Mermaid renderer is a submodule, and build_runner is required because generated Dart files are git-ignored.
How do you use this agent?
For Open WebUI, launch Conduit, choose Open WebUI, enter the instance base URL, and add any required X-API-Key, Authorization, or organization-routing headers. Sign in with username and password, LDAP, JWT, SSO, or proxy authentication, select a model, and start a chat.
For a direct endpoint, choose Direct connection and create an OpenAI-compatible or Ollama profile with its base URL. Supply an API key and custom headers when the endpoint requires them; a local endpoint that accepts unauthenticated requests does not need a key. Test and enable the profile, then choose a discovered model or enter one manually. If Open WebUI is also signed in, select whether new direct chats use Open WebUI history or remain only on the device.
For Hermes, choose Hermes Agent and enter the self-hosted server URL plus API_SERVER_KEY. A memory key is optional and will be generated on the first chat if omitted. Open the Hermes tab to access conversations, observe tool activity, and work with scheduled agents exposed by the server.
How does this agent compare with similar options?
Compared with using Open WebUI in a mobile browser, Conduit supplies native Flutter screens, system sharing, widgets, App Intents, Shortcuts, mobile voice features, and streaming behavior designed for a phone. Unlike a client that requires Open WebUI for every conversation, its Direct connection mode can call OpenAI-compatible endpoints, Ollama, LM Studio, or OpenRouter without an Open WebUI account. The tradeoff is that Open WebUI mode supplies the broadest server feature set, while direct and Hermes experiences are limited to what their configured endpoints expose.