Launching today

Notchling
A little creature that lives in your MacBook notch
87 followers
A little creature that lives in your MacBook notch
87 followers
Notchling is a tiny creature living in your MacBook notch. It watches your cursor, dozes off when you idle, feels your battery, and when you drag a file at it, it opens its mouth and carries it for you. Free, under a megabyte, and nothing leaves your Mac.






Crew
@ravindra_sisodia1
Its body language IS the interface" is a sharp design thesis, rare for a utility that actually commits instead of hedging with a settings panel. Most notch apps race to cram in more controls, going the other way, one creature reacting to what you're actually doing, is the harder and more interesting choice. The hold-to-time detail, 5, 15, 25 minutes with a chirp at the end, is what elevates it past a novelty, since it turns idle screen real estate into something you use on purpose. Under a megabyte for all of that is real restraint.
Crew
@alex_gidirim Thank you, that is the read I hoped someone would have.
The no-settings-panel part was the decision with a real cost attached. If there is no panel, every default has to be right, and you only find out whether they are when strangers use it. Two people found genuine bugs in the first few hours today, and both were places where a default was wrong rather than a feature being missing. I would still make the same call, but it is not the cheap choice.
The timer is there for exactly the reason you named. A menu bar countdown is something you set and forget about. A creature holding your five minutes is something you glance at, and glancing at it is the point.
On the size: it is 775 KB as of a few hours ago, and it got smaller today while gaining album art and browser music, because I finally stripped a symbol table it was never reading. That felt like the most on-brand bug I fixed all week.
@ravindra_sisodia1 I like how the creature itself becomes the interface instead of just another dashboard sitting in the notch.
Crew
@oliver_graf1 Thank you. The constraint turned out to be the useful part: a dashboard can show you everything at once, a creature can only say one thing at a time. That forced me to decide what actually deserves your attention, and most of what a notch app usually shows did not survive that.
Congratulations on the launch @ravindra_sisodia1 ! I tried it out and it's very cool. A couple of areas of improvement:
I am not being able to drop more than one file
When I want to remove the one file that it's accepting, the "cross" button flickers and it's hard to get it right the first time.
Crew
@seomaxtech Thank you Soumyadip, and thanks for actually putting it through its paces, both of those were real.
The multi-file drop turned out not to be my drop handler at all: SwiftUI wasn't handing over every item in the drag, so only the first one arrived. It now reads the drag directly instead of trusting that, and a multi-selection lands whole.
The cross was a better bug. It's only clickable while the chip is hovered, and the notch had a single hover threshold, so a hand resting near the edge crossed it constantly, and every wobble pulled the button out from under your cursor.
Your click then landed on the chip and opened the file. There's hysteresis on the hover now, plus a grace period so once the cross appears it stays clickable for a beat. It should feel like a button.
Both are live in 1.10.1 — same link, just download again. Genuinely useful report; that second one had survived two of my own attempts at it.
@ravindra_sisodia1 Reinstalled, everything works perfectly now. Love it!
Crew
@seomaxtech Thanks!
The “body language is the interface” part is probably the most interesting thing here.
I’d be curious what happens when several states compete at once , low battery, timer finished, agent waiting, Wi-Fi dropping, etc.
How do you decide which reaction gets priority without making the creature confusing?
Crew
@niyam_paneru Good question, and it is most of the design work.
Three things keep it from getting muddy. First, the channels are independent: the eyes, the mouth, the thought bubble and the body size each resolve separately. So low battery can own the bubble while a file arriving owns the eyes and the mouth. Most of your examples never actually compete, because they are not on the same channel.
Second, within a channel it is an explicit ordered list and first match wins. On the eyes that order is: camera on, blink, a file coming at it, battery critical, Caps Lock, chewing, yawning, shushed, tired. Privacy is first on purpose. If your camera is on, it shuts its eyes and nothing outranks that. After that, what you are doing beats what your Mac is doing, so a file arriving wins over a yawn.
Third, and this is the one that actually prevents confusion: I separated events from conditions. Battery going critical is not a state it sits in, it is a single worried glance at your battery icon that then lets go. Wi-Fi dropping is one puzzled look around. If those were persistent states you would end up with a creature stuck in a permanent panic face, which is exactly the failure mode you are pointing at.
The bubble has its own order too, and "an agent is blocked waiting on you" is first in it, above every ambient thing, because that is the one you lose money by missing.
Crew
@niyam_paneru Good question, it is most of the design work. Three things: the channels are independent, so the eyes, the mouth and the thought bubble each resolve separately and most of those states never actually compete. Within a channel it is an ordered list, first match wins, and privacy is first: if your camera is on it shuts its eyes and nothing outranks that. And I separated events from conditions, so battery going critical is one worried glance at your battery icon that then lets go, not a state it sits in. That last one is what stops it becoming a permanently panicked face.