Skip to main content
Pomo provides keyboard shortcuts to control the timer and interact with dialogs. All keybindings are built-in and cannot be customized.

Timer controls

These keybindings are available during active work or break sessions.
KeyAlternativeActionDescription
kIncrease timerAdd 1 minute to the current session
hReset timerReset the timer to its original duration
Space-Pause/resumeToggle between paused and running states
s-Skip sessionSkip to the end of the current session
qCtrl+CQuitExit the timer and return to shell

Detailed behavior

Adds exactly 1 minute to the remaining time on the current session.
  • Can be pressed multiple times to add multiple minutes
  • Works while timer is running or paused
  • Does not affect the configured default duration for future sessions
  • Useful when you need just a bit more time to finish a task
Example: If timer shows 3:45 remaining, pressing changes it to 4:45.
Resets the countdown to the full session duration.
  • Returns timer to the original duration (either default or custom)
  • Clears any time added with the increase key
  • Works while timer is running or paused
  • Does not restart the session - maintains current pause state
Example: In a 25-minute session with 12:30 remaining, pressing resets to 25:00.
Toggles the timer between running and paused states.
  • Pauses the countdown and preserves remaining time
  • Press again to resume from where you left off
  • Progress bar updates to show paused state
  • Useful for unexpected interruptions
Visual indicator: The UI will show “Paused” when the timer is stopped.
Immediately completes the current session and triggers end-of-session behavior.
  • Jumps to 0:00 and marks session as complete
  • Triggers desktop notification (if enabled)
  • Shows session end dialog based on onSessionEnd configuration
  • Statistics are recorded as if session completed naturally
Use case: When you finish a task early and want to start your break immediately.
Exits Pomo and returns to your shell.
  • Terminates the current session without saving
  • No notification is sent
  • Session is not recorded in statistics
  • Clean exit with no confirmation prompt
Note: Use skip (s) instead if you want the session to count toward your stats.

Confirmation dialog

These keybindings appear in the session-end confirmation dialog when onSessionEnd is set to ask.
KeyAlternativeActionDescription
Tabh, l, , Toggle selectionSwitch between Yes/No options
y-ConfirmSelect “Yes” and submit
n-CancelSelect “No” and submit
Enter-SubmitSubmit the currently selected option
s-Short sessionStart a short break session
qCtrl+CQuitExit without starting next session

Detailed behavior

Moves the selection between the “Yes” and “No” options in the dialog.
  • Visual highlight moves between options
  • Multiple keys provide flexibility for different keyboard layouts
  • Vi-style keys (h/l) and arrow keys both supported
Dialog context: Appears after work sessions asking “Start break?”
Immediately selects “Yes” and proceeds to the next session.
  • Bypasses need to navigate and press Enter
  • After work session: starts break
  • After break session: starts work
  • Respects break duration settings
Quick workflow: Press y to immediately start your break after work.
Immediately selects “No” and exits the timer.
  • Bypasses need to navigate and press Enter
  • Closes Pomo and returns to shell
  • Session is still recorded in statistics
Quick workflow: Press n to quickly exit after completing a session.
Confirms the currently highlighted option (Yes or No).
  • Executes the action for whichever option is selected
  • Use after navigating with Tab/arrows
  • Standard confirmation key
Example: Press Tab to select “No”, then Enter to confirm.
Starts a short break session regardless of the selected option.
  • Immediately launches a break with reduced duration
  • Useful when you don’t need a full break
  • Duration determined by break configuration
Note: This is distinct from the normal “Yes” option and may use different duration.
Exits Pomo without starting the next session.
  • Immediately closes the dialog and returns to shell
  • Completed session is still saved to statistics
  • Same as selecting “No” but faster
Quick exit: Press q to immediately exit after reviewing session results.

Keybinding design

Pomo’s keybindings are designed to be accessible to both:
  • Vi/Vim users: h, j, k, l for navigation
  • Arrow key users: Standard arrow key support
  • Universal keys: Space, Enter, q, Ctrl+C work for everyone

Context-specific keys

Some keys behave differently depending on where you are in Pomo:
KeyDuring sessionIn confirmation dialog
sSkip sessionStart short session
qQuit PomoExit without continuing
SpacePause/resumeNo effect
EnterNo effectSubmit selection

Implementation details

Keybindings are implemented using the Bubble Tea framework:
  • Timer keys: Defined in ui/keys.go:29-50
  • Dialog keys: Defined in ui/confirm/keys.go:29-54
  • Keys are handled by the Bubble Tea Update message loop
  • No configuration file options to customize keybindings

Build docs developers (and LLMs) love