Skip to content

Repository files navigation

EchoFlow

EchoFlow

A privacy-first Android AI workspace

Two surfaces — Chat for conversation, Imagine for images and video. Local models, custom endpoints, web search, deep research, agents, artifacts. No backend, no account, no telemetry.

Release License Platform Kotlin

Download the latest APK →


What it is

EchoFlow is a native Android app for talking to AI models — your way. There's no EchoFlow server sitting in the middle: you bring your own API keys, point it at your own Ollama box, or skip the network entirely and run a model on your phone. Nothing you type gets logged anywhere except your own device.

It started as a chat app and grew into a small workspace: web search, background research, structured data extraction, a controllable browser, generated documents, and a few ways to make multiple models work together.

Why people use it

Nothing leaves your control No EchoFlow backend, no account, no analytics. Conversations, keys, and settings live on your device.
Any model you want OpenRouter, OpenAI, Claude, Gemini, Cerebras, Sarvam, a local Ollama server, any OpenAI-compatible endpoint, or fully offline on-device models.
More than chat Web search, deep research with citations, structured data extraction, browser automation, and document generation, built around whichever model you're using.
Models working together Have one model consult a stronger one mid-answer, run several models in parallel and let a judge synthesize the results, or hand a model its own tools and a worker to delegate to.

Quick start

1. Install the APK from Releases.
2. Open Settings and connect a model:
     - Models           -> OpenRouter & on-device
     - Custom           -> OpenAI, Claude, Gemini, Cerebras, Sarvam, xAI
     - Anything else    -> Echo Labs -> Custom API Endpoint
3. Start chatting.

No keys are required just to install and look around — on-device models work fully offline.

Connecting a model

Provider Where to set it up Attachments
OpenRouter Settings → Models Images/PDFs, depending on the model
OpenAI · Claude · Gemini · Cerebras · xAI Settings → Custom Images and PDFs (Cerebras: Gemma-family images only)
Sarvam Settings → Custom → Sarvam Text chat with Sarvam 105B; Saaras v4 dictation
Ollama (local/LAN) Echo Labs → Custom API Endpoint → Ollama API Per-model toggle
OpenAI-compatible (LM Studio, Jan, vLLM, LocalAI…) Echo Labs → Custom API Endpoint Per-model toggle
On-device (LiteRT / MediaPipe) Settings → Models → On-device .litertlm models only

Enable Sarvam and save your API key under Settings → Custom → Sarvam. sarvam-105b is preselected for the chat model picker. To use its speech recognition, choose Saaras v4 under Settings → Dictation. Dictation uses the selected provider’s key independently of the chat model; longer recordings are split to fit Sarvam’s 30-second request limit.

Web search (Exa, Parallel, Firecrawl) and OpenRouter's own server-side search work across every provider above except where noted.

What you can do with it

Chat — streaming responses, markdown, code highlighting, reasoning traces, citations, and model switching mid-conversation. Chat and Imagine keep separate histories; conversations that predate the split stay in Chat.

Web search — toggle it per message or set a default. OpenRouter's search only works with OpenRouter models; Exa, Parallel, and Firecrawl work with anything.

Deep research — a background mode for questions that need real investigation. Runs notify you of progress, survive interruption, and come back as a cited report with sections and tables.

Data Agent — point it at a page or task and get structured output (prices, specs, contacts) instead of prose, with a visible credit budget.

Browser Flow — a live browser session that chat can drive across multiple turns, with confirmation prompts before it visits a new domain or sends anything.

Artifacts — generate and revise self-contained pages, reports, and documents, versioned as you iterate.

Imagine — a separate surface for making things. Describe an image and edit it conversationally ("make the sky purple"), or describe a short clip and get it back as video. Shape, model and audio live beside the prompt; results are presented as a contact sheet rather than a chat log. Rendering a clip takes minutes, so it keeps going with the app closed and picks itself back up if the app is killed mid-render — you choose the shape, the model chooses the length. See docs/modes.md and docs/video-generation.md.

Echo Adviser — let your model call in a stronger or more specialized model mid-answer when it's stuck.

Echo Fusion — run several models on the same prompt and have a judge model compare and merge their answers.

Echo Agents — give a model its own search/fetch tools plus a cheaper worker model to delegate sub-tasks to.

Running models on-device

EchoFlow can run models entirely offline using LiteRT-LM and MediaPipe:

  • A curated catalog of mobile-ready models
  • Hugging Face search for .task and .litertlm files
  • Importing your own model files
  • Token support for gated Hugging Face models
  • No internet connection or API key required once a model is downloaded

Built with

Kotlin and Jetpack Compose (Material 3 Expressive), targeting Android 24+. Networking via OkHttp/Retrofit, persistence via Room, on-device inference via LiteRT-LM and MediaPipe GenAI, search and research via Exa/Parallel/Firecrawl/OpenRouter, markdown rendering via a custom Compose renderer.

app/src/main/java/com/echoflow
├── data           # Room entities/DAOs, provider services, settings, research, agents, browser, artifacts, image/video generation, local models
├── ui             # ViewModels and feature state controllers
├── ui/components  # cards, reports, markdown, browser/data/research result UI
├── ui/screens     # chat/, imagine/, projects/, settings/ feature packages
└── ui/theme       # color, shape, motion

See Architecture for feature ownership and Contributing for setup and verification.

Building from source

./gradlew assembleDebug

No keys are needed to build — everything is configured at runtime in Settings.

License

MIT — see LICENSE.txt.

About

Android Native AI Chat App

Resources

Contributing

Stars

48 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages