easychen / openMode

Mobile App for OpenCode and more

Repository from Github https://github.comeasychen/openModeRepository from Github https://github.comeasychen/openMode

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

About

Mobile App for OpenCode and more

License:MIT License


Languages

Language:Dart 99.5%Language:HTML 0.4%Language:Kotlin 0.0%