pomo

command module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2025 License: MIT Imports: 2 Imported by: 0

README ΒΆ

pomo β€” Terminal Pomodoro Timer

Demo

Latest Release Build Status

A simple, customizable Pomodoro timer for your terminal, built with Bubble Tea.

Features

  • πŸ… Work and break timer sessions
  • πŸ”— Task chaining with user confirmation prompts
  • πŸ“Š Real-time progress bar visualization
  • ⌨️ Keyboard shortcuts to adjust time mid-session
  • ⏸️ Pause and resume sessions
  • ⏭️ Skip to next session
  • πŸ”” Cross-platform desktop notifications
  • 🎨 Clean, minimal terminal UI with ASCII art timer fonts
  • πŸ› οΈ Custom commands when timers complete
Desktop Notifications

pomo sends native desktop notifications when sessions complete

πŸ”” View notification examples

Linux (GNOME)

Linux Notification

Windows

Windows Notification

Note: Actual notification appearance varies by operating system and desktop environment

Timer Fonts

mono12 rebel
mono12 rebel
ansi ansiShadow
ansi ansiShadow

Usage

Work sessions:

pomo              # Default work session (25m)
pomo 30m          # Custom duration

Break sessions:

pomo break        # Default break (5m)
pomo break 10m    # Custom duration

Installation

Install with Go

go install github.com/Bahaaio/pomo@latest

Or, build from source

git clone https://github.com/Bahaaio/pomo
cd pomo
go build .

Alternatively, download pre-built binaries from the releases page.

Configuration

πŸ“ Config file search order

pomo looks for its config file in the following order:

  1. Current directory: pomo.yaml (highest priority)
  2. System config directory:
    • Linux: ~/.config/pomo/pomo.yaml
    • macOS: ~/Library/Application Support/pomo/pomo.yaml
    • Windows: %APPDATA%\pomo\pomo.yaml
  3. Built-in defaults if no config file is found

Example pomo.yaml:

# prompt to continue after session completion
# false = exit when done
askToContinue: true

asciiArt:
  # use ASCII art for timer display
  enabled: true

  # available fonts: (mono12, rebel, ansi, ansiShadow)
  # default: mono12
  font: ansiShadow

  # color of the ASCII art timer
  # hex color or "none"
  color: "#5A56E0"

work:
  duration: 25m
  title: work session

  # cross-platform notifications
  notification:
    enabled: true
    title: work finished πŸŽ‰
    message: time to take a break
    icon: ~/my/icon.png

break:
  duration: 5m

  # will run after the session ends
  then:
    - [spd-say, "Back to work!"]

Check out pomo.yml for a full example with all options.

Key Bindings
Timer Controls
Key Action
↑ / k Increase time by 1 minute
Space Pause/Resume timer
← / h Reset to initial duration
s Skip to next session
q / Ctrl+C Quit

Skip button skips directly to the next session, bypassing any prompts

Confirmation Dialog
Key Action
y Confirm (Yes)
n Cancel (No)
Tab Toggle selection
Enter Submit choice
q / Ctrl+C Quit

License

This project is licensed under the MIT License. See the LICENSE file for details.

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
Package cmd provides the command-line interface for the pomo timer.
Package cmd provides the command-line interface for the pomo timer.
Package config loads, stores, and provides default values for work and break tasks.
Package config loads, stores, and provides default values for work and break tasks.
ui
Package ui provides the terminal user interface for pomodoro sessions.
Package ui provides the terminal user interface for pomodoro sessions.
ascii
Package ascii provides ASCII art style.
Package ascii provides ASCII art style.
colors
Package colors defines color constants for UI elements.
Package colors defines color constants for UI elements.
confirm
Package confirm provides a simple confirmation dialog component
Package confirm provides a simple confirmation dialog component

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL