v0.3 — open source, self-hosted

I kept learning things
and then losing them.
So I built a system
that remembers.

EchOS is a self-hosted AI assistant with a real memory. It captures what you read, watch, and think — and helps you find it again later, in your own words.

Self-host it View on GitHub →
E
EchOS
● online
What did I read about compound interest and long feedback loops?
you, just now
Found 3 relevant items from your notes:

Article (saved Mar 14) — "The Psychology of Money" excerpt on how small consistent actions compound invisibly until a threshold.

Voice note (saved Jan 31) — You said: "the feedback loop in language learning is so long that most people quit before they feel it working."

Video transcript (saved Feb 6) — Naval on patience as a prerequisite for compounding.
EchOS · searched 847 notes

Not a notes app.
Not a chatbot.

Closer to a second brain — one that actually works. You send it things throughout the day: a voice note from your commute, a YouTube video, a question you're turning over. It processes, indexes, and stores all of it.

When you need something back, you ask. It searches across everything you've given it and answers from your own knowledge — not from the internet, not from someone else's data.

It runs on your server. No subscription. No company holds your data. You own the whole thing.

01
Capture
  • Voice note → transcribed & indexed
  • URL → fetched, summarized
  • Text → stored with context
02
Recall
  • Ask in plain language
  • No tags or folders needed
  • Searches across everything
03
Write
  • Drafts from your own notes
  • Trained on your style
  • Sounds like you
Capture anything. No friction.

Voice messages, URLs, plain text, images. You send via Telegram — an app already on your phone. No special app. No login. Just message your bot.

Find what you mean, not just what you typed.

Hybrid search: full-text BM25 combined with semantic vector search, fused with Reciprocal Rank Fusion. You don't need the exact words. You just need to remember roughly what you were thinking.

Write in your voice.

Give EchOS examples of your writing. It builds a style profile. When you ask it to write, it draws on your notes and writes the way you write. Not generic. Not robotic.

EchOS stores everything as plain Markdown. Open your vault in Obsidian today. Back it up with git. Move it anywhere. You're not locked in to EchOS — you're just using it to fill the vault.

It runs on Docker. You can have it running in under 10 minutes.


How it works

I didn't want to learn
a new interface.

I wanted to talk to it like a person, the way I already send messages all day. That's why EchOS uses Telegram as its primary interface. Your phone is already in your pocket. The app is already open. You just message your bot.

Voice messages

Record a voice note in Telegram. EchOS transcribes it with OpenAI Whisper, extracts ideas and key points, and indexes it. Good for thinking out loud on a walk, or capturing something before you forget it.

URLs

Paste a link. EchOS fetches the page, strips the junk, and stores a clean summary alongside the full text. YouTube links get the transcript pulled automatically. No browser extension needed.

Text

Any message that isn't a URL or voice note is processed as a note. EchOS categorizes it, tags it if relevant, and makes it searchable.

Images

Send a photo and EchOS stores it with metadata. Image analysis is handled by Claude.

Three layers, combined.

In practice: "that thing I read about compound interest last year" finds the article. "My thoughts on moving to a new city" surfaces voice notes you forgot you recorded. You don't need tags — though you can add them if you want.

01
Full-text (BM25)

Exact and near-exact phrase matching.
Stored in SQLite with FTS5.

02
Semantic (vector)

Meaning-based matching.
Stored in LanceDB.

03
RRF fusion

Reciprocal Rank Fusion combines
both ranked lists into one result set.

Two separate voices.

Agent voice

Conversational, direct, gets to the point. This is how EchOS talks to you day-to-day.

Writing voice

You train this one. Give it examples of your writing. It writes for you — from your notes, in your style.

When you ask it to write a blog post on a topic, it doesn't pull from the internet. It searches your own notes for relevant material, then writes in your style from that material. The result sounds like you made it — because the raw ingredients were yours.

Telegram bot Live

Fully functional. This is the main interface today. Voice, URLs, text, search, writing — everything works.

Web UI In progress

A browser-based interface for browsing and searching your knowledge base.

Terminal UI In progress

