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

About

Mobile App for OpenCode and more

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages