Habits
Set up recurring habits with schedules, rules, completion types, streaks, versions, and reminders on macOS and iPhone.
A habit is a recurring commitment scored one day at a time. Each habit day is folded from the habit’s schedule and its append-only completion log, so the app can always answer the same questions on every device: is this day done, how much progress has been made, and what does a tap mean?
Habits can be grouped — for example “Morning routine” — and groups are shared across the vault. Open the group menu to create, rename, collapse, or delete a group.
| View | Where | What it shows |
|---|---|---|
| Day | macOS and iPhone | Today’s habits, plus date navigation and filters for active, upcoming, archived, ended, and all habits. |
| Week | macOS and iPhone | A compact week grid for a quick completion overview. |
| Calendar | macOS | Habit occurrences alongside tasks in the calendar, including timed reminders and moved occurrences. |
Use the D, W, and C keys on macOS to switch views, or the view buttons in the panel toolbar.
Choose New habit in the Habits panel. The editor is organised into a few sections:
- Name and appearance — name, icon, color, group, and whether the habit shows a checkbox or a progress circle.
- Schedule — when the habit occurs.
- Completion types — variants such as “Sick Day”.
- Rules — what completes the habit automatically.
- Reminders — when to notify you, and whether the occurrence appears on the calendar.
- One-off reminders — a single date, time, and message without changing the series.
A habit can occur:
- on specific weekdays and/or days of the month;
- as a weekly quota (“3 times per week”), optionally restricted to certain weekdays;
- as a monthly quota (“10 times this month”), optionally restricted to certain days.
You can ask for the habit to be completed more than once per day. A target of 1 draws a checkbox; a higher target draws a progress circle that counts taps.
The optional start and end dates create a lifecycle window. Outside that window the habit is shown as upcoming or ended and does not count toward streaks or completion rates.
Tap the checkbox or progress circle to complete the day. To do something else, open the habit’s completion menu:
- Skip day — record a deliberate skip.
- Uncomplete — hand the day back to the rules.
- Completion type — record a variant such as “Sick Day”, “Travel”, or “Emergency”.
| Type | How it completes |
|---|---|
| Simple | By hand only. A click completes the day. |
| Complex | Rules only. The rules engine owns the day; a click cannot complete it. |
| Smart | Rules and by hand. Rules can complete the day automatically, and a click runs the action the rules suggest — start a timer, log a value, or open a linked habit. |
A habit type is only behaviourally different when the habit has rules. A simple habit with no rules still works as a plain checklist item.
Completion types let you record why a day looked different without breaking the habit’s history. Each type has a name, an icon and color, and a streak effect:
| Streak effect | Result |
|---|---|
| Increment | The day counts toward the streak. |
| Maintain (pause) | The streak is preserved but does not grow. |
| Break | The streak ends. |
The first type is the undeletable Normal type. On macOS, additional types can have their own rules, so a “Sick Day” can apply automatically when the rules match. Per-type rules are a macOS feature; on iPhone you choose the completion type from the menu.
Rules are nested AND/OR groups. A group evaluates its children; a rule evaluates to a percentage between 0 and 1. This makes rules expressive without requiring a scripting language.
Supported rule kinds:
- a measure value reaches, stays below, or equals a target;
- a measure has a certain number of entries;
- a numeric measure’s daily sum reaches a target;
- a measure has entries inside a time window (any entry, or a duration);
- tracked time on a time-entry measure reaches a target;
- another habit was completed;
- the time of day is after a chosen time;
- the day of the week is one of a chosen set;
- every due habit is complete (“perfect day”).
Rules can be re-evaluated at scheduled times during the day — for example, at 09:00 and 18:00. This lets a rule-based habit catch up when new data arrives.
The habit detail view shows the current streak, the best streak, a one-year heatmap, and a four-week completion rate. History lists the completion log for the habit, including the source of each completion — a manual tap, a picked completion type, a skip, or an automatic rule.
The heatmap is a record, not a target: skipped and paused days are represented distinctly so a maintained streak does not look like a run of missed days.
A habit can have several reminders. Each reminder has a time, an optional message, and an enabled switch. An enabled reminder places the habit occurrence on the calendar and can raise a notification.
- On macOS, notifications are delivered by the OS while Fluks is running.
- On iPhone, reminders use the account’s push schedule, so they can arrive while the app is closed.
- A one-off reminder adds a single date and time without changing the habit’s schedule.
- Dragging a habit occurrence on the calendar can move that one occurrence or change the schedule from that date forward. Moving a single occurrence does not, by itself, create a notification.
A moved occurrence still belongs to its original habit day: completing it credits that day’s streak, even when it is displayed on another date.
Habits keep date-ranged versions of their schedule, type, completion types, rules, and reminders. When you edit a habit, Changes start from chooses the date the new version takes effect. Past days keep the version that was in effect for them.
On macOS, the versions viewer lets you:
- move a version’s start date;
- apply a version from today;
- delete a version;
- re-evaluate the last 30 days of rules.
- Use Tasks for one-off work and Sync and privacy to understand how habit completions move between devices.
- If a habit should read a measurement, create the measure first, then add a rule that points at it.