Skip to content

dracan/tomato

Repository files navigation

Tomato

A minimal Windows desktop Pomodoro timer.

Banner

Features

  • 25-minute focus sessions with short and long breaks
  • 4-session cycles (Focus → Break → Focus → Break → Focus → Break → Focus → Long Break)
  • Goal setting dialog when starting a focus session
  • Quick-capture todos during focus sessions (right-click menu)
  • Results dialog when a focus session completes (includes captured todos)
  • Session statistics tracking with historical data
  • View Stats report (right-click → View Stats) - generates an HTML report with:
    • Today's stats (sessions, focus time, break time, cycles)
    • Today's individual sessions with goals and results
    • All-time totals
    • Daily history with expandable session details
  • Sound notifications on session completion
  • State persistence across restarts
  • Compact, always-on-top window
  • System tray icon with color-coded session state and context menu
  • Slack integration - automatically sets status and enables Do Not Disturb during focus sessions

Screenshots

Non-intrusive always-on-top display

Idle Active Pomodoro Short Break Long Break

Custom times

Right-click menu

Pomodoro goal and feedback entry

Goal entry Feedback entry

Quick-capture todos

During a focus session, right-click and select "Add Todo" to quickly capture a thought or task. Todos are displayed:

  • When the session completes normally (in the feedback dialog)
  • When you stop a session early that has captured todos (in a dedicated todos dialog)

Todos are formatted as markdown checkboxes for easy copy/paste:

- [ ] Buy groceries
- [ ] Call mom
- [ ] Review PR

Todos are temporary and cleared after you start a new focus session.

Report generation

Stats report

Slack Integration

Tomato can automatically update your Slack status and enable Do Not Disturb when you start a focus session.

Setup

  1. Create a Slack App at api.slack.com/apps
  2. Add the following OAuth scopes under "User Token Scopes":
    • users.profile:write - to set your status
    • dnd:write - to enable Do Not Disturb
  3. Install the app to your workspace and copy the "User OAuth Token" (starts with xoxp-)
  4. Run Tomato.exe --setup-slack and paste your token
  5. Click "Test Connection" to verify it works, then "Save"

Behavior

  • Focus session starts: Status changes to 🍅 "Focus time" and DND is enabled
  • Focus session ends: Status is cleared and DND is disabled
  • Breaks: No changes to Slack status

Your token is stored encrypted using Windows DPAPI at %LOCALAPPDATA%\Tomato\slack.json.

Download

Download the latest release from the Releases page.

Extract the zip and run Tomato.exe.

Building from Source

Requires .NET 8.0 SDK.

dotnet build Tomato.sln
dotnet run --project Tomato/Tomato.csproj

Running Tests

dotnet test Tomato.sln

About

Pomodoro timer for Windows

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages