Fanad

Get it out of your head.
The one rule: make a statement → it’s filed as a task. Ask a question → it’s answered. The / prefix is always optional — it just escapes an open question. Not a chatbot: one thought per line — a whole paragraph files as a single task.

⚡ Quickstart

clean the guttersany thought → saved verbatim as a task
… by friday p1deadline + priority parsed out for you
… on jun 30 3pmdeadline and a reminder at that time
/today call mompin it to end of today
paste a linkgrabs the page title → a titled, clickable task
done 3act by the № on the last listing
cpop the tappable command menu
A photo with no caption parks in your notes inbox. Numbers always mean the last list you saw — never IDs.

✅ Tasks

tasks · tasks todaylist (or counts → drill in) · next/prev pages
start 2 · done 2work one at a time · finish (or done 1 2 3)
unstart · /snoozedun-start without finishing · see snoozed + unsnooze 1
undotake back the last thing Fanad did (capture, done, eat, timer…)
step rinse the panadd a step to the task you’re on · unstep 2
guessAI breaks the started task into a checklist
/drop 1 · sleepinglet one go · idle 21 days auto-sleeps · revive 1
/view 1open a task’s full detail + steps and edit steps, without starting it (rows show 👁 /view_N)
/cal 1 · /pic 1calendar .ics for a dated task · a picture card
template 3 weeklysave task 3 as “weekly” · template weekly reloads it

💡 Coach & Recall

whatdosuggest a task for your mood — say yes / smaller / not today
/summary this weekwhat happened lately
/recall spare keysearch everything you’ve told it
mood 🙂tell it how you feel (an emoji alone works)
lock work · /unlockfocus every capture into one category
wake 8:30daily check-in · wakelist · wake off 1

📝 Notes optin notes

note buy milkinto the inbox — not the task list
/notesread the inbox
/promote 1note № 1 becomes a task
forget 1delete a listed note

🗂 Lists optin lists

lists · /list grocerieshub · create / open a list
sub 2 · sub 2 eggsdescend into item 2 · quick-add a child
any linewhile a list is open, it’s added as an item
out · top · del 3 · exitnavigate, prune, leave

📈 Metrics optin metrics

metric add weight lbsdefine what to track
track weight 182log a value · tally counts +1s
chart weight 30da graph over a range
metrics · undooverview · take back the last entry (undo is app-wide)

🧩 Modules & Help

moduleswhat’s on/off, tap to toggle · optin/optout <name>
help · guide liststopic hub · one topic walkthrough
commands · /methe full command list · what it knows about you
h how do timers workask the manual anything
vouch @friendinvite someone onto your server

⌨ Shortcuts

n note t task d done k drop u undo s step r recall g guide x today j journal h manual w whatdo c menu
A letter + a space, e.g. n buy milk. Bare w u j h work alone.

Fanad

The opt-in modules.
Page 2 · 3

🍽 Diet optin diet

eat 4oz chicken breastlog it — unknown food? one AI guess, you confirm once
eat 8oz chicken, half a pepper, 5 mushroomsa comma list = a one-off plate; each amount binds to its own item, logged as one entry
eat whatever [day]a cheat/off day — tinted on the graph, skipped in your average; a date retro-marks (yesterday, tuesday, 7/20); add off to undo
foods · food add 7up 12your canonical foods (last number = calories)
recipe new chilibuild a recipe conversationally · recipes
weight 182 · target 1800weigh-in graph · daily calorie goal

💊 Medication optin medication

med add amlodipine 5mgadd a med (dose is just a note — never guessed) · med list
med amlodipinelog a dose taken today (took two? log twice) · undo takes back the last
med template morning = amlodipine, metformingroup a time of day — I offer a daily reminder
med morning · med alllog a whole template · log every scheduled med not yet taken
meds · med chart amlodipinetoday’s ☑/☐ by template · adherence trend
med template morning remind 8amset the daily reminder (remind off clears it)
A logger, not medical advice — it never suggests doses or drug info.

📔 Journal optin journal

