| 1 | # LocalMind |
| 2 | |
| 3 | **Your AI. Your Device. Your Rules.** |
| 4 | |
| 5 | LocalMind is a premium Flutter mobile application designed to provide a beautiful, fast, and privacy-respecting interface for local LLM servers and cloud providers. |
| 6 | |
| 7 |  |
| 8 | |
| 9 | <p align="center"> |
| 10 | <a href="https://apps.apple.com/us/app/localmind-ollama-lm-studio/id6777025480"> |
| 11 | <img src="docs/appstore_download_button.svg" width="200" /> |
| 12 | </a> |
| 13 | <a href="https://play.google.com/store/apps/details?id=pro.momin.localmind"> |
| 14 | <img src="docs/playstore_download_button.webp" width="200" /> |
| 15 | </a> |
| 16 | <a href="https://github.com/abdulmominsakib/localmind/releases"> |
| 17 | <img src="docs/github_download_button.webp" width="200" /> |
| 18 | </a> |
| 19 | </p> |
| 20 | |
| 21 | ## Vision |
| 22 | |
| 23 | Built for those who value privacy and performance, LocalMind connects directly to your local inference servers like **LM Studio** or **Ollama**, as well as cloud providers like **OpenRouter** or **Requesty**. No middleware, no tracking, and no hidden subscriptions. Just you and your models. |
| 24 | |
| 25 | ## Key Features |
| 26 | |
| 27 | - **On-Device AI Support (iOS & Android)**: Private, fast, and offline. Run powerful GGUF and LiteRT models (Gemma, Qwen, DeepSeek R1) directly on your device via `llamadart` and `flutter_gemma`. No internet connection required. |
| 28 | - **Model Context Protocol (MCP)**: Seamlessly connect to local or remote MCP servers. Grant models access to custom tools and integrations (e.g., file access, web APIs, shell actions) with fine-grained global and chat-level toggles. |
| 29 | - **Model Manager**: Download curated models or download GGUF models directly from HuggingFace. Manage model files directly within the app. |
| 30 | - **Multi-Server Connection**: Connect to Ollama, LM Studio, OpenRouter, Requesty, or any OpenAI-compatible API with real-time server health and speed monitoring. |
| 31 | - **Premium Chat Experience**: A polished, Claude/ChatGPT-inspired user interface featuring: |
| 32 | - **Streaming Responses**: Real-time SSE support for instant generation. |
| 33 | - **Markdown Rendering**: Beautiful rendering of text and code with rich syntax highlighting. |
| 34 | - **Expandable Reasoning Logs**: Collapsible, step-by-step visualization of thought processes for reasoning models like DeepSeek R1. |
| 35 | - **Edit & Regenerate**: Edit past user prompts to truncate the conversation history and regenerate responses. |
| 36 | - **Saved Messages Picker**: Quick-access shortcut in the input bar to store, organize, and reuse prompts or templates. |
| 37 | - **Message Variants**: Swipe and navigate through alternative model replies/variations. |
| 38 | - **Temporary Chats**: Incognito mode that allows conversations to run in-memory without saving logs to local history. |
| 39 | - **Smart Suggested Replies**: Context-aware follow-up prompts to keep conversations going. |
| 40 | - **Voice & Audio (STT & TTS)**: |
| 41 | - **Speech-to-Text (STT)**: Dictate your prompts directly via native voice input. |
| 42 | - **Text-to-Speech (TTS)**: Listen to model responses with custom playback speeds, replay caching, and background play. |
| 43 | - **Multimodal & Attachments**: Attach photos, documents, and other files to prompt vision-capable models. |
| 44 | - **Persona Management**: Easily switch between specialized AI personas (Code Assistant, Math Tutor, etc.) or create your own with custom system instructions. |
| 45 | - **Live Model Swapping**: Swap active models mid-conversation without breaking context or losing chat history. |
| 46 | - **Conversation History**: Full-text search through your chats, folder grouping, pinning, and local-only storage. |
| 47 | - **Backup & Restore**: Export and import complete backup archives (including chat history, personas, and app settings) locally. |
| 48 | - **Deep Customization**: |
| 49 | - **Theming**: Premium dark-first interface with full light mode support. |
| 50 | - **Chat Parameters**: Fine-tune temperature, top_p, max token limits, and context window size. |
| 51 | |
| 52 | ## Tech Stack |
| 53 | |
| 54 | LocalMind is built with modern, scalable technologies: |
| 55 | |
| 56 | - **Framework**: [Flutter](https://flutter.dev/) (Latest Stable) |
| 57 | - **On-Device AI**: `llamadart` + `flutter_gemma` (supporting llama.cpp & LiteRT) for native, high-performance localized inference. |
| 58 | - **UI Components**: Shadcn-inspired design system (`shadcn_ui`) |
| 59 | - **State Management**: [Riverpod](https://riverpod.dev/) for robust, testable state. |
| 60 | - **Local Storage**: [ObjectBox](https://objectbox.io/) (and Hive) for high-performance on-device persistence. |
| 61 | - **Networking**: [Dio](https://pub.dev/packages/dio) for optimized REST API handling. |
| 62 | - **Rendering**: `gpt_markdown` + `syntax_highlight` for rich content. |
| 63 | |
| 64 | ## Privacy First |
| 65 | |
| 66 | - **Zero Analytics**: We don't track how you use the app. |
| 67 | - **Local Storage**: Your conversations are stored only on your device, encrypted via Hive. |
| 68 | - **Direct Traffic**: Network requests go directly to _your_ servers. LocalMind never sees your data. |
| 69 | |
| 70 | ## Contributors |
| 71 | |
| 72 | We are incredibly grateful to the developers who have helped build LocalMind: |
| 73 | |
| 74 | <p align="left"> |
| 75 | <a href="https://github.com/abdulmominsakib"> |
| 76 | <img src="https://github.com/abdulmominsakib.png?size=100" width="50" height="50" style="border-radius: 50%; margin-right: 4px;" title="Abdul Momin Sakib (abdulmominsakib)" alt="Abdul Momin Sakib"/> |
| 77 | </a> |
| 78 | <a href="https://github.com/onlypuppy7"> |
| 79 | <img src="https://github.com/onlypuppy7.png?size=100" width="50" height="50" style="border-radius: 50%; margin-right: 4px;" title="onlypuppy7" alt="onlypuppy7"/> |
| 80 | </a> |
| 81 | <a href="https://github.com/leo-rnl"> |
| 82 | <img src="https://github.com/leo-rnl.png?size=100" width="50" height="50" style="border-radius: 50%; margin-right: 4px;" title="Léo Reynal (leo-rnl)" alt="Léo Reynal"/> |
| 83 | </a> |
| 84 | <a href="https://github.com/dtrknt15"> |
| 85 | <img src="https://github.com/dtrknt15.png?size=100" width="50" height="50" style="border-radius: 50%; margin-right: 4px;" title="dtrknt15" alt="dtrknt15"/> |
| 86 | </a> |
| 87 | <a href="https://github.com/NJannasch"> |
| 88 | <img src="https://github.com/NJannasch.png?size=100" width="50" height="50" style="border-radius: 50%; margin-right: 4px;" title="Nils Jannasch (NJannasch)" alt="Nils Jannasch"/> |
| 89 | </a> |
| 90 | <a href="https://github.com/ystartgo"> |
| 91 | <img src="https://github.com/ystartgo.png?size=100" width="50" height="50" style="border-radius: 50%; margin-right: 4px;" title="ystartgo" alt="ystartgo"/> |
| 92 | </a> |
| 93 | </p> |
| 94 | |
| 95 | ## Roadmap (Future Plans) |
| 96 | |
| 97 | LocalMind is rapidly evolving. Here is what's coming next: |
| 98 | |
| 99 | - [x] **AI Voice (Text-to-Speech)**: Listen to your AI's responses with high-quality TTS. |
| 100 | - [x] **Context Smart Replies**: Integrated suggested follow-ups to keep the conversation flowing. |
| 101 | - [x] **Multimodal Support**: Attach images and documents for vision-capable models. |
| 102 | - [x] **Tablet/Desktop Optimization**: A split-view layout for large-screen productivity. |
| 103 | - [x] **Export Options**: Export your chats to Markdown or PDF to share or archive. |
| 104 | - [x] **Quick Shortcuts**: OS-level widgets and shortcuts for launching new chats instantly. |
| 105 | - [x] **Voice-to-Voice Mode**: Engage in real-time, low-latency spoken conversations with local models. |
| 106 | - [x] **S3 Cloud Sync**: End-to-end encrypted cloud sync for settings, custom personas, and chats in your own S3 server. |
| 107 | |
| 108 | ## Getting Started |
| 109 | |
| 110 | ### Prerequisites |
| 111 | |
| 112 | - Flutter SDK (latest stable) |
| 113 | - A running local LLM server (e.g., [Ollama](https://ollama.com/) or [LM Studio](https://lmstudio.ai/)) |
| 114 | |
| 115 | ### Installation |
| 116 | |
| 117 | 1. Clone the repository: `git clone https://github.com/abdulmominsakib/localmind.git` |
| 118 | 2. Install dependencies: `flutter pub get` |
| 119 | 3. Run the app: `flutter run` |
| 120 | |
| 121 | --- |
| 122 | |
| 123 | ## License |
| 124 | |
| 125 | LocalMind is open source and available under the MIT License. Contributions are welcome! |