+
Skip to content

cogwheel0/conduit

Repository files navigation

Conduit


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 (see Endpoint Allowlist for reverse proxy whitelisting).

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.

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 streaming flows. Paths are relative to your server base URL.

  • /health
  • /api/*

WebSocket connections use the Socket.IO handshake on /ws/socket.io. Ensure the same headers (or allowlist rules) apply there as well.

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.

About

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

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载