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 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.
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.
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.
clocker
- repositorywatson
- repository