Talorys: Self‑Hosted Personal AI Agent on Cloudflare’s Free Tier
TL;DR
Talorys is an open‑source personal AI assistant that you can spin up in a single command inside your own Cloudflare account, and it runs entirely on Cloudflare’s free‑tier services without any external backend.
What Talorys Provides
- Private chat interface with streaming Markdown responses and tool‑activity indicators.
- Persistent memory stored in a SQLite‑backed Durable Object; only the most relevant facts are sent to the model each turn.
- Full CRUD for tasks, notes, and projects via UI or natural‑language commands (e.g., “Add a task to review my project tomorrow”).
- Automations: one‑time and recurring reminders, daily digests, and optional AI‑driven routines that run on Durable Object alarms.
- Single‑user design – no sign‑up flow, no teams; the installer creates an owner password stored as a Cloudflare secret.
- Graceful degradation – if Workers AI quota is exhausted, non‑AI features (tasks, notes, reminders) continue to work.
"One person. One Cloudflare account. One command. One personal AI agent." – project README
Architecture at a Glance
Browser ──HTTPS──▶ Cloudflare Pages (React UI + /api Pages Function)
│ service binding (private)
▼
Private Worker (Hono router)
│ getAgentByName("personal-agent")
▼
TalorysAgent – Cloudflare Agents SDK Durable Object
├─ SQLite: chats, memories, tasks, notes, automations, …
├─ Workers AI: @cf/zai-org/glm-4.7-flash (streaming + tool calls)
└─ Alarms: scheduled reminders & recurring jobs
- The browser only ever contacts the
*.pages.devsite. API calls are proxied to a private Worker via a service binding, so the Worker has no public URL. - Authentication and authorization are performed inside the Worker, not the frontend.
- Chat responses are streamed to the client using Server‑Sent Events (SSE).
Cloudflare Services Used (All Free‑Tier Friendly)
| Service | Role | Free‑Tier Availability |
|---|---|---|
| Cloudflare Pages | Hosts the React UI and the API Pages Function | ✅ |
| Cloudflare Workers | Private API Worker (no public endpoint) | ✅ |
| Durable Objects (SQLite) | Stores all user data and runs alarm‑based schedules | ✅ |
| Workers AI | Provides the LLM (@cf/zai-org/glm-4.7-flash) |
✅ (daily neuron allocation) |
Talorys deliberately avoids paid services such as R2, D1, KV, Vectorize, AI Search, or Workflows.
One‑Command Deployment
npx create-talorys@latest
The installer performs the following steps:
- Checks for Node 20.18+ and uses the bundled Wrangler CLI.
- Authenticates you with Cloudflare (opens the OAuth page if needed).
- Lets you pick an account and an agent name.
- Prompts for an owner password; the password is hashed locally with PBKDF2‑SHA256 and stored as a Cloudflare secret.
- Generates a 256‑bit session secret and unique resource names.
- Deploys the private Worker, creates the Durable Object namespace, stores secrets, and creates the Pages project with a service binding.
- Runs health checks (frontend, auth endpoint, storage) without invoking any AI inference.
- Prints the final
https://<name>.pages.devURL.
The installer writes a talorys/ directory containing talorys.json (metadata only) and the deployable artifacts. Re‑running the command resumes an interrupted install and never deletes existing data.
Non‑Interactive Mode
TALORYS_OWNER_PASSWORD=... \
npx create-talorys@latest --yes --account-id <ACCOUNT_ID>
(Requires CLOUDFLARE_API_TOKEN if you are not logged in via the OAuth flow.)
Permissions Required
If you use an API token instead of the OAuth flow, it must have:
- Account › Workers Scripts › Edit
- Account › Cloudflare Pages › Edit
- Account › Workers AI › Read
- Account › Account Settings › Read
- User › User Details › Read (optional, for displaying your email)
Data Residency & Privacy
All user data—conversations, memories, tasks, notes, projects, automations, and settings—resides in a single SQLite‑backed Durable Object inside your Cloudflare account. Talorys does not ship telemetry, analytics, or advertising code, and it never sends data to the project maintainer.
"Talorys has no telemetry, analytics, tracking or advertising code and sends nothing to its developers." – README
Cloudflare processes the data only to provide its platform services (including running the LLM inference). Review Cloudflare’s privacy policy and Workers AI terms for details.
Free‑Tier Limits & Cost Model
- Cloudflare’s free plan imposes account‑level quotas for requests, Durable Object usage, and a daily 10,000 neuron allocation for Workers AI.
- When the AI quota is exhausted, the UI displays a clear message and resumes after the daily reset; all non‑AI functionality remains operational.
- If you upgrade to a paid Cloudflare plan, any usage beyond the free allowances is billed by Cloudflare, not by Talorys.
- Built‑in guardrails (configurable under Settings → AI) let you cap:
- Max output tokens
- Max context tokens (older history is summarized)
- Max tool calls per request
- Max AI requests per day
- Max scheduled AI runs per day
Local Development Workflow
git clone https://github.com/rociiu/talorys.git
cd talorys
npm install
npm run dev
npm run dev starts:
- The agent Worker (
wrangler devon port 8787) - The Pages Function proxy (
wrangler pages devon port 8788) - The Vite UI at
http://localhost:5173
A deterministic mock AI provider is used, so no Cloudflare login is required for local testing. State persists in .wrangler/state.
Backup & Migration
- Export: Settings → Privacy → Download backup creates
talorys-backup.jsoncontaining all user‑generated data (conversations, memories, tasks, notes, projects, automations, settings). Credentials and session data are excluded. - Import: The UI validates the JSON and merges it transactionally; importing the same backup twice is safe.
Updating an Existing Deployment
From the talorys/ directory, run:
npx create-talorys@latest update
The command redeploys the latest Worker and frontend to the same resources. The Durable Object namespace is preserved, owner password and sessions survive, and schema migrations run automatically on first request.
Additional helper commands:
npx create-talorys@latest status– shows current deployment health.npx create-talorys@latest doctor– runs automated diagnostics.npx create-talorys@latest reset-password– replaces the owner password secret and signs out all devices.
Community Feedback & Critiques (HN Comments)
- Definition of “self‑hosted” – Several commenters argue that relying entirely on Cloudflare’s managed services is not true self‑hosting. One user notes, “There’s nothing self‑hosted about relying on Cloudflare for literally everything.”
- Free‑tier reliability – A user reports difficulty with Cloudflare’s free AI quota, stating they were unexpectedly billed for neuron usage and received no support.
- Performance concerns – Some users find Workers AI latency “very slow” for interactive chat, suggesting it’s better suited for background jobs.
- Potential for customization – One comment points out that swapping the AI endpoint for a local model server is straightforward, turning the project into a more traditional self‑hosted solution.
- Durable Objects praise – A commenter calls Durable Objects “the coolest thing” they’ve seen, highlighting the tight coupling of code and data.
- Security perception – Critics warn that marketing the product as “self‑hosted” may mislead users about the security implications of storing personal data on a third‑party platform.
When to Use Talorys
- You want a personal AI assistant without managing servers, databases, or Docker containers.
- You are comfortable keeping data in Cloudflare’s free tier and accept the daily AI neuron limit.
- You value single‑user privacy (no sign‑up, no third‑party telemetry) and are okay with Cloudflare as the underlying infrastructure.
- You prefer a single‑command install and a web UI that works on desktop and mobile.
Limitations & Open Questions
- True self‑hosting: The solution is bound to Cloudflare; moving it to on‑prem hardware would require replacing Workers, Durable Objects, and Workers AI.
- Scalability: Designed for a single user; multi‑user scenarios would need substantial architectural changes.
- Evaluation: As one commenter notes, there is little public benchmarking of memory recall accuracy or task‑completion rates.
- Latency: Workers AI may introduce noticeable latency for real‑time chat, which could affect user experience.
Bottom Line
Talorys demonstrates that a fully functional personal AI assistant can be built and deployed with no server management and zero cost on Cloudflare’s free tier, provided you accept the platform’s limits and the definition of “self‑hosted” as “hosted in your own Cloudflare account.” The project’s open‑source nature, simple installer, and use of Durable Objects make it an attractive starting point for hobbyists and privacy‑conscious users, while the community’s critiques highlight the need for clearer terminology and more robust performance guarantees.
Sources
Related
- Project
- Project
- Dispatch
- Dispatch
- Dispatch