Taehyun A. Kim151 downloadsTrack routine streaks from tagged Daily Note tasks.
Track routine streaks from plain Markdown checkboxes, then carry them to your iPhone home screen.
Daily Notes stay as the source of truth while Routine Streaks exports widget-ready data and generates Scriptable code for iOS/iPadOS.
Highlights · Screenshots · Usage · Markdown widgets · Scriptable widgets
| ✅ Markdown-first streaks | Completion history comes from tagged Daily Note checkboxes, not a hidden database. |
| 🗓️ Flexible schedules | Use selected weekdays, weekly targets, repeating intervals, or a custom day start. |
| 🧊 Freeze days | Pause a routine for breaks, travel, sick days, or planned rest. |
| 🧩 Routine templates | Define template items once, then insert routine tasks from the command palette. |
| 📊 Widgets everywhere | View progress in the sidebar, inside notes, and on iOS/iPadOS through Scriptable. |
| 🐾 Pixel pet status | Pick a dog, cat, or parrot that reacts to today's routine progress. |
| Pet | Complete | Needs attention |
|---|---|---|
| Dog | ![]() |
![]() |
| Cat | ![]() |
![]() |
| Parrot | ![]() |
![]() |
Routine Streaks treats your Daily Notes as the source of truth.
- [ ] Drink water #routine/morning
- [x] Open the journal #routine/morning
For each routine, the plugin scans Daily Notes for tasks with the routine tag. A routine counts as complete for a date when all matching tasks for that routine are checked. If you uncheck a task later, the next recalculation removes that completion from the streak cache.
What gets stored:
Each routine has a tag. New installs start without sample routines, so you can add routines such as:
#routine/journal#routine/vitamins#routine/readingYou can embed Routine Streaks widgets in any note with a routine-streaks-widget code block.
```routine-streaks-widget
title: My routine dashboard
subtitle: Today status
widgets:
- overview: Summary
- today_items: Checklist
- routine_cards: All routines
```
The widget reads your current plugin settings and streak cache. If you leave the code block empty, it uses the widget layout from the plugin settings.
| Option | Description |
|---|---|
title |
Optional heading shown above the widget. Leave it blank or omit it to hide the heading. |
subtitle |
Optional smaller text below the title. |
widgets |
A list of widget blocks to render in this note. |
| Type | What it shows |
|---|---|
overview |
Best current streak, today's completion count, and the selected pixel pet. |
pet |
A large pixel pet that reacts to today's routine progress. |
routine_cards |
A card grid for enabled routines, including streaks and today's task progress. |
today_items |
Today's tagged checklist items grouped by routine. |
routine_focus |
One selected routine with its current streak and status. |
You can set a title after ::
```routine-streaks-widget
widgets:
- overview: Summary
- pet: Buddy
- today_items: Today's checklist
```
For routine_focus, pass a routine id after ::
```routine-streaks-widget
widgets:
- routine_focus: morning
```
You can also use the pipe format when you want both a custom title and a routine id:
```routine-streaks-widget
widgets:
- routine_focus | Morning focus | morning
```
Supported routine focus keys:
routine_focusfocusroutineSupported aliases:
routine_cards, cards, routinestoday_items, tasks, itemspet, animal, pixel_pet, pet_cardRoutine Streaks can generate ready-to-paste Scriptable code for iOS/iPadOS widgets.
The Scriptable widget reads an exported data.json file from your vault. It does not scan your notes directly on iOS; Obsidian exports the current routine settings and recalculated streak cache, then Scriptable displays that exported data.
Routine Streaks Data
Routine Streaks/data.json
| Display | Description |
|---|---|
Dashboard |
A larger dashboard with overview, pet, and routine progress. |
Overview |
Best streak, today's progress, and pet status. |
Pet |
A focused pixel pet status widget. |
Routine cards |
Routine progress cards. |
Today items |
Today's task status for selected routines. |
Focused routine |
One selected routine's streak and status. |
Available sizes depend on the selected display:
| Display | Sizes |
|---|---|
Dashboard |
Large |
Overview |
Medium, Large |
Pet |
Small, Medium, Large |
Routine cards |
Medium, Large |
Today items |
Small, Medium, Large |
Focused routine |
Small, Medium, Large |
For Focused routine, choose which routine to show in Scriptable focused routine.
For Today items, choose which routine cards should appear. Small shows one routine. Medium and Large can show up to four routines.
Use Export now whenever you want to manually refresh the data used by Scriptable. Routine Streaks also exports data when plugin settings are saved or streaks are recalculated.
If the iOS widget looks stale, open Obsidian on the device that has the latest vault data, run Routine Streaks: Recalculate streaks, then export again.
Routine Streaks works locally in your vault. It does not collect telemetry and does not send your notes to an external service.
Routine Streaks is released under the MIT license.