LM Mini — chat with local and on-device AI (open core, MIT)
See the codeWebsite · Desktop downloads · Docs
Chat with local and on-device AI from your phone, tablet, watch or desktop.
LM Mini is a Flutter chat client for LM Studio, Ollama, oMLX, Jan, Unsloth and other OpenAI-compatible servers, plus on-device models (llama.cpp and MLX). It runs on iOS, iPadOS, Android, macOS and Windows, with an Apple Watch companion.
This repository is an exported snapshot of the LM Mini app source. The free features are complete here and build from this tree.
LM Mini Pro implementations are not in this repository:
lib/pro/ holds public stubs (line 1 of each file is
// LM-MINI-PRO-STUB). They keep the signatures the app calls and do
nothing else. ProFeatures.included is false in this build.packages/premium_stub/ is the no-op entitlement API (isPremium is always
false).So Pro entry points and upgrade prompts are hidden in this build. Pro is available in the official LM Mini app:
More about the open-source build: https://lmmini.com/open-source.html
Everything below is free and builds from this tree.
Chat with your own models
On-device AI
Conversations
Tools
Voice
Image generation
Everywhere you are
Languages: English, German, Spanish, French, Russian and Chinese.
You need the Flutter SDK (stable channel).
Firebase configuration. The app expects Firebase config files, which are
not in the repository. Copy the placeholders, or run
flutterfire configure against your own Firebase project (sign-in, sync
and feedback only work with a real project):
cp lib/firebase_options.example.dart lib/firebase_options.dart
# iOS and macOS (the Xcode projects reference these files)
cp ios/Runner/GoogleService-Info.example.plist ios/Runner/GoogleService-Info.plist
cp macos/Runner/GoogleService-Info.example.plist macos/Runner/GoogleService-Info.plist
# Android (optional: the Google Services plugin is applied only when
# android/app/google-services.json exists)
cp android/app/google-services.example.json android/app/google-services.json
Google Sign-In is optional. To use it with your own project, replace the
placeholder GIDClientID and the two CFBundleURLSchemes entries
(com.googleusercontent.apps.… and app-1-…) in ios/Runner/Info.plist
with the values from your GoogleService-Info.plist, and pass your web
client ID on Android with
--dart-define=GOOGLE_SIGN_IN_WEB_CLIENT_ID=<id>.apps.googleusercontent.com.
Fetch packages and check the tree:
flutter pub get
flutter analyze
flutter test
Run it: flutter run (pick a device with -d).
Native builds without running:
# Android: works with or without android/app/google-services.json
flutter build apk --debug
# iOS Simulator: the Apple Watch companion target makes Flutter require a
# simulator id (list them with `flutter devices` or
# `xcrun simctl list devices available`)
flutter build ios --simulator --debug --no-codesign -d <simulator-id>
The first iOS or macOS build runs pod install, which can take several
minutes. Device and macOS builds are signed: in Xcode, set the Runner
(and, for iOS, the watch) targets to your own team and bundle identifier.
macOS desktop runtime (optional). The vendored llama.cpp server binaries are not in the repository; fetch them with:
./macos/scripts/vendor_llama_server.sh
See CONTRIBUTING.md. Coding agents: see AGENTS.md. Release notes: CHANGELOG.md. Privacy policy: privacy_policy.html.
The code is MIT licensed, see LICENSE. The LM Mini name and app icon are not covered by that license, see TRADEMARK.md.
LM Mini — chat with local and on-device AI (open core, MIT)
See the codeWebsite · Desktop downloads · Docs
Chat with local and on-device AI from your phone, tablet, watch or desktop.
LM Mini is a Flutter chat client for LM Studio, Ollama, oMLX, Jan, Unsloth and other OpenAI-compatible servers, plus on-device models (llama.cpp and MLX). It runs on iOS, iPadOS, Android, macOS and Windows, with an Apple Watch companion.
This repository is an exported snapshot of the LM Mini app source. The free features are complete here and build from this tree.
LM Mini Pro implementations are not in this repository:
lib/pro/ holds public stubs (line 1 of each file is
// LM-MINI-PRO-STUB). They keep the signatures the app calls and do
nothing else. ProFeatures.included is false in this build.packages/premium_stub/ is the no-op entitlement API (isPremium is always
false).So Pro entry points and upgrade prompts are hidden in this build. Pro is available in the official LM Mini app:
More about the open-source build: https://lmmini.com/open-source.html
Everything below is free and builds from this tree.
Chat with your own models
On-device AI
Conversations
Tools
Voice
Image generation
Everywhere you are
Languages: English, German, Spanish, French, Russian and Chinese.
You need the Flutter SDK (stable channel).
Firebase configuration. The app expects Firebase config files, which are
not in the repository. Copy the placeholders, or run
flutterfire configure against your own Firebase project (sign-in, sync
and feedback only work with a real project):
cp lib/firebase_options.example.dart lib/firebase_options.dart
# iOS and macOS (the Xcode projects reference these files)
cp ios/Runner/GoogleService-Info.example.plist ios/Runner/GoogleService-Info.plist
cp macos/Runner/GoogleService-Info.example.plist macos/Runner/GoogleService-Info.plist
# Android (optional: the Google Services plugin is applied only when
# android/app/google-services.json exists)
cp android/app/google-services.example.json android/app/google-services.json
Google Sign-In is optional. To use it with your own project, replace the
placeholder GIDClientID and the two CFBundleURLSchemes entries
(com.googleusercontent.apps.… and app-1-…) in ios/Runner/Info.plist
with the values from your GoogleService-Info.plist, and pass your web
client ID on Android with
--dart-define=GOOGLE_SIGN_IN_WEB_CLIENT_ID=<id>.apps.googleusercontent.com.
Fetch packages and check the tree:
flutter pub get
flutter analyze
flutter test
Run it: flutter run (pick a device with -d).
Native builds without running:
# Android: works with or without android/app/google-services.json
flutter build apk --debug
# iOS Simulator: the Apple Watch companion target makes Flutter require a
# simulator id (list them with `flutter devices` or
# `xcrun simctl list devices available`)
flutter build ios --simulator --debug --no-codesign -d <simulator-id>
The first iOS or macOS build runs pod install, which can take several
minutes. Device and macOS builds are signed: in Xcode, set the Runner
(and, for iOS, the watch) targets to your own team and bundle identifier.
macOS desktop runtime (optional). The vendored llama.cpp server binaries are not in the repository; fetch them with:
./macos/scripts/vendor_llama_server.sh
See CONTRIBUTING.md. Coding agents: see AGENTS.md. Release notes: CHANGELOG.md. Privacy policy: privacy_policy.html.
The code is MIT licensed, see LICENSE. The LM Mini name and app icon are not covered by that license, see TRADEMARK.md.