Rafiki
rafiki.gachichio.org · Learn more · Set up your own
A personal agent on Telegram. It acts as your chief of staff, adviser, coach and business adviser. It remembers everything you tell it, reminds and chases until you tap Done, sends a morning brief, reads your calendar, and asks before it acts. You run your own copy, with your own bot, your own AI key and your own data. Rafiki is Swahili for "friend".
Status: early (MVP 1). It works and one person uses it daily. Setup is still done from a terminal. The one-click installer and the guided five-step setup page are in progress (see the roadmap).
What it does today
- Reminders that chase. "Remind me in 10 minutes", "tomorrow at 9am". It sends the reminder, then chases every two hours, up to three times, until you tap Done.
- Memory that lasts. Every message is kept and searchable until you erase it. Each night it writes a summary and pulls out the facts worth keeping.
/memory and /preferences show and edit what it holds.
- Morning brief and Monday customer check, with a 👍 / 👎 under each so you can say what lands.
- Calendar (read-only). Connect Google Calendar and ask "what's on tomorrow?" or send
/agenda.
- Voice notes, photos, files, video, locations, contacts and polls, read by a model that accepts them. Size limits apply on the free hosting plan.
- Context import. Paste or upload an export from another assistant, upload your own skill files, or answer a short "Know me" interview.
- Your choice of models through OpenRouter, changed with
/model.
- You own your data.
/export sends it all as plain files. /forget removes one fact. /erase everything wipes the lot after a typed confirmation.
What Rafiki cannot do
This list is generated from src/limits.ts and is the same one /limits shows in the bot. It changes whenever a new ability ships.
It cannot act for you without your tap.
- Send, post, create or change anything in another app on its own. Without hands it only writes to your own Telegram chat. With hands (your own Zapier, /hands), each send, post, draft or change is shown to you first and happens only when you tap Do it.
- Delete anything in your apps, or make raw API calls, even where your Zapier could. Those actions are never offered to it.
- Move, spend or hold money. It logs spends you tell it about and adds fees from your own fee table. It has no access to M-PESA, cards or bank accounts.
- Buy, book, sign or submit anything: forms, waivers and payments are yours to complete.
- Change your calendar on its own. Calendars it reads are read-only; it can hand you an Add to calendar button or file, or, with hands, create an event after your tap.
- Browse the web, open apps or use your phone or computer. It reads a public link you send it (an article, an X post, a PDF), and nothing behind a login.
- Run code or change a repository by itself. /code hands a task you confirm to your own Claude Code routine, which works on its own branch.
It cannot see what you have not given it.
- Read your WhatsApp or SMS, notes you have not connected, or any email you have not connected. Obsidian, if you connect it, is searched read-only and never written to. Gmail, if you add it, is read-only: it sees unread mail in Primary and never sends, deletes or labels. Forwarded mail is read only from senders you allow.
- Turn text from outside into memory or settings. Mail, automations and links can only lead to a reminder or task suggestion; they never write facts, goals, money or settings.
- Read a calendar you switched off with /calendars, or a calendar link you removed.
- Keep passwords, card numbers or API keys. They are stripped before anything is stored or sent to an AI model.
It cannot keep your data against your wishes.
- Delete anything on its own. Only you can: /forget removes one fact, /erase everything wipes the lot, and /export gives you a copy first.
- Erase your Telegram chat history, or what Telegram, Cloudflare's short-lived database backups or an AI provider already hold. It tells you this before you erase.
It cannot overstep.
- Talk to anyone else. It answers only the Telegram account that claimed it, and strangers get no reply.
- Interrupt you more than your daily limit unprompted (3 unless you change it), or at all during your quiet hours. Reminders you set and your morning brief are not counted.
- Act while paused. Type /pause and it stops until you /resume.
- Keep thinking once the day's model budget is used (USD 1.00 by default, changeable with /cap). Reminders and logging still work.
It cannot handle big files yet.
- Voice notes over 400 KB, photos or PDFs over 600 KB, videos over 1.5 MB, or text files over 200 KB. These are limits of the free hosting plan, and it tells you when a file is too big. Telegram itself caps downloads at 20 MB.
It cannot be right every time.
- It can misread, mis-hear or misremember. Check anything you will act on. It is not a licensed financial, medical or legal adviser.
Install it yourself
Five steps, about 12 minutes the first time. You need a free Cloudflare account, a Telegram account, and an OpenRouter account with a little credit. Your bot, your AI key and your data stay yours: nothing passes through the author.
- Name it and create its bot. Open @BotFather, send
/newbot, choose the name you want to call your Rafiki and a username ending in bot, and copy the token it gives you.
- Get an AI key. At openrouter.ai/settings/keys create a key just for Rafiki and give it a credit limit.
- Install. Tap the button, sign in to Cloudflare, and paste the bot token, the AI key and a setup word you invent when it asks:
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