2025-08-12 20:49:43 +05:30
# Conduit
2025-08-10 01:20:45 +05:30
2025-08-18 21:28:56 +05:30
<div align="center">
2025-08-27 12:14:37 +05:30


2025-08-27 12:33:15 +05:30
2025-09-02 19:09:20 +05:30
<a href="https://play.google.com/store/apps/details?id=app.cogwheel.conduit">
2025-10-21 13:23:08 +05:30
<img src="docs/store-badges/google.webp" alt="Get it on Google Play" style="height:56px;"/>
2025-08-27 12:33:15 +05:30
</a>
<a href="https://apps.apple.com/us/app/conduit-open-webui-client/id6749840287">
2025-10-21 13:23:08 +05:30
<img src="docs/store-badges/apple.webp" alt="Download on the App Store" style="height:56px;"/>
2025-08-27 12:33:15 +05:30
</a>
2025-08-27 12:14:37 +05:30
2025-08-18 21:28:56 +05:30
</div>
<br>
2025-08-27 12:14:37 +05:30
<div align="center">
2025-10-21 13:23:08 +05:30
<img src="docs/screenshots/conduit-demo.gif" alt="Conduit Demo" style="height:600px;"/>
2025-08-27 12:14:37 +05:30
</div>
<br>
2025-08-12 13:07:10 +05:30
2025-08-10 01:20:45 +05:30
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.
2025-08-26 18:30:39 +05:30
## Table of Contents
- [Features ](#features )
- [Screenshots ](#screenshots )
- [Requirements ](#requirements )
- [Quickstart ](#quickstart )
- [Installation ](#installation )
- [Building for Release ](#building-for-release )
- [Configuration ](#configuration )
- [Localization (i18n) ](#localization-i18n )
- [Compatibility ](#compatibility )
- [Docs ](#docs )
- [Architecture ](#architecture )
- [Troubleshooting ](#troubleshooting )
- [Security & Privacy ](#security--privacy )
- [Contributing ](#contributing )
- [License ](#license )
- [Support ](#support )
## Quickstart
```bash
git clone https://github.com/cogwheel0/conduit && cd conduit
flutter pub get
2025-10-21 13:23:08 +05:30
dart run build_runner build --delete-conflicting-outputs
2025-08-26 18:30:39 +05:30
flutter run -d ios # or: -d android
```
2025-08-10 01:20:45 +05:30
## Features
### Core Features
2025-08-12 13:07:10 +05:30
- **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
2025-08-10 01:20:45 +05:30
### Advanced Features
2025-08-12 13:07:10 +05:30
- **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
2025-08-26 18:30:39 +05:30
- **Folder Management**: Organize conversations into folders; create, rename, move, and delete
2025-09-10 17:06:38 +05:30
- **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.
2025-10-09 00:58:13 +05:30
- **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 (see [Endpoint Allowlist ](#endpoint-allowlist-custom-auth ) for reverse proxy whitelisting).
2025-08-12 13:07:10 +05:30
## Screenshots
2025-08-26 18:30:39 +05:30
| | | | |
| --- | --- | --- | --- |
2025-10-21 13:23:08 +05:30
| <img src="docs/screenshots/1.png" alt="Chat" width="200" /> | <img src="docs/screenshots/2.png" alt="Model Selector" width="200" /> | <img src="docs/screenshots/3.png" alt="Chat Drawer" width="200" /> | <img src="docs/screenshots/4.png" alt="Settings" width="200" /> |
2025-08-10 01:20:45 +05:30
## 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:
```bash
git clone https://github.com/yourusername/conduit.git
cd conduit
```
2. Install dependencies:
```bash
flutter pub get
```
3. Generate code:
```bash
2025-10-21 13:23:08 +05:30
dart run build_runner build --delete-conflicting-outputs
2025-08-10 01:20:45 +05:30
```
4. Run the app:
```bash
# For iOS
flutter run -d ios
# For Android
flutter run -d android
```
## Building for Release
### Android
```bash
flutter build apk --release
# or for App Bundle
flutter build appbundle --release
```
### iOS
```bash
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
## 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.
2025-08-26 18:30:39 +05:30
Developer workflow:
```bash
flutter analyze
flutter pub run build_runner build --delete-conflicting-outputs
# flutter test # add when tests are available
```
2025-08-10 01:20:45 +05:30
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
2025-08-26 18:30:39 +05:30
## 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.
2025-10-09 00:58:13 +05:30
### Endpoint Allowlist (Custom Auth)
If you protect Open‑ WebUI with SSO or a reverse proxy (Authlia, Authentik,
etc.), whitelist these path prefixes so Conduit can complete login, sync, and
2025-10-09 01:49:56 +05:30
streaming flows. Paths are relative to your server base URL.
2025-10-09 00:58:13 +05:30
- `/health`
- `/api/*`
WebSocket connections use the Socket.IO handshake on `/ws/socket.io` . Ensure the
same headers (or allowlist rules) apply there as well.
2025-08-10 01:20:45 +05:30
## 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
2025-08-23 20:09:43 +05:30
For issues and feature requests, please use the [GitHub Issues ](https://github.com/cogwheel0/conduit/issues ) page.