---
title: "How we built Gobbl, a pet that lives in your Mac's notch"
description: "Gobbl went from first commit to a notarized release in a day. Why the pet is a computer, how it types along with you, and the dictation that was too slow."
date: "2026-09-15"
app: gobbl
kind: build
readingTime: "6 min read"
image: "/img/build/gobbl/notch-home.jpg"
imageAlt: "Gobbl's notch home tab: Gob the pet with its level, a track playing with controls, and the next meeting with a Join button."
---

Gobbl is a free, open-source notch app for the Mac with a pet in it: Gob, a small retro computer whose screen is its face. We built it with Claude Code in a single day, from the [first commit](https://github.com/xeveio/gobbl/commits/main) in the afternoon to a notarized release that evening, and most of the interesting decisions were about the pet rather than the plumbing.

## A pet that is a computer

The notch is dead space on every recent MacBook. A shelf for files, a clipboard, music controls: those are useful, and they are also what you'd expect. What makes a notch app something you notice every day is personality, so Gobbl had a character from the first commit.

The first version was a blob. It worked, but it didn't feel like it belonged on a Mac. So Gob became a little computer, in three models: Classic, Compact and Candy. Its face is drawn on its screen, and that turned out to be the most useful design decision in the project, because a screen can show things a face can't.

When an AI coding agent is working, Gob's screen fills with falling green code. When the agent stops to think, Gob looks up and a thought bubble appears. Claude Code and Codex report their status to the notch, and you can allow or deny a Claude Code permission request without leaving what you're doing.

![Gobbl's Agents tab with three coding-agent sessions: one needing permission, one done and one working](/img/build/gobbl/notch-agents.jpg)
*The Agents tab: one session needs permission, one is done and one is working.*

## Eyes that follow you

Once Gob had a face, it needed to feel alive. This was the prompt:

> is it possible to make the eyes look at where the mouse is moving automatically ? and when we are typing anywhere on the screen show some nice animatino?

The eyes were the easy half. Gob reads where the pointer is and moves its pupils toward it. The harder part was cost. A pet that sits in the notch all day can't redraw constantly, so at rest Gob only redraws when it blinks, and it switches to smooth animation only while something is happening: the pointer moving, music playing, an agent at work.

Typing was trickier, for a privacy reason. Gobbl never records which keys you press, only that a key went down. At first Gob just hopped along with each press. That got a follow-up:

> instead of just jumping around , can we make random characters in the monitor along with the jumping so its visibl when the uer is typing ?

So now Gob's screen fills with made-up characters, one per key press, under a blinking cursor, and the newest one flashes. None of them are the letters you typed. Only the count of presses drives it, and after a pause the screen starts fresh.

## Computers don't hatch

Early on, a new pet arrived the way pets do in games: out of an egg. Then this prompt landed:

> I think instead of hatching we need to add something else since computer don’t hatch

It was obviously right. Gob now arrives in a cardboard box. You open it, the screen switches on the way an old CRT does, a bright line first and then a picture, and Gob says hi. It's a small change, but it's the moment people remember, and it only works because the character and the story agree with each other.

## The dictation that was too slow

Gobbl's right Option key writes and rewrites text in any app, and holding it down dictates. Dictation runs Whisper on the Mac, so your voice never leaves it. The first real test came back with this:

> i tried wisper now but looks like too slow and nothing was filled

It turned out to be two problems stacked on top of each other. The model we had picked as the default, Whisper's large Turbo model, is built to run fast on Apple's Neural Engine, and before it can run there, macOS compiles it for that chip. On the test Mac that compile [ran for over ten minutes](https://github.com/xeveio/gobbl/blob/main/Gobbl/Dictation/Dictation.swift) without finishing, so the first dictation was waiting on a model that wasn't ready yet. That was the "nothing was filled".

Moving the model to the GPU removed the wait and exposed the second problem. On the GPU, Turbo took about three seconds to transcribe a three-second sentence, because its large audio encoder only gets fast on the Neural Engine. That's far too slow for dictation.

The fix was a smaller model. Whisper Small on the GPU is accurate for everyday speech, and it's the default now, with Turbo still there for anyone who wants the most accurate option. Gobbl also warms the model up at launch with a moment of faint noise rather than silence, because on silence Whisper skips half its work, and the first real dictation would pay for the rest. The result is dictation at [about half a second per sentence](https://gobbl.xeve.io/dictation) on Apple silicon.

## A memory that asks before it assumes

The last big piece was Memory, an opt-in feature that reads the text on your screen through macOS Accessibility, never screenshots, and keeps everything on the Mac. We planned it before writing any of it, and the plan changed the design.

To-dos that Gobbl finds are suggestions, never confirmed tasks, and each one carries its own proof of done: a "payment successful" page on the same site, or a reply in the same chat. When that proof appears on screen, the to-do ticks itself off, with Undo. People merge automatically only on a hard match, like the same email address. Anything softer becomes a question: same person?

![Gobbl's chat in the notch answering "What's on today?" and setting a reminder for 5:00 PM](/img/build/gobbl/notch-chat.jpg)
*Chat in the notch, answering "What's on today?" and setting a reminder for 5:00 PM.*

The daily summaries needed one more pass. In testing, a summary claimed a train ticket had been booked when the screen had only shown train times. Now a summary says something is done only when the text says so, and otherwise it says what you worked on.

## What we took away

The pet is the product. Every feature got better once it went through Gob: agent status became falling code, typing became a screen full of characters, and a fresh install became an unboxing. The less glamorous work, like making dictation fast, mattered because it had to keep up with a character people actually want to look at.

Gobbl is free and open source for macOS 14 and later, and you can download it at [gobbl.xeve.io](https://gobbl.xeve.io).
