jaybharti.me meridian. GitHub
Personal RAG, self-hosted

Everything on your Mac, one message away.

Meridian indexes your files into a private vector index and answers questions over Telegram, grounded in your own data.

Meridian
Telegram

A private index of everything you own.

Meridian is a self-hosted Retrieval-Augmented Generation backend built on Cloudflare Workers. A local indexer on your Mac chunks your files, embeds them offline, and streams the vectors into a private Vectorize index alongside a relational record in D1.

From there, two different things can read that same index: a Telegram bot for natural-language questions, and mac-orchestrator's own search tool. Neither one owns the data. Meridian just serves it.

01
Files
Documents, Downloads, Desktop, OneDrive
02
Chunk
Split locally by the indexer
03
Embed
bge-base-en-v1.5, 768 dimensions
04
Index
D1 rows + Vectorize, cosine similarity
05
Retrieve
Agent loop, answered over Telegram

Five ways to look, one way to answer.

Every question runs through a durable Cloudflare Workflow, up to seven reasoning steps, before Meridian commits to a final answer.

Semantic search

Finds relevant files by topic or concept, not exact wording.

vectorSearch(query)

File path search

Locates documents by name.

filePathSearch(term)

Keyword search

Finds specific terms inside text.

keywordSearch(term)

Full file read

Reads up to 25 KB for complete context.

fetchFileContent(path)

In-file search

Pinpoints a value inside one large spreadsheet or CSV rather than reading the whole thing.

searchFileContent(path, term)

Final answer

Called once the agent has enough evidence. Answers are never guessed or extrapolated from partial matches.

respond(answer)

Shares a brain with mac-orchestrator.

mac-orchestrator's local indexer writes into Meridian. Meridian serves that same index back out, over Telegram and straight into mac-orchestrator's own tools.

mac-orchestrator's indexer.py
Embeds files locally, on your Mac
Meridian · D1 + Vectorize
One private index, one Cloudflare Worker
Telegram bot
Natural-language Q&A, 7-step agent loop
mac-orchestrator's vector_search()
Reads the same index from inside an agent session

Bring your own Cloudflare account.

No hosted version. Meridian runs on infrastructure only you control.

$git clone https://github.com/Jay-2212/meridian.git $cd meridian $npx wrangler d1 execute mac-brain-db --remote --file=./schema.sql $npx wrangler deploy
Three secrets, set with wrangler secret put: a Telegram bot token, a bearer token for the local indexer's ingest calls, and the one Telegram user ID allowed to query it.

Built for one user.

Every endpoint checks a bearer token before it touches your index.

Ingestion and retrieval both require an authenticated request, and the Telegram bot only answers one authorized user ID. There is no shared or hosted deployment: every install runs on your own Cloudflare account, against your own database.

Secrets are never hardcoded. They live in Cloudflare's secret store or a local, gitignored .devvars file, never in source.