jamescliffordspratt163 downloadsHabit tracker with streaks, charts, and statistics. Log daily habits from a carousel dashboard or sidebar panel, pause habits without losing streaks, and export printable PDF reports.
Build streaks. Log daily habits. Watch your progress with charts, heatmaps, and printable reports — all stored as plain Markdown notes in your vault.

habits code block, with satisfying completion animations2026-07-01.md shows that day's habits automaticallyHabits is available in the community plugin browser: open Settings → Community plugins → Browse, search for "Habits", then install and enable. (BRAT and manual installation from the release assets work too.)
Run the command Habits: Create habit and define your first habit.
Run Habits: Insert dashboard in any note (your homepage, or your daily-note template) to place the tracker:
```habits
```
Log your progress from the dashboard, or open the sidebar panel (ribbon icon or Habits: Open panel) to tick things off as you go.

Each habit is a single Markdown note in a folder of your choice (default: Habits). The frontmatter defines the habit and stores one value per day — readable, portable, and future-proof:
---
habit: true
type: repetition
target: 8
unit: cups
icon: droplet
color: "#7c6cff"
startDate: 2026-07-01
weeklyTarget: 5
records:
2026-07-01: 5
comments:
2026-07-01: Managed all eight glasses before lunch!
pauses:
- start: 2026-06-10
end: 2026-06-14
---
No databases, no external services — delete the plugin and your history is still right there in your notes.
Every habit has a frequency, chosen when you create or edit it:
Weekly and monthly cards surface only on their due date in both the dashboard and the sidebar panel, so your list stays focused on what's actually due. Their streaks and stats count periods, not days: a weekly habit's streak is the number of consecutive weeks you completed it, and a monthly habit's is consecutive months. Days a habit isn't due don't count against its completion rate. To log a due date you missed, use the dashboard's date arrows to step back to it.
The charts on a weekly or monthly habit's page adapt too: instead of a 30-day grid, the activity chart plots each recent due date (labelled with the date it lands on), and a rolling completion-rate line shows the trend across periods. The summary tiles relabel accordingly — "Weeks completed" or "Months completed" rather than "Days completed".
Cards for each habit sit in a swipeable carousel. Completing a habit plays a celebration animation and the card glides to the back of the queue, keeping what's left front and centre. Click a card's name to open its note; right-click (or long-press on mobile) for editing, pausing, stopping, or removing.
Embedded in a daily note? The dashboard follows that note's date, so browsing yesterday's note shows yesterday's habits. The dashboard also live-updates whenever your habit notes or settings change — even from another pane or device sync.
Every card also has a comment flap along its bottom edge. Click it and the card flips over to a per-day comment box — perfect for noting why a habit was missed (or smashed). Days with a comment show an accent-tinted speech bubble, and comments follow the selected date, so each day keeps its own note.
Open the panel from the ribbon icon or the Open panel command to log today's habits from anywhere: one compact row per habit with tap-to-check toggles, steppers, and slim progress bars, plus a running done/total count for the day.

The chart button opens the stats view: completion summary tiles, streaks, perfect days, goal progress, and a heatmap per habit over the last week or month (rolling or calendar).

From there, the download button opens the PDF export dialog:

Every habit note can chart its own history with a habit-metrics code block (new habit notes include one automatically):
```habit-metrics
```
Streak tiles, a 30-day activity chart with target line, and a 12-week completion trend — all in your theme's colours.
The block also works in any note: name a habit and its metrics render right there — perfect for journal entries, weekly reviews, or project pages. As you type after habit:, your habits are suggested automatically.
```habit-metrics
habit: Journal
```
| Command | Action |
|---|---|
| Create habit | Open the new-habit dialog |
| Insert dashboard | Insert a habits code block at the cursor |
| Insert habit metrics | Insert a habit-metrics code block at the cursor |
| Open panel | Open the sidebar quick-log panel |
| Setting | Default | Description |
|---|---|---|
| Habits folder | Habits |
Where habit notes live (with folder autocomplete) |
| Follow daily note date | On | Dashboards in daily notes open on that note's date |
| Cards per view | 4 | Carousel cards shown at once on wide screens (1–4) |
| Cards per view on mobile | 2 | Carousel cards on phone-sized screens (1–2) |
| Comments on cards | On | Show the comment flap on dashboard cards |
npm install # install dependencies
npm run dev # build and watch during development
npm run build # type-check and produce a production build
npm run lint # check against the official Obsidian plugin guidelines
npm run release # bump patch version, tag, and push (CI drafts the release)