A private, offline-capable chat application with custom persona management
A high-performance Android chat application built with Flutter that runs quantized on-device models with zero internet connection, supports custom endpoints, and features an unlimited custom persona engine.
ECHO brings complete privacy and offline capability to mobile conversation modeling. Powered by native llama.cpp ARM acceleration, ECHO executes quantized on-device models such as Qwen, Llama, Gemma, and SmolLM directly on your phone without transmitting data to remote servers.
When external compute is required, ECHO connects to remote endpoints (OpenRouter, DeepSeek, or custom APIs) with secure local key storage.
The Signature Feature of ECHO
While standard chat apps provide one rigid assistant profile, ECHO features a custom-built Persona Engine. You can take conversation exports from WhatsApp, Facebook Messenger, Telegram, or iMessage, convert them into a structured.jsonpersona profile, and ECHO will emulate that person's exact texting habits, tone, cadence, and vocabulary.
- Step 1: Export your chat history
Export your conversation history (HTML, JSON, or TXT format) directly from WhatsApp, Messenger, Telegram, or your messaging app of choice. - Step 2: Run the Persona Calibration Prompt
Provide your chat export along with the calibration prompt template below to a local inference engine or API endpoint. - Step 3: Save as
persona.json
Save the resulting JSON structure into a file namedpersona.jsonon your device storage. - Step 4: Import and Chat in ECHO
Open ECHO, go to Settings ➔ Personas ➔ Import JSON, select yourpersona.jsonfile, and start chatting with your clone immediately!
Click here to view the Persona Calibration Prompt template
I am providing you with an exported chat history (HTML, JSON, or TXT) between me and another person. I want to create a Persona profile so ECHO can emulate this person's exact texting style.
Please analyze ONLY the messages sent by the other person (not me). Study their:
1. Tone (playful, dry, affectionate, sarcastic, etc.)
2. Message length (short bursts vs. long paragraphs)
3. Emoji usage (which ones, how often)
4. Punctuation and capitalization habits
5. Common slang, typos, or pet phrases
Output ONLY a valid JSON file in this exact format (do not include markdown blocks or any other text):
{
"schema_version": "1.0",
"persona_id": "unique-name",
"name": "Their Name",
"aliases": ["Any other names they used"],
"system_prompt": "You are [Name]. You text like this: [Detailed description of their style, tone, and habits]. Never break character. Always maintain tone and persona.",
"few_shot_examples": [
{"user": "Example message from me", "assistant": "Example reply from them"},
{"user": "Another message from me", "assistant": "Another reply from them"}
],
"generation_settings": {
"temperature": 0.85,
"top_p": 0.9,
"max_tokens": 250,
"stop": []
}
}
Provide 5-8 high-quality few_shot_examples verbatim from the chat history.
Here is the chat history:
[PASTE YOUR CHAT EXPORT HERE]
- 100% Offline Privacy — Runs quantized GGUF weights locally via llama.cpp with zero cloud telemetry or data leakage.
- Unlimited Persona Engine — Create custom user and assistant profiles, import/export portable JSON files, and clone texting styles.
- Few-Shot Demonstration Calibration — Injects verbatim demonstration dialogues (
user/assistantturns) to teach tone, slang, and character. - Hybrid Cloud Gateway — Connect to remote endpoints when extra compute is needed.
- Local HTTP Server — Host an on-device
/v1/chat/completionsHTTP server for local tools and LAN devices. - Dynamic Prompt Composer — Automatically formats message context to match ChatML, Llama-3, Gemma, and Phi templating conventions.
- In-App Model Hub — One-tap downloads for popular SLMs (Qwen 2.5, SmolLM2, Gemma) or import your own
.gguffiles from device storage. - Fine-Tuned Sampling Parameters — Per-persona and global controls for temperature, top-p, max tokens, and custom stop sequences.
graph TD
UI[Flutter Material 3 UI] --> Controllers[GetX Reactive Controllers]
Controllers --> ChatCtrl[ChatController]
Controllers --> ModelCtrl[ModelController]
Controllers --> SettingsCtrl[SettingsController]
ChatCtrl --> PersonaSvc[PersonaService & Codec]
ChatCtrl --> Composer[PromptComposer]
Composer --> InfSvc[InferenceService Gateway]
InfSvc --> LocalEngine[Local Native Engine llama.cpp / LiteRT]
InfSvc --> CloudEngine[Cloud Gateway OpenAI / Claude / Gemini / OpenRouter]
LocalEngine --> GGUFStore[(On-Device GGUF Models)]
Controllers --> Storage[(Hive Local NoSQL Storage)]
InfSvc --> ServerSvc[Local HTTP API Server]
- Download the pre-built application from the Releases page.
- On your Android device, open the downloaded file.
- When prompted, allow installation from your browser or file manager.
- Launch ECHO and select or import a model to begin.
- Flutter SDK:
>= 3.47.8(Dart>= 3.13.7) - Android SDK & NDK:
compileSdk 35,minSdk 26 - JDK: Java 17
# Clone the repository
git clone https://github.com/CodeByPartho/ECHO.git
cd ECHO
# Install Flutter dependencies
flutter pub get
# Run static analysis and unit tests
flutter analyze
flutter test
# Build debug APK
flutter build apk --debugThe APK binary will be produced at:
build/app/outputs/flutter-apk/app-debug.apk
| Layer | Technology | Role |
|---|---|---|
| Framework | Flutter 3.47+ | Cross-platform mobile UI |
| Language | Dart 3.13+ | Application logic & null safety |
| State Management | GetX | Reactive controllers & dependency injection |
| Local Storage | Hive | Embedded on-device NoSQL storage |
| Inference Engine | llama.cpp | Native ARM NEON GGUF execution |
| Hardware Acceleration | Google LiteRT | On-device hardware delegation |
| Networking | Dio & Http | Cloud API streaming and model downloads |
This project is licensed under the MIT License.
ECHO is based on and extends cross-platform-llm-client by orailnoor and contributors, incorporating an unlimited persona engine, dynamic prompt composition, and customized UI.
The UI and state-management architecture of ECHO was selected to be a part of the XERJ Corpus Hub, serving as a public reference for engineering standards.
Built by Partho






