Open source · macOS + iOS

Pomodoro.
But it picks the music.

A focus timer that packs your Plex library into a playlist sized to your focus session, landing on your target length to the minute. Pick a track and it builds the rest.

MIT licensed · Swift · No external accounts

25:00
In progress
Supercut
Various Artists
0:06−3:19
Up next · 8 tracks
walking the cow
Various Artists
The 20-second tour

See it packed

Drop in a seed track and get a focus session that fits the block.

How it works

Pick a track, and we pack the rest.

A two-phase engine builds a playlist that fills your focus block, landing on your target length to the minute.

01

Seed it

Search your Plex library and drop in one track to set the vibe.

02

It packs

It samples random combinations from your library, then fills any remaining gap so the total lands on your target length.

03

You focus

Audio downloads ahead of time, so you can hit start, lock your screen, and get into the work.

Features

Built for deep work

Native SwiftUI on a shared PlexodoroKit core, with no telemetry and no accounts.

Packs to the minute

Two-phase packing nails your target session length instead of running long or cutting off.

880 EQ presets

Bundled AutoEQ presets (oratory1990 + Kazi) for ~880 headphones, with a hard-bypass toggle.

On-device cache

A size-capped on-disk cache downloads tracks ahead of playback so sessions never stall.

Background audio

Playback survives screen lock, sleep, and audio route swaps on iOS.

macOS menu bar

Lives in your menu bar, with the timer, album art, volume, and controls a click away.

iOS in your pocket

The same core on iPhone, with a shared PlexodoroKit keeping both apps in lockstep.

Platforms

macOS menu bar. iOS in your pocket.

One core, two native surfaces.

Plexodoro running as a macOS menu bar dropdown
macOS
Menu-bar dropdown · lives out of the way
Plexodoro running an active focus session on iOS
iOS
Full-screen session · background audio

Focus, scored by your library.

Open source under MIT, with no sign-ups.

View on GitHub