Cultiva is an offline-first desktop habit tracker. Each habit you plant grows from a seed into a legacy tree — with plugins, calendar, themes, and zero cloud lock-in.
No subscriptions. No accounts. No telemetry. Just you and your garden.
Prefer the long story over individual release notes? Read Cultiva Progress — Maple → Rowan, English & Russian in one file.
→ Latest release (2.3.5 · Rowan)
| Platform | Artifact | Notes |
|---|---|---|
| Windows | Cultiva-Setup-2.3.5.exe |
NSIS installer — shortcuts, uninstall entry |
| Windows | Cultiva-Portable-2.3.5.exe |
No install required |
| macOS Intel | Cultiva-2.3.5-mac-x64.dmg |
Also .zip |
| macOS Apple Silicon | Cultiva-2.3.5-mac-arm64.dmg |
Also .zip |
| Linux | Cultiva-2.3.5-linux-x86_64.AppImage |
Single file, no root |
| Linux | Cultiva-2.3.5-linux-amd64.deb |
Debian / Ubuntu |
Release notes: 2.3.5 Rowan · 2.3.4 Rowan · 2.3.3 Rowan · 2.3.2 Rowan · 2.3.1 Rowan · 2.3.0 Rowan · 2.2.0 Rowan · 2.1.3 Rowan · 2.0.0 Rowan · 1.7.0 Linden · Full progress story
Upgrading: your garden is preserved. Export a backup under Settings → Storage before updating, just in case.
Plant a habit. Show up. Watch it grow.
Seed → Sprout → Sapling → Tree → Legacy (365+ days)
Each stage is a visual milestone. After 365 days, the habit becomes a Legacy tree — a permanent trophy in your garden.
| 2.3.5 glyph-s 2.8 | Vendored glyph-s 2.8.0; Glyph/Floke banner in Settings + landing |
| 2.3.4 glyph-s & integrity | Vendored glyph-s 2.7.2 (body in fast-path); fresh registry on plugin install; LF sha256; store copy (registry 3.6.3) |
| 2.3.3 PE2 tray & Radio | Multi-plugin tray merge; Radio 2.6 — 33 stations, ICY now-playing, live Neo |
| 2.3.2 hide & tray ° | Dev Mode actually hides; Weather °C in tray tooltip + menu |
| 2.3.1 Discord & Dev polish | Presence prefs, Dev Mode hide/anim bg, PE2 tray °, habit disable |
| 2.3.0 developer tools | Footer unlock, cultivaDev API, Weather Neo solar skies, green lint |
| 2.2.0 beds + settings | Horizontal beds, fixed footer, Focus/Storage IA, glyph-s 2.7, Discord activity presence |
| 2.1.3 store + search | Cultiva-styled plugin store, glyph search index, Radio player Neo |
| 2.1.2 garden beds | Drag-and-drop reorder + custom beds; Weather Neo companion |
| 2.1.1 critical fix | Garden reload / storage race, compact footer, heatmap toggle |
| 2.1.0 Windows patch | Calendar heatmap, paused habits, next Legacy card, installer/icons |
| 2.0.2 patch | Habit ownership after calendar, plugins start again, macOS Dock/tray lifecycle |
| Rowan theme | Strict graphite black-and-white palette |
| Rowan Cluster background | «Pulsing Cluster» — trembling branches, flickering pinnate leaves, pulsing berry probes with radar rings |
| Plugin contributions | Themes, backgrounds, ambient sounds, Settings nav from plugins |
| Habit schedules | Daily, weekdays, N times per week; per-habit reminders |
| First-run wizard | Language, theme, timezone, first habit, optional auto-backup |
| Streak grace day | One forgiven skip per calendar month (optional) |
| Statistics | Weekly and monthly completion trends in Settings |
| Data export | JSON, ZIP, iCal (.ics) for habits and calendar events |
| Auto-backup | 7 rotating snapshots in the app data folder |
| Plugins | sha256-verified installs from cultiva-plugins (registry 3.6.3) |
| F1 help | Contextual shortcuts — English and Russian |
| 19 themes | Including Rowan, Linden, and Cypress |
| 14 ambient backgrounds | Plus custom photo — shared with calendar |
| Cross-platform | Windows, macOS (Intel + ARM), Linux builds in CI |
| Offline-first | IndexedDB on your device — no sync server |
| Visual growth | Five plant stages tied to consistency |
| Calendar | Month / week / day views, regional holidays, shared themes |
| Plugins | Sandboxed header and garden widgets (catalog) |
| Search | Local glyph-s 2.8.0 index (habits, plugins, beds, events, settings) · Glyph family banner in Settings |
| Discord Rich Presence | Optional status while you tend your garden |
| Auto-updates | electron-updater against GitHub Releases |
| i18n | ~348 EN/RU string pairs |
| Accessibility | Focus traps, landmarks, prefers-reduced-motion for ambient layers |
Install from Settings → Plugins → Browse. Requires Cultiva ≥ 1.7.0 for Radio/Weather floors; 2.0+ Rowan recommended (2.3.5+ for glyph-s 2.8). Cultiva 1.7 will soon stop being supported — prefer 2.0+. Registry 3.6.3.
| Plugin | Version | Surface |
|---|---|---|
| Weather | 2.7.2 | Header + garden (Neo solar skies) |
| Time | 2.2.2 | Header |
| Radio | 2.6.3 | Header (33 stations, ICY, live Neo) |
| Pomodoro | 1.2.1 | Header |
| Quote of the Day | 1.6.0 | Garden (500 EN + 500 RU) |
| Habit Reflection | 1.1.0 | Hooks |
| Weekly Stats | 1.0.0 | Garden + hooks |
| Routine | 1.0.0 | Garden + hooks |
| Gentle Nudge | 1.0.0 | Hooks |
Authors: docs/PLUGIN_AUTHOR_GUIDE.md · cultiva-plugins
Wiki source: Markdown for the GitHub Wiki lives in docs/wiki/ — see docs/WIKI.md to publish.
| Layer | Technology |
|---|---|
| Runtime | Electron 40 |
| Engines | CoreV6 · GrowthKit3 · IDB3 · PLE1 |
| UI | Vanilla JavaScript (ES modules), CSS variables |
| Build | Vite 6 (multi-page: garden + calendar) |
| Data | IndexedDB with localStorage bridge where needed |
| Tests | Vitest 3 (19 files, 62 tests) |
| Updates | electron-updater + GitHub Releases |
| Packaging | electron-builder 26 — NSIS, portable, dmg, zip, AppImage, deb |
git clone https://github.com/krwg/cultiva.git
cd cultiva
npm ci
npm run dev # Vite dev server
npm run electron:dev:watch # Electron + hot reload (recommended)
npm run lint
npm test
npm run build # → dist/
npm run electron:build # → release/ (current host OS)Unsigned local builds: CSC_IDENTITY_AUTO_DISCOVERY=false (set automatically in electron:build script).
Issues, PRs, and commit messages in English. In-app strings: src/core/i18n.js (en + ru minimum).
- CONTRIBUTING.md
- SUPPORT.md — where to ask vs open an issue
- SECURITY.md — private disclosure for vulnerabilities
When Discord is running locally, Cultiva can show activity-based Rich Presence (habit counts / streaks, Focus session, Get Cultiva + GitHub buttons). Toggle under Settings → Discord.
Built with care by krwg · GPL-3.0 · 2.3.3 · Rowan