journal new foodstart a trend journal (a pet’s works too)
entry · check 1 2open today · tick checklist items
j note had dairyadd a note to the day
journal week · journal trendsAI summaries & patterns over time

🧪 Batches optin batches

batch new sourdoughstart a run from your latest saved version
batch check 1 2 · batch log …tick steps · add a dated line
batch add/edit/rmtweak the run’s steps as you go
batch savegraduate the tweaks into a new version (auto-numbered)
batch done tangy, best yetclose the run with its outcome
batch reject sourdough #2drop a bad version · versions/history to review
Tweak each run, save the winners as versions — no reminders, no recurrence.

⏰ Timer optin timer

timer 12 min pastaone-shot ding (label optional)
timer · timer off 1what’s running · cancel one
A timer is a ding, not a task — nothing to clean up after.

Fanad

Modules & the web app.
Page 3 · 3

🏠 Home Assistant optin ha

ha turn off the kitchen lightanything after ha goes to HA’s own assistant
ha · ha testconnection & outputs status · ring every output now
ha cal 3push dated task 3 onto the house calendar (🏠 button on /cal too)
Your timers & reminders also ring the house — a voice satellite speaks them, a script can sound a siren, phones get a push. The owner pairs HA in Settings → Home Assistant. Dashboards: GET /api/ha/summary + a read-only token (Settings → Security) feeds HA sensors — counts only, ?titles=1 to opt content in. Recipes in the manual.

⚡ Speed Dial owner-managed

19 · dial 3a pad-holder fires that number’s command · 0/pad shows the pad
sd @sam 1 = turn off the lightsowner: set number 1 (label it with Label | command)
sd @sam limit onowner: lock @sam to the pad only · off to unlock
sd @sam test 1owner: test-fire · sd @sam views a pad · sd lists all
Give someone a handful of Home Assistant buttons without the run of the house — they send a digit, only your predefined command runs. In Settings → Access (expand an account) you can also add a second OFF command so one number toggles on↔off, and Generate a no-login remote-control link (1/7/30-day, revocable) to text a guest with no Telegram. For family who never use Telegram, add a local account (a name, not an @handle): pad-only, never reaches the bot, and its remote link may be minted never-expiring — the link is their account. Needs the HA connection (Channels tab).

📓 Notebooks optin notebook

notebook workopen (or create) a separate private space
notebooklist yours · notebook main heads home
notebook retire workhide one (kept) · notebook recover work brings it back
Each notebook has its own tasks, notes & lists.

🌐 The Web App — for more control

/webtype it in Telegram or Slack → a one-time sign-in link that opens Fanad in your browser, already signed in as you. It works once and expires in minutes — run /web again anytime.
cmdtype it in any chat (web or a Telegram/Slack DM) → a ready-to-paste npx github:NTBooks/Fanad <server> <token> command for the terminal client (a full-screen chat in your console). It runs in any terminal with Node.js 24+; npx fetches the client from the repo, so no checkout is needed. Admin opt-in: the owner enables it under Settings → Security → Terminal client tokens. The token is shown once; choose how long it stays valid (30 / 90 days, 1 year, or never) when you mint it, and revoke anytime in the same place.
tokentype it in any chat → a warning + yes/no, then a read-only, never-expiring token scoped to your own account (shown once). It's the credential a Home Assistant dashboard needs: it can only read /api/ha/summary, never post or change anything. Any authorized user can self-mint; same enable switch as cmd. Copy it, then delete the message.
Everything on this sheet works in the web chat too, plus GUI views the phone can’t do: kanban board for tasks, notes wall, metric charts, lists outliner, templates, diet report with inline food-log edits, the 📔 journal, and 🧪 batches — toggle GUI/Text per view, pick a theme, and manage your modules in Settings.
On a wide screen the web chat also floats side panels in the empty space beside the column: a shortcut legend on the left (tap a letter to start that command) and a status panel on the right — your module toggles, the task you’re working on, upcoming timers & reminders, and today’s notebook / mood / date. Both follow your module opt-ins, and one » button hides the whole layer at once.