# A virtual pet app for Mac, feature by feature

A virtual pet app for Mac puts a small animated companion on your desktop, and CatPod ties its pixel cat to a focus timer, so a finished work session is what feeds it.

- URL: https://swiftfox.studio/handbook/virtual-pet-app-for-mac
- About: https://swiftfox.studio/apps/catpod
- Published: 2026-06-25
- Updated: 2026-09-06
- Publisher: Swiftfox Studio (https://swiftfox.studio)

## In short

- CatPod's cat lives on the desktop rather than in a window, roams the display you are working on, curls up for the length of a session and naps when you leave the desk.
- The focus timer is the feeding mechanism: chips at 15, 25 and 50 minutes, or a slider anywhere from 5 to 120.
- Sessions finished on the same day stack a combo up to a cap at the fifth, and abandoning one costs a little happiness - the only negative feedback in the app.
- Six milestones live in Stats - three streak days, seven, thirty, plus a first session, a five-session day and one session of sixty minutes or more.

## What a virtual pet is doing on a work machine

The desktop pet is one of the oldest ideas in personal computing and it has never
quite gone away, because the thing it provides is not productivity. It is
company. A quiet room with a small animated creature in the corner of the screen
feels different from a quiet room without one, and that is the entire product.

[CatPod](https://swiftfox.studio/apps/catpod) is a pixel-art cat that lives on macOS, with one addition
that changes what it is for: a focus timer whose completed sessions are what
feeds the cat. Everything below is in the shipping version.

## The cat, and where it lives

The cat sits in a window on your desktop. It has moods and animations that shift
with two stats it carries - **energy** and **happiness** - and it idles, sleeps
and reacts rather than looping one animation forever.

![The CatPod pixel cat sitting on a macOS desktop, awake and idling beside open windows](https://swiftfox.studio/catpod/listing/shot-1.jpg "The cat lives on the desktop rather than in a window you have to keep open.")

Turn on **Roam on Desktop** and it stops staying put: it wanders along the bottom
edge of the screen, above the Dock, picking its own path. It does not wander
through a focus session: it walks to the nearer edge and curls up there for the
length of it, which is the detail that makes roaming usable at all - a cat
crossing your screen is charming right up until it is doing that while you are
trying to work. Leave the desk for three minutes and it falls asleep with a Zzz,
and coming back earns a stretch. Turn roaming off and it stays where you left it,
which is the setting for people who like the company but not the movement.
Clicking it pets it, hearts float up, and after a minute's cooldown that pet also
counts for happiness, up to a daily cap - deliberately, so affection cannot be
farmed and the cat cannot be maxed out by clicking at it for ten minutes.

Both stats decay slowly while you are away, on the order of a point every forty
five to ninety minutes, with a floor underneath so the cat is never in real
trouble. It is a pet, not a Tamagotchi you can kill by going on holiday.

## The focus timer that feeds it

The timer is where the two halves connect. You start a session, the cat curls up
beside you, and finishing the session feeds it energy.

![A CatPod focus session running, its countdown above the cat's energy and happiness bars](https://swiftfox.studio/catpod/listing/shot-2.jpg "A session in progress. Finishing it is what feeds the cat.")

Three chips cover most of it - **15**, **25** and **50 minutes** - and a slider
runs anywhere from 5 to 120 when none of them is the shape of what you are doing.
The names come from the length rather than the chip, and you meet them at the end:
a session up to half an hour is a **Catnap**, up to an hour a **Deep Purr**, and
anything longer a **Marathon Mew**.

Sessions finished on the same calendar day stack a **combo**, which multiplies
what the next one is worth, rising to a cap at the fifth session of the day. The
combo resets at midnight. Abandoning a session part-way costs a couple of points
of happiness and clears the combo, which is the only negative feedback in the
entire app - and it is small on purpose. Guilt is what makes people uninstall
productivity software.

## Streaks, milestones and one forgiven day

A day with a completed session extends your streak, and the streak is the number
most people end up caring about.

![The CatPod stats view showing the current daily streak, its milestones and the available streak freeze](https://swiftfox.studio/catpod/listing/shot-3.jpg "The streak, its milestones at 3, 7 and 30 days, and the freeze that covers a missed day.")

Milestones unlock at 3, 7 and 30 days. More usefully, the cat holds a **streak
freeze**: miss a day and the freeze is spent instead of the streak breaking. It
refills on its own over time and caps at one, so it covers the bad Tuesday
without turning a streak into something meaningless.

That single mechanic is the difference between a streak that motivates and one
that punishes. A chain of forty days that a single fever wipes out does not make
you work on day forty-one; it makes you delete the app.

## The milestones, and what earns them

Six milestones sit under the streak, and there is nothing else underneath. Three
are the streak itself - three days, seven, thirty - and three come from the timer:
your first finished session, five sessions finished in one day, and one session of
sixty minutes or more. That last one is worth knowing about, because the 50-minute
chip does not reach it; it wants the slider.

They live in Stats, each row showing either the day you earned it or the one line
that says how to earn it, and the Stats button carries a dot until you have
looked - a milestone normally unlocks with the popup closed, so without it a
thirty-day streak would land in silence.

They are badges, not currency - nothing in the app is gated behind them, no screen
asks you to collect the set, and there is nothing to spend anything in. There are
no XP, no levels and no bond score.

All of it is reachable from a menu bar popup, which is the deliberate split: the
cat lives on the desktop where you can see it, and everything you might want to
adjust lives in the menu bar, where it is not in the way.

## The settings you will actually touch

There are six worth knowing about, and they all sit in General.

**Roam on Desktop** and **Walk on top of the Dock** decide whether the cat moves
and where its floor is - along the Dock's top edge, or along the very bottom of
the screen. Together they are the difference between a pet that sits in one corner
and one that crosses the screen, which is also the difference between the people
who find that charming and the people who find it unbearable.

**Cat lives on** decides which display the cat roams. The default follows the
pointer: a couple of seconds on another screen and the cat walks in from the edge
it would have crossed, keeping whatever it was doing - a session curls it up again
on the new screen, an empty desk keeps it asleep. You can pin it to one display
instead, and unplugging that display moves the cat without rewriting the choice,
so reconnecting brings it home.

**Step aside for full-screen apps** parks the cat while another app runs full
screen on its display - a presentation, a film, a game - and puts it back exactly
where it was. A merely zoomed window does not count. Turn it off if you want your
cat over the film.

**Start break automatically** chains a break onto a finished session and the next
session onto that break. It is what turns the timer from something you restart
into something that runs the afternoon, and it is equally the setting to leave off
if you would rather each session stayed a decision.

**Appearance** is Auto, Light or Dark, with Auto following the system, and the
language picker covers English, Turkish, German and Spanish.

The rest of the popup is a keyboard away: roaming, the stats window, Settings and
Quit all carry a shortcut, so nothing needs the pointer to land on a moving cat.

## What it deliberately does not do

It does **not block anything and does not watch what you do**. There is no
website list, no app monitoring, no report at the end of the week telling you
that you spent three hours somewhere. The timer only knows whether a session you
started was finished.

There are **no ads, no account and no third-party tracking**. The cat, its stats
and its history are Core Data on your Mac and go nowhere.

The animations are deliberately **small and quiet**. The cat is a few dozen
pixels doing very little; if it demanded attention it would be a game, and a game
on a work machine is the opposite of what this is for.

## What it costs, and what else to look at

CatPod runs on **macOS 14 or later**, on Apple Silicon and Intel, and takes about
40 MB. It is **pay what you want** with a suggested price of $3.99, and that
genuinely includes zero. The full specification is on
[the CatPod page](https://swiftfox.studio/apps/catpod).

CatPod's timer is a reward loop, not a method. If what you want is the actual
Pomodoro structure - work, short break, long break, cycles - that is
[Pawodoro](https://swiftfox.studio/apps/pawodoro), which pays out its own break in cat videos and is
covered in
[a menu bar Pomodoro timer for Mac](https://swiftfox.studio/handbook/menu-bar-pomodoro-timer-for-mac). If what
you want is not a timer at all but the one task you committed to, visible all
day, that is [Anchored](https://swiftfox.studio/apps/anchored). There is a comparison of all three in
[the best focus apps for Mac](https://swiftfox.studio/blog/best-focus-apps-for-mac).
