Build a pixel desktop pet that relays messages to Claude Code

Designer Jessa Wolfe, who has ADHD, had Claude Code build Mochi in one day: a Swift Mac pet that sends her messages to Claude and pops up its replies.

Done withClaude Code· Oct 17, 2026

What they did

Wolfe, a product designer and not a Mac developer, runs Claude Code in Terminal across three or four projects and kept losing track of which tab it was in and when it had finished. She built Mochi, a small always-on-top Mac app with a pixel goo creature, by describing features to Claude Code one sentence at a time and reacting to each build. Claude Code wrote the Swift app and wired Claude Code hooks so Mochi knows when a message is sent and saves the first lines of each reply. Mochi pastes typed messages into the right Terminal tab, relaunches Claude with the last conversation if it is not running, reads visitor data from her portfolio's live database, and turns unread counts in open Chrome tab titles into badges.

How it went

She built it in one day and now uses it daily; she says it does more for her focus than any productivity app she tried. Two problems came up. Each rebuild looked like a new app to macOS, which dropped its permission to type into Terminal, fixed by giving Mochi its own signing certificate. The reply bubble first showed only the opening paragraph (once just a greeting), so it was changed to read on until the actual answer.

Worth knowing

Rebuilding an unsigned Mac app resets its accessibility permissions every time; sign it with a stable certificate early. The social badges only read tab titles already open in Chrome and never log in. The author gives no numbers on time saved.

Try it

With Claude Code· 4 parts to fill in

Build me a small always-on-top [macOS or Windows] desktop app in [Swift or language] that acts as a companion for Claude Code running in [Terminal or my terminal app]. Clicking it opens a text box; send what I type to the open Claude Code session, or start one with the last conversation if none is running. Add Claude Code hooks so the app shows a busy state while Claude works and a bubble with the first lines of the reply and the project name when it finishes. Give it [a simple character or style] with idle animations. Sign the build with a stable certificate so permissions survive rebuilds. Show me each build and wait for my feedback before adding the next feature.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related