godoro
A keyboard-driven Pomodoro timer for the terminal.
Install
# Go Install (recommended)
# Dynamic
go install github.com/ImStyrene/godoro@latest
# Static (recommended)
CGO_ENABLED=0 go install github.com/ImStyrene/godoro@latest
# Build from Source
# Dynamic
go build -ldflags="-s -w" -o godoro .
# Static (recommended)
CGO_ENABLED=0 go build -ldflags="-s -w" -o godoro .
# Nix (Flake)
nix run github:ImStyrene/godoro
# Nix (Local)
nix build && ./result/bin/godoro
CGO_ENABLED=0 produces a fully static binary — drop it on any Linux
machine and it just works. If you omit it, you need a C toolchain
(common, but not universal).
Usage
godoro
godoro -work 30 -short 7 -long 20 -pomodoros 3
godoro -version
godoro -h
Keys
| Key |
Action |
s |
Start / resume |
p |
Pause |
r |
Reset |
c |
Open configuration |
q / Ctrl+C |
Quit |
Configuration screen (c)
Configuration
▸ Work: 25
Break: 5
Long Break: 15
Pomodoros: 4
↑↓/hjkl/C-p/C-n navigate ↵ edit Esc back
Navigate rows with arrows, j/k, or Ctrl+P/Ctrl+N (Emacs-style).
Press Enter to edit a value — type digits, Enter to confirm, Esc to cancel.
The timer keeps running in the background while you configure.
Flags
| Flag |
Default |
Description |
-work |
25 |
Work duration (minutes) |
-short |
5 |
Short break duration (minutes) |
-long |
15 |
Long break duration (minutes) |
-pomodoros |
4 |
Pomodoros before a long break |
Pomodoro cycle
- Work → counts down → beep
- Short break (until pomodoros-per-set reached) → beep
- Long break (after N pomodoros) → beep → resets counter
- Back to idle, ready for the next round
Project
godoro/
├── main.go # the whole app (~430 lines)
├── flake.nix # nix flake (nix build / nix run)
├── shell.nix # nix dev shell (nix-shell)
├── go.mod # go module + deps
├── go.sum # dep checksums
├── LICENSE # MIT
└── README.md # this file
Built with Bubbletea.
License
MIT © ImStyrene