Skip to content
CodeByParthoPublic

About

A private, offline-capable chat application with custom persona management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

ECHO Logo

ECHO

A private, offline-capable chat application with custom persona management

XERJ Corpus Hub Contributor

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.

Flutter Android Offline Engine License Download APK


Overview

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 ECHO Persona Engine (Clone Anyone)

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 .json persona profile, and ECHO will emulate that person's exact texting habits, tone, cadence, and vocabulary.

How to Clone Anyone (Step-by-Step Guide)

  1. 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.
  2. 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.
  3. Step 3: Save as persona.json
    Save the resulting JSON structure into a file named persona.json on your device storage.
  4. Step 4: Import and Chat in ECHO
    Open ECHO, go to Settings ➔ Personas ➔ Import JSON, select your persona.json file, 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]

Screenshot Gallery

ECHO Home & Chat

ECHO Home & Chat
Active persona pill, model selector & offline guide
Conversations Drawer

Conversations Drawer
Session search, thread management & quick chat switch
Model Management

Model Management
Download GGUF/LiteRT models or import local files
Cloud Provider Settings

Cloud Provider Settings
OpenRouter, OpenAI, Claude, Gemini & DeepSeek
Local API Server

Local API Server
On-device OpenAI-compatible HTTP endpoint & LAN binding
App & Model Settings

App & Model Settings
Persona manager, theme, context size & stop sequences
Device Diagnostics & About

Device Diagnostics & About
Hardware RAM benchmarking, tier detection & version info

Core Features

  • 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 / assistant turns) 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/completions HTTP 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 .gguf files from device storage.
  • Fine-Tuned Sampling Parameters — Per-persona and global controls for temperature, top-p, max tokens, and custom stop sequences.

Architecture

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]
Loading

Installation

Option 1: Direct APK Installation (Recommended)

  1. Download the pre-built application from the Releases page.
  2. On your Android device, open the downloaded file.
  3. When prompted, allow installation from your browser or file manager.
  4. Launch ECHO and select or import a model to begin.

Option 2: Build from Source

Prerequisites

  • Flutter SDK: >= 3.47.8 (Dart >= 3.13.7)
  • Android SDK & NDK: compileSdk 35, minSdk 26
  • JDK: Java 17

Build Instructions

# 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 --debug

The APK binary will be produced at: build/app/outputs/flutter-apk/app-debug.apk


Tech Stack

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

License & Acknowledgements

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

About

A private, offline-capable chat application with custom persona management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages