Look away.
Poppet keeps watch.
A desktop pet that works while your coding agent works, celebrates when the turn is done, and holds up a note until you're back.
ls characters/ | head -6
all 37 characters →Night-shift typist
Types while an agent works, stops when it is done.
Kiln Dragon
Forges a star in its kiln while an agent works, then hands it to you.
Little Racer
Drives while an agent works, brakes and flashes a V when it is done.
Moon Fisher
Reels in slowly while an agent works, catches a meteor when it is done.
Skywriter
Circles its cloud while an agent works; when it is done, writes a check mark in the sky in rainbow smoke.
Wheel Hamster
Runs in its wheel while an agent works; when it is done, tumbles out and holds up a seed for you.
poppet --privacy
Close to your code. Never in it.
Poppet only needs to know that a turn started, that it's working and that it's done. So that is all it looks at. What you and your agent say stays between you.
Never reads the conversation
From each log line it keeps a few structural fields, such as the event type and a timestamp, and drops the rest as it reads. Prompts, replies, code, file contents, command output and session titles are never read.
Online only to update
No analytics, no crash reports, no account. Poppet goes online to check for updates to itself and its characters, sending only its version number, and to activate Pro with Lemon Squeezy. Turn automatic checks off and it waits until you ask.
Counts seconds, not keystrokes
To tell whether you've stepped away, it asks macOS how long ago you last typed or moved the mouse. It gets a number of seconds, never which keys.
Asks for almost nothing
No Accessibility, Screen Recording, Input Monitoring or Full Disk Access. The one permission it asks for is to bring your Terminal or iTerm2 tab forward when you click Poppet.
Characters stay offline
Characters run in a page that blocks every network request, and only characters signed by Poppet install. One changed after signing is refused.
Signed and notarized
Built with Apple's hardened runtime, signed with a Developer ID and notarized by Apple, so macOS checks it before the first launch.
Check it yourself. This prints every signal Poppet reads, as it reads it:
/Applications/Poppet.app/Contents/MacOS/Poppet --signalsEverything it reads, line by line →cat pricing.txt
Free
$0 forever
- Every feature of the app
- The free characters
- Sessions, sounds, sizes, both languages
- Early access: $5.00 (50% off) →
Pro
$9.99 once
- Every standard character in the gallery
- Every standard character added after you buy
- One key for up to 3 Macs
Pro includes every standard character in the gallery, and every standard character we add later. Collaborations and artist series are sold separately, with a discount for Pro.
What keeps Pro fair
- Only ever more. A character that is part of Pro stays part of Pro. Nothing is taken out later to be sold again.
- Extra only with a reason. If a collaboration is ever sold separately, it's for a reason you can see: a license to pay, or an artist to share with. Anyone can buy it, with a discount for Pro.
- Standard characters keep coming. New standard characters arrive in the gallery and reach the app without an update, so Pro keeps growing.
- No account. Buy once, get a license key, activate it in the app. No sign-in, no subscription, no checking back after activation.
One-time payments in US dollars, handled by Lemon Squeezy, the merchant of record. No account, no subscription. Terms · Privacy
works with
Claude Code, Codex, GitHub Copilot and Grok Build, in a terminal or their own apps. macOS 12 or later.





