Local-first streak tracker · v0.1.1

Habits, kept in plain text.

A fast desktop switchboard for the things you do repeatedly. Every streak is a readable file on your disk—not an account, a subscription, or somebody else’s database.

Free and open source · macOS Apple Silicon · Windows x64

01 / Plain files Open them in any editor. Back them up however you like.
02 / No account The application runs locally and does not need a cloud service.
03 / Fixed places Controls stay put, so daily use becomes muscle memory.
04 / One honest action Did the thing? Add the date. Missed it? Add nothing.
The durable part

The file is the product.

One streak, one file. A small metadata header says what you are tracking; every line after it records a completed period.

streak-jumping-jacks.txt UTF-8
---
name: Jumping Jacks
tick: Daily
---
2026-07-25
2026-07-26
2026-07-28
01

Readable without Streak.txt

The format is ordinary text with a short YAML-style header. Notepad, TextEdit, Vim, and your future self can all read it.

02

Append when completed

Dates use ISO 8601: YYYY-MM-DD. There is no “failed” entry; a missing date already says the task was not done.

03

Your directory, your history

Files live in ~/streaks by default. Copy, sync, diff, or version them with tools you already trust.

04

Small enough to last

The desktop app and CLI share the same parser and rules. Neither owns the data; both are views onto it.

The everyday view

A switchboard, not a dashboard.

Streak.txt is designed to be opened, used, and closed several times a day. The interface stays dense and predictable so your eyes and hands learn where each practice lives.

Fixed grid

Up to 25 streak controls fit in the standard window. Ticking one never reorders or resizes the others.

One click

Each control puts today’s tick in the same place, with a clear pressed state after completion.

Useful stats

Current streak, personal best, and completion rate stay visible without taking over the task.

Portable order

Control order is stored beside the streak files, so the arrangement travels with the collection.

Offline

The desktop package includes everything it needs and its local service accepts connections only from your computer.

Hearth Pheasant · v0.1.1

Download the desktop app.

The first release is available for Apple Silicon Macs and 64-bit Windows. Your streak files remain in place when the app is removed.

macOS 11+ · Apple Silicon

Streak.txt for Mac

An ad-hoc-signed, unnotarized DMG. After copying the app, macOS requires a one-time approval in Privacy & Security.

Download .dmg ↓
Windows · x64

Streak.txt for Windows

An unsigned NSIS installer. Microsoft Defender SmartScreen may ask you to confirm before installation.

Download .exe ↓
Why the warnings? This independent open-source release does not use corporate Apple credentials or a Windows code-signing certificate. Verify downloads with SHA256SUMS.txt.
The reference tool

The same streaks, from your terminal.

The Python CLI is both a practical companion and the reference implementation of the format. Point it at the same directory and it sees exactly what the desktop app sees.

The commands here use macOS/Linux paths. On Windows, use .env\Scripts\python. See the README for the complete development setup.

list — see every streak

Shows each streak’s schedule, current run, and whether today is already ticked.

new — create a streak

Creates a safely named streak-<id>.txt file with metadata.

tick — record today

Fuzzy-match a streak by name and append today’s date. mark is an alias.

view — inspect history

Displays totals, current and longest streaks, plus a calendar view of the selected practice.

streaks — shell 80 × 24
$ python3 -m venv .env
$ .env/bin/python -m pip install \
    -c requirements.lock -r requirements-dev.txt

$ .env/bin/python streakdottxt.py list

STREAKS
────────────────────────────────────────
NAME              NOW   BEST   TODAY
Meditation          14     19   Ticked
Gesture Drawing     3     11   Not ticked
Journal Entry       8     13   Not ticked
Morning Walk        25     31   Ticked

$ .env/bin/python streakdottxt.py tick \
    --name "journal"
Ticked Journal Entry for today.
Open source · MIT

Small software. Legible data.

Streak.txt is built in the open. Read the source, report a problem, or make the plain-text format useful in a tool of your own.

View source on GitHub ↗