10 releases

0.1.9 Aug 20, 2024
0.1.8 Aug 20, 2024
0.1.7 Jul 31, 2024

#1969 in Command line utilities

Apache-2.0

775KB
2.5K SLoC

Skidmarks

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.

Features

  • 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.

Installation

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

Usage

Adding a Streak

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

Listing All Streaks

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

Filtering Streaks

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.

Searching Streaks

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

Checking In on a Streak

To check in on a streak, use the check-in <streak id> command.

$ skidmarks check-in 0

🌟 Checked in on the "Exercise" streak!

Removing a Streak

To remove a streak, use the remove <streak id> command.

$ skidmarks remove 5

🗑 Removed the "Read a book" streak

TUI

There is a TUI interface available for Skidmarks. To use it, run the following:

skidmarks tui

GUI

There is a GUI interface available for Skidmarks. To use it, run the following:

skidmarks gui

Running Tests

To run the tests for this project, use the following command:

cargo test

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

License

This project is licensed under the Apache License. See the LICENSE file for details.

Dependencies

~37–83MB
~1.5M SLoC