EYO
A desktop
companion
A small dog walks along the bottom of your screen. Its journey is your working hour
EYO
MACOS1.0.0
Tauri · TypeScript · Native overlay
No timers · No pop-ups · No notifications
ONE HOUR · TWO LOOK-AWAYS · TEN MINUTES OFF
Eyo, a pixel-art corgi, facing forward
[ EYO · THE COMPANION ]
[ 01 — The Idea ]

A Tamagotchi that looks after you.

Just a dog that knows when you should look away.

Every tool built to protect your attention does it by interrupting you — a countdown in the corner, an alarm at :25, a banner that slides in while you are mid-sentence. The cure borrows the disease.

In the late nineties a plastic egg taught a generation to keep something alive: feed it, clean up after it, check on it before class. Eyo borrows that feeling and turns it around. The creature is the one doing the looking after.

It has no hunger bar and nothing to lose. It just walks, and you glance down and know roughly where you are in the hour. Nothing is measured at you. Nothing asks to be dismissed.

[ 02 — The Hour ]

One hour, told as a walk.

This is the 20-20-20 rule — every twenty minutes, look twenty feet away for twenty seconds — rebuilt as something you feel rather than read.

00:00
Walks, slowly, from the left edge
YouWork
00:20
Stops to play with a ball
YouLook at something far away, twenty seconds
00:20 – 01:00
Resumes the walk; the ball returns once more
YouTwo more segments
01:00
Reaches the far edge, sits, wags its tail
YouTen minutes away from the screen
01:10
Walks back to where it started
YouA new hour begins
[ 03 — The Journey ]

Five chapters, one walk.

The hour is not abstract. The dog is on a journey with five chapters — each one a place the rest reminder lives inside, instead of on top of. The cycle is five hours long; then a new journey begins.

[ 01 ]Hour one

Setting Out

The dog leaves the door, ears up, tail steady. A butterfly crosses the path.

[ 02 ]Hour two

The Woods

Dappled light. The dog stops, listens, then walks on. Leaves turn overhead.

[ 03 ]Hour three

The Stream

A small rainbow on the water. The dog pauses to drink, then keeps pace.

[ 04 ]Hour four

The Foothills

Higher ground. Wind picks up. The dog walks steadily, ears tilted back.

[ 05 ]Hour five

The Way Home

Familiar path. Tail wags again. The dog sits at the door and waits for the next morning.

Story lines currently ship in Chinese. English translations follow the same beat: place, weather, one quiet detail.

[ 04 — The Craft ]

The walk, frame by frame.

No skeletal rig, no procedural interpolation. Twelve frames, stepped twelve times a second.

Actual walk cycle · 12 fps · shown at 2×

Every step the dog takes is a hand-placed pixel sprite. The same character walks the bottom of your screen at 35 logical pixels and is never upscaled past twice that, so it stays crisp on Retina displays.

It is one character, one walk cycle, and a fixed colour palette. That is the entire art budget. Simplicity is the brand.

35 px source Pixel art Hand-drawn frames Fixed palette Retina-crisp
[ Sprite strip ]12 frames · 152 × 140 each
The twelve-frame walk cycle laid out as a horizontal sprite strip
Frames12 walk · 1 idle
Frame size152 × 140 px
Frame rate12 fps
Cycle length1.00 s
Display scale0.457× · ≈ 64 px tall
PathOne trip every ≈ 40 s
[ 05 — The Interface ]

There is almost nothing to look at.

No window, no dock icon, no dashboard. Nine menu items and a running clock.

The Eyo menu bar item: a small dog silhouette beside a running timer reading 0:00:56
[ 01 — Menu bar ]

The whole interface is one line in the menu bar.

A small dog and a running clock — the time you have been at this stretch. When a break starts the number turns around and counts down instead, so a glance tells you which side of the hour you are on.

The Eyo menu: Pause, Hide Pet, Launch at Login, Story Notifications, Restart Journey, Display, Reduce Motion, Quit Eyo, Skip Ahead
[ 02 — The menu ]

Everything it does fits in one menu.

Pause the journey. Hide the dog and keep the clock running. Choose which display it walks on. Follow the system's reduce-motion setting, or override it in either direction. Nine items, no preferences window, nothing to configure before it works.

[ 06 — Principles ]

What it refuses to do.

These are binding. A feature that conflicts with them is rejected, not negotiated.

[ 01 ]

Never interrupt.

No modal, no sound, no window that steals focus. If the dog needs to tell you something, it changes what it is doing.

[ 02 ]

Calm at every frame.

Animation eases; nothing snaps, bounces, or flashes. A companion that startles you is worse than no companion.

[ 03 ]

Health before productivity.

Eyo does not track output, count tasks, or score your day. It has one job: your eyes.

[ 07 — Under the Hood ]

Built the way I write.

Eyo is a Tauri application — a native macOS overlay with a TypeScript rendering layer that draws the dog frame by frame from sprite sheets.

It was built documentation-first: nineteen specification documents, each the single source of truth for the behaviour it describes. Changing what the dog does means changing a document first. 293 unit and integration tests keep the state machine honest.

StackTauri+ TypeScript
Specification19documents, written first
Tests293passing
Release1.0.0macOS
[ Status ]

Version 1.0, quietly.

Eyo 1.0 runs on macOS. It is in private testing while I watch how it behaves across long working days. If you would like to try it, or you are building something in this space, write to me.