A CLI Pomodoro timer https://crates.io/crates/tomate
  • Rust 99.7%
  • Just 0.3%
Find a file
renovate-bot 957e5cdb8b
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
ci/woodpecker/push/test Pipeline was successful
chore(deps): update rust crate log to v0.4.30
2026-06-01 08:04:53 +00:00
.woodpecker refactor(ci): move CI steps into mise 2026-04-07 10:04:23 -06:00
man feat: improve docs 2026-01-10 16:01:36 -07:00
src feat: improve docs 2026-01-10 16:01:36 -07:00
.editorconfig Try out woodpecker CI 2025-05-24 15:49:03 -06:00
.gitignore Initial commit 2024-04-01 21:16:02 +00:00
.pre-commit-config.yaml feat(build): update pre-commit hooks 2025-12-30 23:08:11 -07:00
build.rs feat(docs): use clap_mangen to generate man pages 2025-12-30 23:07:30 -07:00
Cargo.lock chore(deps): update rust crate log to v0.4.30 2026-06-01 08:04:53 +00:00
Cargo.toml chore(deps): update rust crate clap_mangen to 0.3.0 2026-03-28 14:19:49 +00:00
CHANGELOG.md chore: Release tomate version 0.5.0 2026-01-10 16:05:13 -07:00
Justfile Start writing man pages 2024-12-15 13:40:53 -07:00
LICENSE.md Move license to customary file instead of directory 2025-08-05 10:36:34 -06:00
mise.toml feat(build): add cargo-binstall to speed up cargo package install 2026-05-27 10:30:26 -06:00
README.md fix(docs): update CI badge [ci skip] 2026-05-27 11:35:09 -06:00
release.toml feat: add cargo-release 2026-01-10 16:01:36 -07:00
renovate.json Update renovate.json 2026-05-27 16:03:44 +00:00

Tomate

status-badge Crates.io Version Crates.io License Crates.io Total Downloads

A Pomodoro timer for the CLI

Install

Clone this repository and run cargo install.

Usage

To do a Pomodoro:

  1. Start a Pomodoro with tomate pomodoro start
  2. See remaining time with tomate status
  3. End and archive the Pomodoro with tomate pomodoro stop

To take a break:

  1. Start a break with tomate short-break start
  2. See remaining time with tomate status
  3. End the break with tomate short-break stop

Description and tags

Provide an optional argument to start to give the Pomodoro a description. You can also add tags with the --tag (-t) option.

$ tomate pomodoro start -t work -t fun "Do something cool"
$ tomate status
Current Pomodoro: Do something cool
Status: Active
Duration: 25m
Tags:
        - work
        - fun

Time remaining: 24:22

(use "tomate pomodoro stop" to archive this Pomodoro)

History

The tomate history command shows you all the Pomodoros you've completed.

$ tomate history
 Date Started  Duration  Tags         Description
 01 Apr 10:23       25m  work         Emails
 01 Apr 11:04       25m  home         Phone calls
 01 Apr 11:43       25m  work,boring  More stuff

Hooks

Tomate can run commands when timers start and stop. Create an executable script in the hooks directory (by default ${XDG_CONFIG_DIR}/tomate/hooks) with any of the following names:

  • pomodoro-start
  • pomodoro-end
  • shortbreak-start
  • shortbreak-end
  • longbreak-start
  • longbreak-end

Make sure they are executable (chmod u+x pomodoro-start).

Acknowledgements

Many thanks to Justin Campbell for his Open Pomodoro project. It's good enough to rewrite it in Rust.

License

Copyright © 2026 Rosa Richter

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.