Routine Streaks

approved

by Taehyun A. Kim

Track routine streaks from tagged Daily Note tasks. - This plugin has not been manually reviewed by Obsidian staff.

2 stars300 downloadsUpdated 1mo agoMIT

Routine Streaks banner

Version 1.1.0 MIT license Obsidian plugin Daily Notes source of truth Scriptable widgets

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

Routine Streaks dashboard embedded in a Daily Note

Highlights

✅ Markdown-first streaksCompletion history comes from tagged Daily Note checkboxes, not a hidden database.
🗓️ Flexible schedulesUse selected weekdays, weekly targets, repeating intervals, or a custom day start.
🧊 Freeze daysPause a routine for breaks, travel, sick days, or planned rest.
🧩 Routine templatesDefine template items once, then insert routine tasks from the command palette.
📊 Widgets everywhereView progress in the sidebar, inside notes, and on iOS/iPadOS through Scriptable.
🐾 Pixel pet statusPick a dog, cat, or parrot that reacts to today's routine progress.

Screenshots

Routine Management

Collapsed routine list in settings

Expanded routine editor with schedule and template items

Pixel Pets

PetCompleteNeeds attention
DogHappy dog pixel petDog pixel pet that needs attention
CatHappy cat pixel petCat pixel pet that needs attention
ParrotHappy parrot pixel petParrot pixel pet that needs attention

How It Works

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:

  • Routine definitions and display settings are stored in plugin data.
  • Streak cache is stored in plugin data and can be rebuilt.
  • Completion history lives in Daily Note task checkboxes.

Usage

  1. Enable the plugin in Obsidian.
  2. Open Settings → Community plugins → Routine Streaks.
  3. Configure your Daily Note folder, date format, and day start time if needed.
  4. Create or edit routines, tags, schedules, template items, and freeze days.
  5. Open any Markdown note and place the cursor where you want routine tasks.
  6. Run Routine Streaks: Insert routine template from the command palette.
  7. Check off the tagged routine tasks in your Daily Note.
  8. Open the sidebar widget, embed a markdown widget, or run Routine Streaks: Recalculate streaks to refresh progress.

Routine Tags

Each routine has a tag. New installs start without sample routines, so you can add routines such as:

  • #routine/journal
  • #routine/vitamins
  • #routine/reading

Markdown Widgets

You 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.

Markdown Widget Options

OptionDescription
titleOptional heading shown above the widget. Leave it blank or omit it to hide the heading.
subtitleOptional smaller text below the title.
widgetsA list of widget blocks to render in this note.

Widget Types

TypeWhat it shows
overviewBest current streak, today's completion count, and the selected pixel pet.
petA large pixel pet that reacts to today's routine progress.
routine_cardsA card grid for enabled routines, including streaks and today's task progress.
today_itemsToday's tagged checklist items grouped by routine.
routine_focusOne 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_focus
  • focus
  • routine

Supported aliases:

  • routine_cards, cards, routines
  • today_items, tasks, items
  • pet, animal, pixel_pet, pet_card

Scriptable Widgets

Routine 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 Scriptable widgets on an iPhone home screen

Scriptable widget generator settings

Setup

  1. In Obsidian, open Settings → Routine Streaks → Scriptable widget.
  2. Choose the Scriptable display you want.
  3. Choose the Scriptable size.
  4. Click Export now to create or refresh the data file.
  5. Click Generate code and copy the generated script.
  6. In Scriptable, create a new script and paste the code.
  7. In Scriptable, open Settings → File Bookmarks.
  8. Create a file bookmark named exactly:
Routine Streaks Data
  1. Point that bookmark to the exported vault file, usually:
Routine Streaks/data.json
  1. Add the Scriptable script as an iOS/iPadOS widget.

Scriptable Display Types

DisplayDescription
DashboardA larger dashboard with overview, pet, and routine progress.
OverviewBest streak, today's progress, and pet status.
PetA focused pixel pet status widget.
Routine cardsRoutine progress cards.
Today itemsToday's task status for selected routines.
Focused routineOne selected routine's streak and status.

Scriptable Sizes

Available sizes depend on the selected display:

DisplaySizes
DashboardLarge
OverviewMedium, Large
PetSmall, Medium, Large
Routine cardsMedium, Large
Today itemsSmall, Medium, Large
Focused routineSmall, 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.

Refreshing Data

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.

Privacy

Routine Streaks works locally in your vault. It does not collect telemetry and does not send your notes to an external service.

License

Routine Streaks is released under the MIT license.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.