Buffy models everything you want to change as activities: habits, tasks, and routines. This doc focuses on habits and routines—how to represent real life so the system can remind you, track history, and adapt without becoming noise.
Model one behavior = one activity
- Habit: A repeated behavior with a schedule (e.g. “drink water” daily, “evening walk” weekdays). One activity, one time window or interval, one history.
- Routine: A sequence of steps on a schedule (e.g. “morning startup: water, planning, stretch” between 7:30–8:00). One activity, multiple steps, one window, one reminder flow.
If you try to model “morning” as five separate habits in five places, you get five reminders and five places to update. Model it as one routine and you get one nudge, one completion flow, and one place to adjust.
Examples that work
One habit, one window
- “Drink water every morning” → One habit, e.g. “Drink water,” with a time window “weekdays 7:00–8:00.” Buffy nudges once in that window; you reply done/snooze/skip. No need for three different “water” habits at three fixed times.
One routine, multiple steps
- “Morning startup: water, 10-min planning, stretch” → One routine with three steps and one window (e.g. “weekdays 7:30–8:00”). When the window opens, you get one nudge; you complete step by step. The core tracks partial completion and what’s left so the next nudge is relevant.
Habit + routine in the same day
- You can have a standalone habit (e.g. “evening walk” in its own window) and a routine (e.g. “morning startup”) in the same day. They’re separate activities in the same Activity model, so the daily briefing and reminders see both without conflict.
Anti-patterns (what to avoid)
- Too many tiny habits: One habit per “thing” (e.g. “water at 7:00,” “water at 12:00,” “water at 18:00” as three habits) can turn into reminder spam. Prefer one habit with a broader window or a routine that groups steps.
- Routine with no window: A routine with no time window is hard for the system to nudge you at the right time. Always attach a window (e.g. “weekdays 7:30–8:00”) or a clear “by when” so reminders make sense.
- Duplicate logic across tools: If you keep “real” habits in Buffy and a copy in another app, you’ll drift. Use one system (Buffy) and one channel (e.g. Telegram or ChatGPT) as the source of truth.
- Brittle fixed times: “Every day at 7:00” breaks when you travel or have an early call. Prefer “between 7:00 and 8:00” or “before 9:00” so the agent can nudge you when it fits.
Start small
- Pick one habit or one routine you care about.
- Give it a time window (not a single clock time).
- Run it for a week and check the daily briefing; then adjust the window or the steps.
For the full mental model (activities, behavior core, memory), see the blog post below.
If something goes wrong
- Reminders never fire? Ensure the habit or routine has a time window (e.g. "weekdays 7:30–8:00"). Without a window, Buffy won't know when to nudge you. In the Buffy dashboard, confirm the activity exists and has a schedule.
- Too many nudges or the wrong channel? Check your reminder channel in the Buffy dashboard (Account or Settings). Use one primary channel (e.g. Telegram) so reminders don't duplicate across surfaces.
Further reading
- Core concepts — activities, channels, memory, reminders.
- Quickstart with ChatGPT — first routine in minutes.
- Blog: Designing a Personal Behavior Agent for Habits, Tasks and Routines
- Blog: Habit Stacking With Routines