Streak.txt is a simple tool to capture your streaks. Each streak is tracked in a plain text file that you can edit with your favourite text editor. You can use it to capture your streaks, habits, or anything else you want to track.
To organize the streaks better you can keep all your streak files in a "streaks" directory however this is not a requirement.To use Streak.txt, simply create a new plain text file in your favorite text editor and start capturing your streaks.
Suggestion #1: name your streak file "streak-<activity>.txt", for example streak-jumpingjacks.txt
Suggestion #2: keep all your streak files in one directory. The reference tool assumes your default streak files folder is "~/streaks"
Each line in the file represents a day. You can use any text editor to edit the file, including Notepad, TextEdit, or any other text editor.
Each day you complete the task, add the date to the file. For example:
2021-01-01 2021-01-03 2021-01-04
You can see in the example above that the task was completed on January 1st, 3rd, and 4th, but not on January 2nd.
Note: The date is in ISO 8601 format (YYYY-MM-DD).
If you want to give a nice name to your streak, you can add a metadata block at the beginning of the file. The metadata block is a YAML front matter block. Here is an example:
--- name: Jumping Jacks --- 2021-01-01 2021-01-03 2021-01-04
The reference tool is a simple command line tool that can be used to manage your streaks. The tool is written in Python and is available on Github.
It serves two purposes:
The tool is available on Github. You can clone the repository and run the tool from the command line.
git clone https://github.com/abhishekmishra/streak-dot-txt.git cd streak-dot-txt pip install -r requirements.txt python streakdottxt.py --help
The tool provides the following commands. You can get more information about each command by running the command with the "--help" flag.
python streakdottxt.py list
Streaks Name Tick Current Streak Today's Status ─────────────────────────────────────────────────────────────────────── Gesture Drawing Practice Daily 1 Ticked Journal Entry Daily 4 Not Ticked Jumping Jacks Daily 1 Ticked Practice Digital Art Daily 0 Not Ticked Practice Figure Drawing Daily 1 Ticked Practice Landscape Drawing Daily 0 Not Ticked Practice Portrait Drawing Daily 1 Ticked Practice Still Life Drawing Daily 1 Ticked Programming/Coding Daily 1 Ticked
python streakdottxt.py new --name "Jumping Jacks"
python streakdottxt.py view --name jumping
Name [Jumping Jacks] Tick [Daily] Streak Stats Stat Value ──────────────────────── Total Days 1 Ticked Days 1 Unticked Days 0 Current Streak 1 Longest Streak 1 January 2025 Sun Mon Tue Wed Thu Fri Sat ────────────────────────────────────────────────────────────── 1 [✖] 2 [✖] 3 [✖] 4 [✖] 5 [✓] 6 [-] 7 [-] 8 [-] 9 [-] 10 [-] 11 [-] 12 [-] 13 [-] 14 [-] 15 [-] 16 [-] 17 [-] 18 [-] 19 [-] 20 [-] 21 [-] 22 [-] 23 [-] 24 [-] 25 [-] 26 [-] 27 [-] 28 [-] 29 [-] 30 [-] 31 [-]
python streakdottxt.py tick --name jumping
The project contains the source code for the reference tool as well as the documentation (this page) which defines the format.
The project (documentation and the reference implementation) is licensed under the MIT License. You can find the license in the source code repository.
Source code repository streak-dot-txt (Github).
Date | Changes | Author |
---|---|---|
2025-01-05 | Initial version | Abhishek (neolateral.in) |