Tick is a CLI time-tracking tool written in Rust. ⏱
41259a5c — Roger Steve Ruiz 2 years ago
Merge pull request #14 from rogeruiz/add-testing
de4eec10 — Roger Steve Ruiz 2 years ago
Update Travis tests to leverage the new Tick 1.0
df6bc462 — Roger Steve Ruiz 2 years ago
Update Tick to leverage a config.yaml;



You can also use your local clone with git send-email.

#Tick CLI for tracking your time

Angry clock eats person

I use tick to track all my time using tmux sessions. But tick can be used without tmux, node or any other dependency. The tick CLI is written in Rust.

Info Description
Project Build Status Project build status for Tick CLI
Installation Installing Tick CLI.
Motivation Why use Tick CLI?
Commands Using Tick CLI.
Inspiration Everything is a remix, including Tick CLI.
Contributing Contribute to Tick CLI.
License License for Tick CLI.


To install Tick, you can either compile it from source or download the binary from the releases page for the release you want and the platform you need.

#Supported platforms

Tick has been used daily by me on different platforms such as macOS, Ubuntu, and Arch. While it hasn't been tested on other platforms such as Windows, patches are welcome to add tests for this.


Tick leverages SQlite 3+ as a database. Make sure you have sqlite3 installed on your machine. This ships with macOS and can usually be installed with a package manager on your platform of choice.

#Compiling Tick from source

The steps are pretty straight-forward as long as you are within the realm of Tier 1 support for the Rust compiler.

# Clone the repository.
>_ git clone https://github.com/rogeruiz/tick.git

>_ cd tick

# Setup your Tock configuration file
>_ mkdir -p ~/.config/tick
>_ echo "database_path: ~/.config/tick/main.db" > "${_}/config.yaml"

# Build the release.
>_ cargo build --release

# Install in your path.
>_ cp ./target/release/tick /usr/local/bin/tick


I track my time a lot while using the terminal using a wrapper around tmux. The wrapper I have is a shell script called tux. While the wrapper works great, it depends on clocker and node to handle time tracking.

The main motivation around writing this was to remove the node and clocker dependencies from tux along with adding customizable exporting mechanisms. Tracking your time can be hard enough, so Tick tries making it a lot easier.


Run tick --help to see all the available commands you can use. Below is an example workflow of how you would use Tick.

>_ tick [ -v ] start --name my-timer [ --message "I can do the thing!" ]
>_ tick [ -v ] status
>_ tick [ -v ] stop --name my-timer [ --message "I did the thing!" ]
>_ tick [ -v ] stop [ --message "I did the thing!" ] # without a name argument stops the latest running timer
>_ tick [ -v ] list
>_ tick [ -v ] remove --id $( tick list | tail -1 | awk '{ print $1 }' ) # delete the latest timer by Timer ID


This project would not be possible without being inspired by other's work.