pomo.yaml file in YAML format. This page documents every configuration option, its type, default value, and behavior.
Configuration file location
Pomo searches forpomo.yaml in the following order:
- Current working directory (
./pomo.yaml) ~/.config/pomo/pomo.yaml(Linux and macOS)- User config directory on other platforms
Complete example
pomo.yaml
Session behavior
Controls what happens when a session (work or break) completes.Valid values:Note: Even with
ask- Show confirmation dialog asking if you want to start the next sessionstart- Automatically start the next session without promptingquit- Exit Pomo when session completes
start, you can still use keybindings to control the timer during the session.ASCII art configuration
Controls the large ASCII art timer display.Enable or disable the ASCII art countdown timer.When
true, displays a large ASCII art timer. When false, shows a simpler text-based timer.Example:The ASCII art font to use for the timer display.Valid values:See the ASCII fonts reference for visual examples of each font.
mono12- Clean monospaced font with rounded edges (default)rebel- Bold angular font with gradient shadingansi- Compact solid block fontansiShadow- Elegant font with box-drawing borders
Hex color code for the ASCII art timer.Must be a valid hex color in the format Note: Requires a terminal with true color support for accurate color rendering.
#RRGGBB.Example:Work session configuration
Settings for Pomodoro work sessions.Default duration for work sessions.Uses Go duration format: Note: Can be overridden per-session using command-line arguments:
25m, 1h30m, 45m, etc.Example:pomo 1hDisplay title shown during work sessions.Appears in the terminal UI and can be used to customize the session label.Example:
Enable desktop notifications when work sessions complete.Example:
Mark work completion notifications as urgent.When
true, the notification may bypass Do Not Disturb settings (platform-dependent).Example:Title text for work completion notifications.Example:
Body text for work completion notifications.Example:
Path to custom notification icon image.Supports absolute paths and Note: Icon format support varies by platform (PNG recommended).
~/ for home directory. Leave empty to use the default Pomo icon.Example:Commands to execute when work session completes.Each item is an array of strings representing a command and its arguments.Example:Security note: Commands run with your user permissions. Only use trusted commands.
Break session configuration
Settings for short break sessions between work periods.Default duration for short break sessions.Uses Go duration format: Note: Can be overridden per-session using:
5m, 10m, 15m, etc.Example:pomo 25m 10mDisplay title shown during break sessions.Example:
Enable desktop notifications when break sessions complete.Example:
Mark break completion notifications as urgent.Example:
Title text for break completion notifications.Example:
Body text for break completion notifications.Example:
Path to custom notification icon for breaks.Example:
Commands to execute when break session completes.Example:
Long break configuration
Settings for extended break sessions after multiple work periods.Enable automatic long breaks after a certain number of work sessions.When enabled, Pomo will substitute a long break for a short break every N work sessions.Example:
Number of work sessions before triggering a long break.After this many completed work sessions, the next break will use Validation: Must be greater than 0. Invalid values default to 4.
longBreak.duration instead of break.duration.Example:Duration for long break sessions.Typically longer than regular breaks to provide extended rest periods.Example:
Data types reference
Duration format
All duration fields use Go’stime.Duration format:
s- seconds:30s,90sm- minutes:5m,25m,45mh- hours:1h,2h- Combined:
1h30m,2h15m30s
Color format
Color fields accept hex color codes: Format:#RRGGBB where RR, GG, BB are hexadecimal values (00-FF)
Examples:
Configuration validation
Pomo validates configuration values at startup:- Duration parsing: Invalid durations cause an error and prevent startup
- Long break count: Values ≤ 0 are reset to default (4)
- Font names: Invalid fonts fall back to
mono12 - File paths: Tilde (
~) is expanded to home directory
If Pomo fails to load your configuration file, it will print an error message and exit with code 1. Check the error message for details about what went wrong.
Minimal configuration
You don’t need to specify every option. This minimal config is valid:pomo.yaml
Platform-specific notes
macOS
- Notifications use native macOS notification center
- Config location:
~/.config/pomo/pomo.yaml - Icon format: PNG, ICNS
Linux
- Notifications use libnotify (requires
notify-send) - Config location:
~/.config/pomo/pomo.yaml - Icon format: PNG, SVG
Windows
- Notifications use Windows notification system
- Config location:
%APPDATA%\pomo\pomo.yaml - Icon format: PNG, ICO
Implementation reference
Configuration is implemented in:- Config loading:
config/config.go:113-143 - Default values:
config/config.go:66-98 - Validation:
config/config.go:137-140 - Struct definitions:
config/config.go:26-59