ModelGo is an open-source Flutter application designed to bridge the gap between mobile devices and local AI execution. It provides a seamless interface for users to search, download, and manage quantized Large Language Models (LLMs) directly from the Hugging Face Hub, optimized specifically for mobile hardware.
- Hugging Face Hub Integration: Search for any open-source model available on Hugging Face directly within the app.
- Mobile-Optimized Filtering: Automatically filters out massive models and displays only quantized
.gguffiles under 4GB, ensuring they can safely run on standard mobile hardware without memory crashes. - Direct-to-Disk Streaming: Utilizes a robust background downloading system that streams massive AI weight files directly to the device's secure physical storage, bypassing RAM limitations.
- Download Management: Includes real-time download progress tracking and the ability to cancel massive downloads instantly, automatically cleaning up partial/corrupted files.
- Local File Importing: Allows users to import existing
.ggufor.binmodel files directly from their phone's local storage. - Persistent Model Library: Uses a local SQLite database to track and manage the file paths of all downloaded and imported models for quick access.
- Framework: Flutter (Dart)
- Networking & Downloads:
dio(for REST API communication and chunked file streaming) - Local Storage:
sqflite(SQLite database for persistent model tracking) - File Management:
path_provider&file_picker
lib/main.dart: App entry point and theme configuration.lib/home_screen.dart: Main dashboard navigation.lib/upload_model_screen.dart: UI for picking local models and monitoring upload states.lib/hugging_face_page.dart: Core logic for the Hugging Face REST API, search, filtering, and streaming downloads.lib/model_dao.dart: Data Access Object for handling SQLite database operations.lib/model_model.dart: Data models representing the stored AI weights.
- Flutter SDK (v3.11.5 or higher)
- Android Studio (for Android deployment) or Xcode (for iOS deployment)
- A physical device with at least 6GB+ RAM (Recommended for running quantized LLMs)
- Clone the repository:
git clone https://github.com/Lame-Coders/ModelGo.git cd modelgo - Fetch Dependencies:
flutter pub getflutter pub get
- Run the app on your connected device:
flutter run
- Local Inference Engine: Integrating a C++ bridge (like
llama.cppvia FFI) to actually load the downloaded.ggufweights into memory and generate text offline. - Chat Interface: Building a conversational UI to interact with the downloaded models.
- Model Deletion: Adding a UI to remove models from the SQLite database and delete the multi-gigabyte files from physical storage to free up space.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page on GitHub.