Sat 2026.10.11
Talorys: a personal AI assistant, almost for free
Today's pick: Talorys
Talorys is an open-source personal AI assistant, with chat, memory, tasks, notes and scheduled reminders, that installs into the user's own Cloudflare account with one command.
It is today's pick because the code shows exactly how the design, from storage down to memory search, was reshaped to keep one condition, "my assistant runs in my account," inside the free plan.

- Found on
- GitHub
- Built with
- TypeScript, Hono, Cloudflare Agents SDK, Claude Opus 5.5
What is different
All the data lives in a single Durable Object, a small server with its own storage that wakes only when a request arrives. Fifteen SQLite tables and an FTS5 index sit inside it, and KV, D1, R2 and Vectorize are not used. The wrangler config written by the installer has only two bindings, Workers AI and the Durable Object. The price of this choice is memory. The memories sent to the model each turn come from splitting the user's sentence into words of two or more characters, dropping stop words, running a prefix OR query against FTS5, ranking by BM25, and keeping at most eight, plus the four most recently edited preferences. There are no embeddings and no vector index. So "memory" is keyword search, not semantic search, and different wording misses. In exchange there are zero external services, and because reminders run on the same object's alarms, one Worker is the whole assistant. What this idea buys is clear. Give up one step of memory quality, and a personal assistant can be deployed with no server and close to zero running cost.
How it was built
All twelve commits are dated 2026-10-10, and every one carries Claude Opus 5.5 in its Co-Authored-By trailer. The code sits on the Hono router and the Cloudflare Agents SDK, and the model is glm-4.7-flash on Workers AI. The README says nothing about how it was made.
Running it
npm install took 16 seconds, and one npm run dev brings up the Worker, the Pages Function and Vite together. It runs without a Cloudflare account because the local build swaps the model for a deterministic mock provider. So what I checked today was not the model's answers but everything around them: tool calls, storage and scheduling. "remember that …" landed on the memory page as a preference, "add task …" appeared in the task list, and "list tasks" read it back. "remind me in 1 minutes" arrived in the notification center, but 117 seconds later. The code rounds to the minute and adds 59 seconds, so a one-minute reminder lands on the next full minute after more than a minute has passed. That is a design choice, not a bug. The three README claims (reminders do not use AI, nothing is sent out, no paid services are created) held in both code and execution. The Worker bundle was 602 KiB gzipped.
Total Upload: 3190.12 KiB / gzip: 601.88 KiB
--dry-run: exiting now.


Not checked
Real answers from Workers AI, and what happens when the daily allowance runs out, could not be seen in this environment. How well FTS5's default tokenizer recalls Korean memories with particles attached is something to measure next time by loading Korean sentences into tal_memories_fts and mixing queries.
Verdict
It runs. Install is two commands, but memory is keyword search, so a rephrased question misses. It fits when the assistant should live in your own Cloudflare account and memory at the level of notes is enough. If memory is the point, not until vector search lands.
Getting started
npx create-talorys@latest
- You need
- A Cloudflare account (browser login during install) · Node.js 22 or later
- Cost
- Runs within the Cloudflare free plan. Workers AI has a daily allocation; when it runs out, chat stops but tasks, notes and reminders keep working.
The installer deploys the Worker and the Pages project and prints the URL. To run it locally only, clone the repository, run npm install, then npm run dev.
Steps select 1 ran.
Follow-ups
Checked again after 7, 30 and 90 days: still alive, what changed, how people reacted.