conduit

conduit

Native mobile client for Open‑WebUI. Chat with your self‑hosted AI.

Stars: 429

Visit
 screenshot

Conduit is an open-source, cross-platform mobile application for Open-WebUI, providing a native mobile experience for interacting with your self-hosted AI infrastructure. It supports real-time chat, model selection, conversation management, markdown rendering, theme support, voice input, file uploads, multi-modal support, secure storage, folder management, and tools invocation. Conduit offers multiple authentication flows and follows a clean architecture pattern with Riverpod for state management, Dio for HTTP networking, WebSocket for real-time streaming, and Flutter Secure Storage for credential management.

README:

Conduit

Latest Release GitHub all downloads

Get it on Google Play Download on the App Store

Conduit Demo

Conduit is an open-source, cross-platform mobile application for Open-WebUI, providing a native mobile experience for interacting with your self-hosted AI infrastructure.

Table of Contents

Quickstart

git clone https://github.com/cogwheel0/conduit && cd conduit
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter run -d ios   # or: -d android

Features

Core Features

  • Real-time Chat: Stream responses from AI models in real-time
  • Model Selection: Choose from available models on your server
  • Conversation Management: Create, search, and manage chat histories
  • Markdown Rendering: Full markdown support with syntax highlighting
  • Theme Support: Light, Dark, and System themes

Advanced Features

  • Voice Input: Use speech-to-text for hands-free interaction
  • File Uploads: Support for images and documents (RAG)
  • Multi-modal Support: Work with vision models
  • Secure Storage: Credentials stored securely using platform keychains
  • Folder Management: Organize conversations into folders; create, rename, move, and delete
  • Tools (Function Calling): Invoke server-side tools exposed by Open‑WebUI, with result rendering

Authentication

Conduit supports multiple authentication flows when connecting to your Open‑WebUI:

  • Username + Password: Sign in directly against servers that expose a login endpoint. Credentials are stored securely using platform keychains.
  • API Key: Paste a server‑issued API token for stateless auth.
  • Custom Headers: Add headers during login (e.g., X-API-Key, Authorization, X-Org, or self‑hosted SSO headers) that Conduit will include on all HTTP/WebSocket requests.

Screenshots

Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5

Requirements

  • Flutter SDK 3.0.0 or higher
  • Android 6.0 (API 23) or higher
  • iOS 12.0 or higher
  • A running Open-WebUI instance

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/conduit.git
cd conduit
  1. Install dependencies:
flutter pub get
  1. Generate code:
flutter pub run build_runner build --delete-conflicting-outputs
  1. Run the app:
# For iOS
flutter run -d ios

# For Android
flutter run -d android

Building for Release

Android

flutter build apk --release
# or for App Bundle
flutter build appbundle --release

iOS

flutter build ios --release

Configuration

Android

The app requires the following permissions:

  • Internet access
  • Microphone (for voice input)
  • Camera (for taking photos)
  • Storage (for file selection)

iOS

The app will request permissions for:

  • Microphone access (voice input)
  • Speech recognition
  • Camera access
  • Photo library access

Localization (i18n)

See the dedicated documentation: docs/localization.md

Compatibility

Conduit App Open‑WebUI Notes
1.x 0.3.x+ OpenAPI validation removed in 1.1+ (no bundled schema)

Docs

  • Localization: docs/localization.md
  • Architecture (planned): docs/architecture.md
  • Theming (planned): docs/theming.md
  • Release Process (planned): docs/release.md

Architecture

The app follows a clean architecture pattern with:

  • Riverpod for state management
  • Dio for HTTP networking
  • WebSocket for real-time streaming
  • Flutter Secure Storage for credential management

Project Structure

lib/
├── core/
│   ├── models/         # Data models
│   ├── services/       # API and storage services
│   ├── providers/      # Global state providers
│   └── utils/          # Utility functions
├── features/
│   ├── auth/           # Authentication feature
│   ├── chat/           # Chat interface feature
│   ├── server/         # Server connection feature
│   └── settings/       # Settings feature
└── shared/
    ├── theme/          # App theming
    ├── widgets/        # Shared widgets
    └── utils/          # Shared utilities

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Developer workflow:

flutter analyze
flutter pub run build_runner build --delete-conflicting-outputs
# flutter test  # add when tests are available
  1. Fork the project
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Troubleshooting

  • iOS: ensure recent Xcode, run cd ios && pod install, set signing team in Xcode if building on device.
  • Android: minSdk 23+, ensure correct Java and Gradle; if builds fail, try flutter clean.
  • Codegen conflicts: flutter pub run build_runner build --delete-conflicting-outputs.

Security & Privacy

  • Credentials are stored using platform secure storage (Keychain/Keystore).
  • No analytics or telemetry are collected.
  • Network calls are only made to your configured Open‑WebUI server.

License

This project is licensed under the GPL3 License - see the LICENSE file for details.

Acknowledgments

  • Open-WebUI team for creating an amazing self-hosted AI interface
  • Flutter team for the excellent mobile framework
  • All contributors and users of Conduit

Support

For issues and feature requests, please use the GitHub Issues page.

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for conduit

Similar Open Source Tools

For similar tasks

For similar jobs