Text-file based todo time tracking
Switch branches/tags
Nothing to show
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Introducing help toggle (#2) Nov 8, 2018
timing Adding option to log idle time (#3) Nov 13, 2018
todotxt Initial commit Nov 7, 2018
.gitignore .gitignore: adding ./dist/ Nov 8, 2018
.golangci.yml Adding option to log idle time (#3) Nov 13, 2018
.goreleaser.yml goreleaser: adding trimpath Nov 14, 2018
.pre-commit-config.yaml Adding option to log idle time (#3) Nov 13, 2018
Gopkg.lock Initial commit Nov 7, 2018
Gopkg.toml Initial commit Nov 7, 2018
LICENSE.md Initial commit Nov 7, 2018
Makefile Initial commit Nov 7, 2018
main.go Allowing to start pomodoro while break is running (#5) Nov 19, 2018



Pomogoro is a command-line tool to combine todo.txt (or any other text based todo file) and the Pomodoro Technique.

pomogoro screenshot


  • made to work with todo.txt files but is compatible with any line-based text files
  • time tracking history per task per day
  • OS notifications (pomodoro finished, break started, break finished)
  • option to enable/disable pomodoro style tracking
  • configurable pomodoro and break durations
  • auto break after one pomodoro is finished


Option 1: get a binary

Go to Releases and grep the appropriate release for your architecture.

# extract
tar -xvzf <release.tar.gz>
# move the binary to a directory in your $PATH
mv pomogoro ~/.local/bin

Option 2: go get

go get -u github.com/phux/pomogoro
cd $GOPATH/src/github.com/phux
dep ensure
go install

After this you can start pomogoro via

pomogoro --config <absolute/path/to/config.toml>


You need to pass an absolute path to a config.toml file via --config /your/path/to/config.toml.

# config.toml
TodoFile = "/absolute/path/to/your/todo.txt" # containing the tasks you want to track
LogFile = "/absolute/path/to/pomogoro.log" # tracking log file
BreakDuration = 5 # in minutes
PomodoroEnabled = true # whether to use pomodoro timer or not
PomodoroDuration = 25 # in minutes
LogIdleTime = true # also log idle times
LogBreakTime = true # also log breaks


Key Function
j/k/Up/Down Scroll down/up in windows
Enter Start tracking on current task in the todo window
p Toggle: Freeze timer
c Cancel current timer (task or break)
s Toggle between summary per task per day and recent history
r Refresh todo list
? Toggle: show keyboard bindings
CTRL-c quit


  • Jira: Fetch tasks & push time trackings (WIP)
  • reduce 1s lag after key press
  • cleanup codebase & more tests
  • group by todo.txt projects

Built With


This project is licensed under the MIT License - see the LICENSE.md file for details