Skidmarks is a command-line application written in Rust for managing streaks. It allows users to add and list streaks with different frequencies (daily or weekly) adn check in to those streaks to maintain them.
- Add new streaks with a specified name and frequency.
- List all existing streaks.
- Check in on a streak to keep it going.
- Remove a streak when it's no longer needed.
- CLI, TUI, and GUI interfaces available.
To install Skidmarks, you need to have Rust and Cargo installed on your system. You can install Rust using rustup.
cargo install --locked skidmarks
Or manually via:
# Clone the repository
git clone https://github.com/kennethlove/skidmarks.git
# Navigate to the project directory
cd skidmarks
# Build the project
cargo build --release
To add a new streak, use the add
command with the --name
and --frequency
options.
# Add a daily streak
$ skidmarks add --name "Exercise" --frequency daily
🎉 Created a new daily streak: Exercise
# Add a weekly streak
$ skidmarks add --name "Read a book" --frequency weekly
🎉 Created a new weekly streak: Read a book
To list all existing streaks, use the list
command.
$ skidmarks list
| Streak | Freq | Status | Last Check In | Total
---+-----------------+--------+--------+---------------+-------
0 | Exercise | daily | ✅ | 2024-07-31 | 1
1 | Wordle | daily | ✅ | 2024-07-31 | 1
2 | Coloring page | daily | ✅ | 2024-07-31 | 1
3 | Duolingo | daily | ✅ | 2024-07-31 | 1
4 | Animal Crossing | daily | ❌ | None | 0
5 | Read a book | weekly | ❌ | None | 0
You can filter the list of streaks by using the --done
, --waiting
, or --missed
flags.
You can filter by frequency with the --daily
and --weekly
flags.
You can search the list of streaks by using the --search
flag.
$ skidmarks list --search "Exercise"
| Streak | Freq | Status | Last Check In | Total
---+-----------------+--------+--------+---------------+-------
0 | Exercise | daily | ✅ | 2024-07-31 | 1
To check in on a streak, use the check-in <streak id>
command.
$ skidmarks check-in 0
🌟 Checked in on the "Exercise" streak!
To remove a streak, use the remove <streak id>
command.
$ skidmarks remove 5
🗑 Removed the "Read a book" streak
There is a TUI interface available for Skidmarks. To use it, run the following:
skidmarks tui
There is a GUI interface available for Skidmarks. To use it, run the following:
skidmarks gui
To run the tests for this project, use the following command:
cargo test
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the Apache License. See the LICENSE file for details.