For people who live in the terminal.

Extensions, not hardcoded logic.

EchOS processes content through plugins. Each plugin handles a content type. The plugin system is open — if you want to add support for PDFs, podcasts, newsletters, you can write a plugin that implements the EchosPlugin interface. The core stays clean; the extensions stay modular.

YouTube

Extracts transcripts from YouTube URLs automatically.

Article

Extracts clean text from web pages, strips ads and navigation.

Image

Processes images and generates metadata via Claude.


Self-hosting

Three ways
to run it.

I run this on a small VPS. It costs less than a coffee a month. Pick whichever setup matches how you work.

Anthropic API key

Required. This is a pay-as-you-go API key from console.anthropic.com — not a Claude Pro or Max subscription. Those don't provide programmatic access. Typical usage costs a few dollars a month.

Telegram bot token

Required. Get one from @BotFather in about 2 minutes. You'll also need your own Telegram user ID — the bot uses an allowlist so only you can interact with it.

OpenAI API key

Optional. Needed for voice transcription (Whisper) and semantic search (embeddings). If you skip this, text and URL capture still work — you just lose voice notes and meaning-based search.

Node.js 20+ and pnpm 9+

Required for the wizard and local paths. Not needed if you're going straight to Docker. The VPS one-liner installs everything automatically.

A
Interactive wizard Recommended
Guided setup that validates your environment, walks through API keys, and writes your config.
$ git clone https://github.com/albinotonnina/echos.git && cd echos
$ pnpm install
$ pnpm wizard
# walks you through keys, interfaces, storage
$ pnpm build && pnpm start
B
VPS one-liner Fastest
Detects your platform, installs prerequisites, clones the repo, and launches the wizard.
$ curl -sSL https://raw.githubusercontent.com/albinotonnina/echos/main/install.sh | bash
C
Docker Compose Production
Containerised deployment with Redis included. Add nginx + Let's Encrypt for SSL.
$ git clone https://github.com/albinotonnina/echos.git && cd echos
$ pnpm wizard --non-interactive
# reads env vars, writes .env
$ cd docker && docker compose up -d
Going further

About

Why I built this

A few years ago I noticed a pattern. I'd read something interesting. I'd think "I'll remember that." I wouldn't.

I tried note-taking apps. I tried tagging systems. I tried a Zettelkasten. Each one worked until it didn't — until the friction of maintaining the system cost more than the value it gave back.

The problem wasn't the tools. It was that capturing and retrieving are two different problems, and most tools optimise for one at the expense of the other.

I wanted something that made capturing effortless — Telegram, voice notes, paste a URL — and retrieval smart — ask a question, get an answer. I wanted it to run on infrastructure I controlled. I didn't want my knowledge base to be someone else's product.

So I built EchOS. It runs on my server. I use it every day. It's not finished — the web UI is still in progress — but the core loop works, and it's changed how I manage information.

I'm sharing it because other people have the same problem, and because the kind of people who want to run their own knowledge infrastructure tend to be good at improving things they care about.

No dashboards. No schemas. No commands to memorize. Your data is Markdown files on your filesystem.

EchOS is an interface layer over your own files, not a replacement for them. The AI does the heavy lifting — but the underlying data is always yours, always portable, always human-readable.

Open your notes in any editor. Search them with grep. Back them up with git. Move them to a different system whenever you want.

Privacy isn't a feature. It's the architecture. Your notes never leave your server except to reach the AI APIs you've explicitly configured. No analytics. No tracking. No "we may use your data to improve our service." You run it; you control it.

Working today
  • Telegram bot — voice, URLs, text, images
  • Hybrid search — full-text + semantic
  • Writing voice — style profiles and generation
  • Plugin system — YouTube, article, image
  • Obsidian-compatible Markdown export
On the list
  • Web UI
  • Terminal UI
  • PDF support
  • Better scheduling and background jobs
  • More plugin examples and documentation

This is v0.3. Real software I run and depend on, built in public.
Expect rough edges. Expect improvement.

If you use it and hit something broken, open an issue. If you add something useful, I'll look at the PR.