Self-hosted personal AI memory. You'll create a few free or low-cost accounts, then paste your keys into a short web wizard — no download, nothing to run — and a couple of minutes later you'll have your own private copy running in your own Cloudflare account.
| Piece | What it does | Typical cost |
|---|---|---|
| Cloudflare Worker | Hosts the app and runs every request | Free tier |
| Cloudflare KV | Stores your memory files (plain markdown) | Free tier |
| Anthropic Claude | The AI that answers from your memory | A few dollars to start; grows with your memory |
| Cloudflare AI | Speaks replies (Asteria + Orion) and turns your voice into text | Free — about 30 spoken replies a day |
| ElevenLabs (optional) | Two extra voices (Brittney + Callum) | Pay-as-you-go, a few dollars covers normal use |
You own everything. All your data stays in your Cloudflare account.
Want to attach photos to people? Photos use Cloudflare R2 object storage — free tier is 10 GB/month, which is more than enough. However, Cloudflare requires a credit card on file to activate R2, even at $0. You can skip this now and add it later in the Cloudflare dashboard under R2 Object Storage. If R2 isn't set up, the app works normally and photo features stay hidden.
sk-ant-Adds two extra voices: Brittney and Callum. Asteria and Orion are free for about 30 spoken replies a day; Brittney and Callum have no daily limit, because ElevenLabs bills per use. Skip this if 30 a day is plenty.
You'll receive a license key by email. There's nothing to download — the wizard runs entirely at whoszoo.app/setup.
Go to whoszoo.app/setup and paste your license key to begin. Then step through one screen per item you collected above: your Cloudflare API token, your first name, your Anthropic key, and (optionally) your ElevenLabs key. Each key has a Test this key button — it validates live before you can move on, so a typo shows up on the spot, not after deploy.
On the last step you'll see the Access Key screen — on a fresh install there's nothing to do here, a new Access Key is generated automatically. Tap Deploy and the wizard creates your KV storage, deploys your Worker, stores your API keys as secrets, and creates your 12 memory files — all inside your own Cloudflare account. Takes about a minute.
You're set up.
App URL: https://whoszoo-worker.xxx.workers.dev
Access Key: abc123xyz...
On future visits, just enter your passphrase. Chrome/Safari will offer to save it for Face ID or Touch ID after first login.
Recommended, not required. Once the app is running, your Cloudflare API token has no further job — the Worker reaches your memory through internal bindings wired up during setup, not through the Cloudflare API. Delete it and everything keeps working exactly as it does now.
/security. To delete it: Cloudflare → My Profile → API Tokens → find the token you made in Step 2 → Delete.You'll need to create a fresh token (same steps, same permissions, about a minute) the next time you run the setup wizard to update. Please don't skip updates to avoid this — running an old version is a bigger risk than briefly holding a token. Your memory, passphrase, and Access Key are untouched either way.
The app starts empty. Just talk to it. Tell it about someone you know:
I met Jamie Chen today. Product manager at Figma, been there 3 years. We met at the design conference.
The app proposes saving it to your memory; confirm and it's stored. Type /help in the chat any time to see all available commands.
At normal use (10-30 questions/day):
| Service | Estimated monthly cost |
|---|---|
| Anthropic (Claude) | A few dollars to start; grows with your memory |
| Cloudflare (including voice) | Free on Cloudflare's free plan — about 30 spoken replies a day in Asteria or Orion, then your device's own voice until midnight UTC. The free plan never bills you for it. |
| ElevenLabs (optional) | Pay-as-you-go — a few dollars covers normal use |
Cloudflare gives your account a free AI allowance every day, resetting at midnight UTC (evening in the Americas). Spoken replies in Asteria or Orion use almost all of it — about 30 replies a day. Hearing you is nearly free, and typing uses none.
| Voice input | Reply voice | What the allowance covers |
|---|---|---|
| Auto (Android, desktop) | Asteria or Orion | About 30 spoken replies a day |
| Whisper (and every iPhone) | Asteria or Orion | About 30 spoken replies a day |
| Auto | Brittney or Callum | No daily limit — ElevenLabs bills per use |
| Whisper (and every iPhone) | Brittney or Callum | Effectively no daily limit |
If the day's allowance runs out, replies still appear as text. On Android and desktop your phone or computer reads them in its own, more robotic voice; on iPhone they show as text only. Whisper voice input pauses until the reset, while Auto keeps working. Nothing is billed on Cloudflare's free plan. Want more than about 30 spoken replies a day? Add ElevenLabs credit (Step 4) and use Brittney or Callum — pay-as-you-go, no subscription.
Run /costs in the app any time to see your actual Anthropic spend. There's also a Daily spend cap in Settings — defaults to $1/day, so a runaway loop can't burn through your credits.
"Could not load memories" — Check your Worker URL (no trailing slash) and Access Key match what setup printed. Open /diagnostics in the app.
The wizard says your Cloudflare token didn't validate — Make sure your token has Workers Scripts: Edit and Workers KV Storage: Edit permissions. Try creating a new token with the Custom Token option (Step 2 above) rather than a built-in template.
Deleted your token after setup, as recommended, and now need to update? Create a fresh one first — same steps and permissions as Step 2. It takes about a minute, and you can delete it again once the update finishes.
The wizard says "Setup didn't finish" or a key won't test — Usually transient. The error screen has a Retry button, and it's safe to retry without losing anything you've already entered. A corporate VPN or firewall can occasionally block the check — try disconnecting and testing again.
Forgot your passphrase — On the login screen, tap "Forgot passphrase? Use access key to reset →". You'll need your Access Key.