Releases: JamesCliffordSpratt/obsidian-habits
Release list
1.3.0
New: Break bad habits (experimental)
You can now track habits you're trying to reduce or quit — not just ones you're building. Requested in #1.
Enable it under Settings → Habits → Experimental → Break bad habits, then create a habit and set Goal to Stay under a limit:
- Binary — avoid something entirely. The card shows Clean / Slipped boxes; days start clean, and a tap records a slip (or takes it back).
- Repetition — stay at or under a daily count (e.g. at most 2 coffees). A limit of 0 means none at all.
- Timed — stay under a daily number of minutes (e.g. at most 2 hours of gaming). Lower the limit over time as you cut down.
How it scores
- Days you don't log count as staying within your limit — no daily bookkeeping required.
- Streaks count consecutive days within the limit; going over breaks the streak.
- A perfect day now means every build habit completed and every limit respected. A day with only break habits, all within limit, also counts.
- Stats, heatmaps, charts and exports all understand limits: over-limit days show red, and days before a habit existed are neutral, not failures.
Why experimental?
The toggle is off by default while the design settles. It only gates creating limit habits — anything you make with it keeps working and keeps its meaning even if you switch the toggle off later, so there's no lock-in and nothing to migrate when the feature graduates.
Existing habits are completely unaffected: no data changes, no behavior changes.
Available in English, Deutsch, Español, Français and 简体中文.
Thanks to @lovelindhoni for the feature request (#1) — feedback on the experimental design is very welcome there.
1.2.0
1.2.0 — Weekly & monthly habits
Habits can now run on a weekly or monthly schedule, not just daily. Pick a frequency when you create or edit a habit, and the plugin takes care of the rest.
New
- Frequency picker — every habit can be Daily, Weekly, or Monthly. Weekly habits are due on a weekday you choose; monthly habits on a day of the month you choose.
- Cards appear only when due — weekly and monthly habits show up in the dashboard and sidebar panel on their due date only, so your list stays focused on what actually needs doing today. A gentle "nothing due" message appears on empty days.
- Smart month-end handling — for monthly habits, a day that a month doesn't have rolls to that month's last day. Set the 31st and February fires on the 28th (29th in leap years), April on the 30th, and so on — you never skip a month.
Streaks & stats
- Streaks now count periods, not days: a weekly habit's streak is consecutive weeks completed, a monthly habit's is consecutive months.
- Completion rates and perfect days ignore the days a habit isn't due, so off-days no longer drag your numbers down.
- Habit pages adapt their charts: the activity chart plots each recent due date (labelled with the date it falls on) and a rolling completion-rate trend, with tiles relabelled to "Weeks completed" / "Months completed".
Notes
- Fully backward compatible — existing habits are treated as Daily with no changes.
- To log a weekly or monthly due date you missed, step back to it with the dashboard's date arrows.
1.1.1
Habits 1.1.0
Two new features, a safer dependency chain, and a stack of polish.
✨ New
- 💬 Per-day comments — every dashboard card now has a comment flap along its bottom edge. Click it and the card flips over (with a 3D animation) to a comment box for the selected day — ideal for noting why a habit was missed or what made a great day work. Days with a comment show an accent-tinted speech bubble, comments live in your habit note's frontmatter alongside your records, and they can be included in PDF reports via a new export toggle. Can be disabled in settings.
- 🌍 Localization — Habits is now available in English, Spanish, French, German, and Simplified Chinese, following your Obsidian language setting. Everything is translated: dashboard, sidebar panel, stats, export dialog, settings, menus, and notices.
🔒 Security & dependencies
- Upgraded jsPDF to v4, resolving all published advisories against jspdf and dompurify (including GHSA-w532-jxjh-hjhj) —
npm auditis clean - Removed jsPDF's unused dynamic
<script>injection from the bundle — itspdfobjectnewwindow/pdfjsnewwindowoutput modes (which this plugin never uses; PDF export only ever callsoutput("arraybuffer")) created a<script>element to load code from a CDN. A build step now strips that capability frommain.jsentirely, clearing the community scorecard's dynamic-code-execution flag - Replaced the deprecated
builtin-modulespackage with Node's built-innode:moduleAPI - Release assets (
main.js,manifest.json,styles.css) are now published with GitHub artifact attestations, so you can cryptographically verify they were built from this repository
🐛 Fixes & polish
- Long habit names stay on a single line and truncate with a proper ellipsis; tooltips always show the full name
- Tighter card title spacing so more of each name fits — "Drink Water" no longer truncates at four cards per view
- The comment indicator on the card flap now correctly shows its accent tint
- Assorted card layout refinements
📦 Installation
Habits is available in the Obsidian community plugin browser: open Settings → Community plugins → Browse, search for "Habits", then install and enable. Already using Habits? This update will appear under Settings → Community plugins → Check for updates.
Found a bug or have an idea? Open an issue.
1.1.0
Habits 1.1.0
Two new features, a safer dependency chain, and a stack of polish.
✨ New
- 💬 Per-day comments — every dashboard card now has a comment flap along its bottom edge. Click it and the card flips over (with a 3D animation) to a comment box for the selected day — ideal for noting why a habit was missed or what made a great day work. Days with a comment show an accent-tinted speech bubble, comments live in your habit note's frontmatter alongside your records, and they can be included in PDF reports via a new export toggle. Can be disabled in settings.
- 🌍 Localization — Habits is now available in English, Spanish, French, German, and Simplified Chinese, following your Obsidian language setting. Everything is translated: dashboard, sidebar panel, stats, export dialog, settings, menus, and notices.
🔒 Security & dependencies
- Upgraded jsPDF to v4, resolving all published advisories against jspdf and dompurify (including GHSA-w532-jxjh-hjhj) —
npm auditis clean - Replaced the deprecated
builtin-modulespackage with Node's built-innode:moduleAPI - Release assets (
main.js,manifest.json,styles.css) are now published with GitHub artifact attestations, so you can cryptographically verify they were built from this repository
🐛 Fixes & polish
- Long habit names stay on a single line and truncate with a proper ellipsis; tooltips always show the full name
- Tighter card title spacing so more of each name fits — "Drink Water" no longer truncates at four cards per view
- The comment indicator on the card flap now correctly shows its accent tint
- Assorted card layout refinements
📦 Installation
Habits is available in the Obsidian community plugin browser: open Settings → Community plugins → Browse, search for "Habits", then install and enable. Already using Habits? This update will appear under Settings → Community plugins → Check for updates.
Found a bug or have an idea? Open an issue.
1.0.0
Habits 1.0.0 — first official release 🎉
A habit tracker for Obsidian: build streaks, log daily habits, and watch your progress — with every habit stored as a plain Markdown note in your vault.
✨ Highlights
- Carousel dashboard — add a
```habits```code block to any note and log your day. Completed cards celebrate with an animation and glide to the back of the queue. - Three habit types — done/not-done, counted (8 cups of water), and timed (30 minutes, with +1/+5/+10 quick buttons).
- Sidebar quick-log panel — tick off today's habits from anywhere, designed for narrow panes.
- Streaks & statistics — current and best streaks, completion rates, perfect days, weekly/monthly goals, and per-habit heatmaps.
- Charts on every habit page — a
```habit-metrics```block renders 30-day activity and 12-week trend charts in your theme's colours. - Printable PDF reports — choose your metrics, date range, and layout with a live A4 preview; exports save straight into your vault.
- Pause without penalty — ill or travelling? Paused days never break streaks or drag down your stats. Stopped habits keep their full history.
- Daily-note aware — a dashboard inside
2026-07-01.mdautomatically shows that day's habits. - Mobile ready — responsive cards, long-press context menus, and a configurable mobile layout.
📦 Installation
Until Habits is available in the community plugin browser, install manually: download main.js, manifest.json, and styles.css from this release into <your vault>/.obsidian/plugins/habits/, then enable Habits in Settings → Community plugins. (Or use BRAT with this repo.)
🐛 Feedback
Found a bug or have an idea? Open an issue — feedback is very welcome.