Always-on agents such as ChatGPT’s dots and Meta’s Muse run on the company’s own servers. Talorys, released on 10 October, keeps the agent in your hands instead: one command deploys it to your Cloudflare account, you sign in with a password you set, and your chats, memories, tasks and reminders are stored inside that account.
It reached 275 points on Hacker News within a day. You need to be happy typing a few commands into a terminal, and you will need no API key from OpenAI or Anthropic.
What it does and what it runs on
- Chat and memory. It remembers facts and preferences you can view, edit and delete on its Memory page, and brings the relevant ones into each chat.
- Memory history. When a fact changes, it keeps the old one as a past fact and asks you on the Memory page when two might clash.
- Tasks, notes and projects. Ask in chat (“add a task to renew my passport on Friday”) or use the app’s own pages.
- Reminders and routines. One-off or repeating reminders, a daily digest of due tasks, and optional AI routines, all delivered to a notification centre inside the app.
- The AI model. It calls GLM-4.7-Flash through Cloudflare’s Workers AI, inside your account, so no outside AI company is involved.
- What it cannot do. Its own instructions say it cannot browse the web, run code, send email or log in to your accounts.
What it costs
Talorys is built to fit Cloudflare’s Workers Free plan and never switches on a paid feature by itself. The limit you will feel is the AI one: Workers AI’s pricing page gives every account 10,000 Neurons a day, Cloudflare’s unit of AI compute, reset at 00:00 UTC.
- When the day’s Neurons run out, chat pauses with a message until the reset, while tasks, notes, memories and plain reminders keep working.
- How far 10,000 goes depends on how much you chat. One tester on Hacker News used 500 in a few minutes, so heavy chatting can use the day up.
- On a paid Workers plan, anything past the daily amount is billed at $0.011 per 1,000 Neurons, so keep Talorys on an account that stays on the Free plan.
Set it up, step by step
- Make a Cloudflare account on the Free plan. A fresh account with nothing else on it is simplest, because Free-plan limits stop at the daily amount instead of billing you.
- Install Node.js 22 or newer. Type
node --versionin your terminal to check; the installer stops on anything older. - Run the installer. Open Terminal on a Mac or PowerShell on Windows and type
npx create-talorys@latest; it creates atalorysfolder wherever your terminal is. It opens Cloudflare’s authorisation page in your browser; approve it, then pick your account and a name for your agent. - Set a strong owner password. It is the only thing between the internet and your agent. The installer hashes it on your computer and stores only the hash in Cloudflare.
- Copy the web address it prints. It ends in
pages.dev. If you see “did not pass its health checks yet”, wait a few minutes and run the same command again: it picks up where it stopped without making duplicates. - Keep the
talorysfolder it creates. It holds no passwords, and you run updates and password resets from inside it, starting withnpx create-talorys@latest updatewhenever a new version lands. - Sign in and check the timezone first. Open the address, enter your password, and check
Settings → General → Timezonebefore you set any reminder, because every reminder runs on that clock.
Lock it down
Your pages.dev address is public, and the Talorys security notes assume anyone on the internet can reach it, so your password is the lock. The agent itself runs with no public address of its own and only answers through your website.
- Keep the address to yourself. Anyone who has it sees your sign-in page.
- Guessing is slowed down. Five wrong passwords from one connection lock it out for 15 minutes, and 25 wrong tries in total lock every sign-in for that window.
- Check your devices.
Settings → Securitylists every signed-in session. Sessions end after 30 days, or 14 days unused, and you can sign out the others from there. - Lost a phone or the password? From your
talorysfolder,npx create-talorys@latest reset-passwordsets a new password and signs out every device. - Deleting needs your click. The agent can only propose deleting a task, note, memory or reminder; nothing goes until you press the approve button.
- Cap the AI.
Settings → AIsets daily limits on AI requests and scheduled AI runs, so a runaway routine cannot use the day up. - Know what Cloudflare sees. Your messages and the memories picked for them go through Workers AI. Cloudflare’s data page says it does not train models on them without your consent; keep passwords and card numbers out of memory all the same.
Brief it on day one
Out of the box, Talorys picks which memories to show the model by matching words in your message. One early tester saved “I’m a vegetarian”, asked for dinner ideas, and got chicken and salmon, because the two shared no word.
Since 11 October there is an optional fix: Settings → AI → Semantic memory recall finds memories by meaning as well as words. It is off by default, and each memory it reads uses a little of your daily AI allowance.
The code, as of 12 October, adds two more limits: only a few recent preference memories are always included, and the agent saves at most three memories per reply.
Paste this briefing as your first message and it works around all three. It interviews you in eight short rounds, shows you each memory before saving it, tags it with the words you are likely to type later, and proposes reminders for your week before creating any.
Before you paste the briefing, raise Settings → AI → Max context tokens to around 12,000, because the default keeps only about 6,000 tokens of chat and the briefing would drop out of view by the middle rounds. Each reply then uses a little more of your daily allowance, so set it back after Round 8.
If you switch on semantic recall, the briefing still works; the extra words in each memory just help both methods.
You are my new personal assistant, and this is your first briefing. What you save today is all you will know about me tomorrow, so a vague memory is close to useless and a wrong one is worse than none. Interview me in short rounds, save only what I confirm, and never fill a gap with a guess.
ABOUT THIS BRIEFING (I fill this in; any line can say "not stated")
- What I mostly want you for: [e.g. "keeping on top of family admin, my freelance invoices and my running plan"]
- How long I have right now: [e.g. "20 minutes, so do rounds 1, 3, 4 and 7 today and the rest tomorrow", or "as long as it takes"]
- Topics to keep out of memory completely: [e.g. "my health, my finances, and clients by name", or "none"]
- My Cloudflare plan: [e.g. "Free plan, so keep AI routines to a minimum", or "not sure"]
HOW YOUR MEMORY WORKS (read this before saving anything)
- You only find a memory later when my message shares a word with it. "Owner is vegetarian" will not come up when I ask for "dinner ideas". So write every memory as one short line in the third person, then add the everyday words I am likely to type when it matters. Use four to eight specific words per memory and avoid common ones such as time, plan or day, which would match almost every message. Example: "Owner is vegetarian, eats no meat or fish. Applies to: food, cook, dinner, lunch, recipes, restaurants, groceries, meals."
- Only a few of my most recent preference memories are always in front of you. Save my standing rules in the "preference" category, four at most, and file everything else under the category that fits: fact, goal, project, habit or person.
- You can save at most three memories in one reply, so we work in rounds.
HOW EACH ROUND WORKS
1. Ask that round's questions in one short message, then wait.
2. When I answer, show me the exact lines you plan to save, each with its category and its "Applies to" words, and wait for "yes" or my corrections.
3. Save them, confirm what the tool saved, and end the reply with "Next: Round N, [name]" so we both keep our place.
4. If a round needs more than three memories, save three, then save the rest in your next reply before moving to the next round.
THE ROUNDS
Round 1, About me: the name I like to be called; my town and country; my timezone; my work and usual working hours; who I live with or look after. If the timezone I give differs from the current time you were given, tell me to fix it in the app's settings before we set any reminder.
Round 2, My people: up to three people who matter, each with how they relate to me and one thing worth remembering, such as a birthday or how they like to be contacted.
Round 3, My week: the things I do on repeat, such as bills, bins, a weekly report, school runs or training. For each one: what it is, when it happens, and how much notice I want.
Round 4, Reminders: turn Round 3 into a numbered list of proposed reminders. For each: the exact text, when it runs, one-off or repeating, and whether it needs AI. Prefer plain reminders and task digests, which use no AI, over AI routines, which use my daily allowance. Create nothing until I say yes, and no more than two repeating ones per reply.
Round 5, Projects and goals: up to three things I am working towards, each with the next step and any deadline. Offer to add each next step as a task.
Round 6, How I like answers: length, tone, language, format, and anything that annoys me in an answer.
Round 7, Never do: things you must never do or suggest. Examples: "never save anything about my health unless I say remember", "never set a reminder without reading it back first". Rounds 6 and 7 together make no more than four preference memories, so merge where you can.
Round 8, Final check: see the checklist at the end.
IF THIS HAPPENS, DO THIS
- If I say "skip" or leave a question out, save nothing for it and move on.
- If an answer is vague ("sometime next week"), ask one follow-up with options ("Monday at 9:00 or Friday at 17:00?").
- If I share a password, a bank or card number, or an ID number, do not save it, and tell me it does not belong in memory.
- If an answer falls under a topic I asked you to keep out of memory, do not save it, and say so in one line.
- If something I say conflicts with a memory you already have, show me both and ask which is right, then update the old memory instead of adding a second one.
- If a tool fails or you reach a limit, tell me exactly what was not saved. Never say something is saved unless the tool succeeded.
- If you get a message that my daily AI allowance is used up, stop and tell me which round to resume from.
- If I paste this briefing again later, search your memories for each round's topic, tell me what you found, then carry on from the first round with gaps.
FINAL CHECK (Round 8)
You cannot list every memory at once, so search for what we saved in this briefing, list my tasks and reminders, and report in this reply; make any fixes in your next reply. Grade your own work before you show me:
- Every memory is one line, in the third person, in the right category, with "Applies to" words.
- No more than four preference memories hold standing rules.
- Every reminder shows its text and its next run time in my timezone.
- Nothing I asked you to keep out was saved.
Then give me: what you saved, what you chose not to save and why, the one memory you are least sure of, and three test questions I can ask you tomorrow to check you remember, each using words from an "Applies to" list (e.g. "What should I cook for dinner?"). Finally, remind me to open the Memory page to see everything you hold.
Start with Round 1 now.
What a good saved memory looks like
- Fact: Owner lives in Denver, USA, timezone America/Denver. Applies to: Denver, weather, events, travel, timezone.
- Preference (standing rule): Never set a reminder without reading back its text and time first. Applies to: reminder, remind, schedule, alarm.
- Reminder: Every Thursday at 19:00, “Bins out tonight”. Plain reminder, no AI.
If it still loses its place, paste the briefing again and it picks up from the first gap.
The honest bit
- It is brand new. The repository was created on 10 October, the installer is at version 0.1.5, and new contributors are adding features almost daily, so expect fixes and changes for a while.
- You are the admin. There is no support desk. If an update breaks something or Cloudflare changes its limits, you fix it, or wait for the project to.
- It still runs on Cloudflare. Most of the Hacker News thread argued about the word “self-hosted”. Your data sits in your own account with no developer in the middle, but it lives on Cloudflare’s servers under Cloudflare’s terms.
- We have not installed it or run the briefing. Everything here comes from the Talorys README, security notes and code, and Cloudflare’s pages, all read on 12 October 2026.
Delete it when you are done
The installer has no uninstall command, so you remove the two pieces it made in Cloudflare yourself. Their names are in the talorys.json file in your talorys folder, or shown by npx create-talorys@latest status.
- Download a backup first.
Settings → Privacy → Download backupsaves your chats, memories, tasks, notes and reminders as one file, in case you want them later. - Delete the website. In the Cloudflare dashboard, open
Workers & Pages, select the project ending in-web, thenSettings → Delete project. Delete it before the agent, because the website is wired to it. - Delete the agent and its data. From your
talorysfolder, runnpx wrangler delete --name talorys-<id>-agentwith the name from your file, and approve the Cloudflare sign-in if it asks. Cloudflare describes this command as deleting the Worker “and all associated Cloudflare developer platform resources”. - Check, then tidy up. Confirm both are gone from
Workers & Pages, then delete thetalorysfolder on your computer.
Try it tonight
Install it, paste the briefing, and ask it for one test reminder at 8:00 tomorrow. In the morning, open the app to see whether it arrived on time, then ask one of the test questions; if both work, it has earned a place in your week.
Before you give any agent more access, run through what it can touch and when it should ask first.
A few quick questions
Do I need an OpenAI or Anthropic API key?
No. You can also pick a different Workers AI model in Settings → AI, but some newer models on Cloudflare’s pricing page need a paid billing method.
Can I run it on my own computer instead?
Only for testing. The README’s local mode (npm run dev) swaps the AI for a mock that gives set answers, so no real AI runs and nothing reaches Cloudflare. For a working agent you deploy it to your account.
Will reminders reach my phone?
They land in the notification centre inside the app, so open your pages.dev address on your phone and sign in there too. The README does not mention email or push notifications.