Skip to content

easychen/openMode

Repository files navigation

OpenMode

🚧 [WIP] This app is a work in progress, and only basic features are implemented.

🤖 [Vibe Project] The vast majority of the code was implemented by Cursor.

Mobile App for OpenCode and more

OpenMode is a mobile client for OpenCode (and more, maybe). Built with Flutter, it provides a seamless and intuitive interface for interacting with AI assistants, managing code projects, and enhancing your development workflow on the go.

Screen_recording_20250825_000558.mp4

✨ Features

  • 🤖 AI Chat Interface: Engage in natural conversations with AI assistants
  • 🔗 Server Connection: Connect to OpenCode servers with configurable settings
  • 💬 Session Management: Create and manage multiple chat sessions
  • 🎨 Modern UI: Beautiful dark theme with Material Design 3
  • 📱 Cross-platform: Built with Flutter for iOS and Android
  • Real-time Communication: Instant messaging with AI assistants
  • 🔧 Configurable: Flexible server configuration options

🚀 Getting Started

Prerequisites

  • Flutter SDK (>=3.8.1)
  • Dart SDK
  • Android Studio / Xcode (for mobile development)
  • OpenCode server instance

Installation

  1. Clone the repository

    git clone https://github.com/your-username/openmode.git cd openmode
  2. Install dependencies

    flutter pub get
  3. Run the app

    flutter run

Configuration

  1. Launch the app
  2. Navigate to Server Settings
  3. Configure your OpenCode server:
    • Host Address: Your server IP (e.g., 127.0.0.1)
    • Port: Your server port (e.g., 4096)
  4. Tap Test Connection to verify connectivity
  5. Save your settings

📱 Screenshots

Screenshots coming soon...

🏗️ Architecture

OpenMode follows Clean Architecture principles with clear separation of concerns:

lib/ ├── core/ # Core utilities and constants │ ├── constants/ # App and API constants │ ├── di/ # Dependency injection │ ├── errors/ # Error handling │ ├── network/ # Network client configuration │ └── utils/ # Utility functions ├── data/ # Data layer │ ├── datasources/ # Local and remote data sources │ ├── models/ # Data models │ └── repositories/ # Repository implementations ├── domain/ # Business logic layer │ ├── entities/ # Business entities │ ├── repositories/ # Repository interfaces │ └── usecases/ # Business use cases └── presentation/ # UI layer ├── pages/ # App screens ├── providers/ # State management ├── theme/ # App theming └── widgets/ # Reusable UI components 

🛠️ Tech Stack

  • Framework: Flutter
  • Language: Dart
  • State Management: Provider
  • HTTP Client: Dio
  • Local Storage: SharedPreferences
  • Dependency Injection: GetIt
  • Architecture: Clean Architecture
  • Design System: Material Design 3

📄 License

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

🙏 Acknowledgments

  • OpenCode team for the amazing AI assistant platform
  • Flutter team for the excellent mobile framework
  • Material Design team for the beautiful design system