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
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.
---
name: Jumping Jacks
tick: Daily
---
2026-07-25
2026-07-26
2026-07-28 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.
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.
Your directory, your history
Files live in ~/streaks by default. Copy, sync,
diff, or version them with tools you already trust.
Small enough to last
The desktop app and CLI share the same parser and rules. Neither owns the data; both are views onto it.
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.
Up to 25 streak controls fit in the standard window. Ticking one never reorders or resizes the others.
Each control puts today’s tick in the same place, with a clear pressed state after completion.
Current streak, personal best, and completion rate stay visible without taking over the task.
Control order is stored beside the streak files, so the arrangement travels with the collection.
The desktop package includes everything it needs and its local service accepts connections only from your computer.
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.
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 ↓Streak.txt for Windows
An unsigned NSIS installer. Microsoft Defender SmartScreen may ask you to confirm before installation.
Download .exe ↓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.
$ 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. 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.