The guide: everything it does.
The complete feature list · so you know exactly what you're getting
Charmling is a $14.99 Mac menu bar app: a hand-crafted lucky charm on a real elastic cord, a small toolbelt of utilities, and a private on-device AI that can remember your day. This page is the whole app, feature by feature, shortcut by shortcut. If it isn't on this page, it isn't in the app — and everything marked beta is early by honest admission, shipped off by default, and improving with every release.
The charm
Ninety-nine charms, each a real object somebody somewhere hangs for luck — a Drishti Bomma from Telugu India, a Gōtoku-ji beckoning cat, a Daruma, a four-leaf clover — each with its origin story written into the app. Pick from categorised shelves or search the whole collection with artwork visible. The hundredth charm is yours: any emoji, or your own photo cut out and set in a gold locket on your Mac (how that works).
The cord is real physics. Grab the charm and pull — the cord stretches, goes taut and snaps back. Quick-click to flick it, drag to throw it. Every charm has its own ritual — catch a glance with the Drishti, ring the Zhaocai bell, loose the bull — one click, with sparkles.
Appearance: three sizes, four positions (under its menu bar icon, left, centre, right) plus custom — hold ⌥ and drag the charm anywhere. Four cord lengths, short to extra long. Hide Charm tucks it away without quitting; Click-Through Mode makes it untouchable so it never eats a click meant for the window behind it (⌘-click still works).
Which monitor it hangs on
Under Charm Position ▸ Display. On one screen this doesn't appear — a choice with one option is just something to read.
Automatic is the default and it follows your menu bar. With Displays have separate Spaces switched on in System Settings, macOS draws the menu bar on whichever screen you are working on, and the charm goes with it — so it is always on the screen you are actually looking at. Or pick a monitor by name and it stays nailed there whatever you do.
If you unplug that monitor the charm falls back to Automatic rather than hanging on a screen that no longer exists, and the tick in the menu moves to Automatic so what you see matches what is happening. Plug it back in and pick it again.
Before this, the charm was pinned to your primary display whatever you did — if you worked on the second screen, it was quietly hanging on the other one.
Wander Mode snips the cord and lets the charm roam your desktop. Play holds the fidget toys: Flick, Bless (sparkles on demand), Cat-Toy Mode (it chases your cursor), and the sound toggle.
The Garden
Two charms are alive. The bonsai grows from seed to flower through six carved stages; the dragon hatches from its egg through five. Real days pass between stages — you water or tend roughly twice a day, and the charm shows its thirst on its face. Miss a week and growth simply pauses; they never die, never run away, and are never sold to you twice. A quiet chime (optional) tells you when one needs something, and a 30-second preview plays a whole life if you want to see where it's going.
The toolbelt
📸 Screenshot
Area Screenshot (⌃⌥S) — select a region; it saves to Pictures → Charmling Shots and lands on your clipboard ready to paste. Slingshot Takes a Screenshot makes flinging the charm capture one — the most satisfying way to take a screenshot on any platform.
Text Grab (⌃⌥T) — select a region and the words in it are copied, not the pixels. Text in an image, a slide on a video call, an error dialog, a PDF that won't let you select — on-device OCR reads it and puts it on your clipboard. The picture only ever exists in a temporary file that's deleted the moment it's read.
⏳ Focus Timer
15, 25 or 45 minutes (⌃⌥F starts 25, or stops the session that's running). The cord winds visibly shorter as the minutes pass; the menu bar shows the countdown. Finish and you get confetti and a break notification. A session even survives quitting the app — relaunch and it resumes where it left off.
Presence & wellbeing
Stay Active (⌃⌥G) keeps you green on Teams and Slack while you read something on paper, think, or take a call. Keep Mac Awake (⌃⌥K) holds your Mac open through a long render, download or install — fireflies drift around the charm while it's holding the lights on. Stretch Break taps you on the shoulder every 45 minutes. Each is one click (or one shortcut) on, same off.
🧲 The Shelf, and the four things it does
Drop files on the charm and they hang in a woven basket under it — a parking spot for the attachments, screenshots and downloads of right now. Drag them out when you need them, or empty the shelf in one click. Drop something readable in there — a PDF, a slide deck, a photo of a page — and it can also quiz you on it.
Once something is in the basket, 🧺 Do Something With Them appears in the menu. Four things, all of them done on your Mac with no network and no model involved:
| What | It does |
|---|---|
| Zip Them Together | One archive, written beside the files. Drop several and it expands into one tidy folder named after wherever they came from; drop one and you get thatfile.zip. |
| Convert Pictures To… | JPEG, PNG or HEIC. Anything in the basket that isn't a picture is left alone and the charm tells you how many it skipped. |
| Shrink Pictures to Fit an Email… | Under 5, 10 or 25 MB. It spends quality before it spends resolution, because a slightly softer photo is far less noticeable than a smaller one — and it only starts scaling down once the quality budget is gone. You get a new -small.jpg beside the original. |
| Move Them To… | Pick a folder and they go there. This is the one action that moves your originals, and only the files that actually arrived leave the basket. |
Your originals are safe. Zip, convert and shrink all write new files next to the originals and never touch, rename or delete what you dropped in. Nothing ever overwrites a file that already exists — if the name is taken, it writes "name 2" instead. Only Move Them To… moves anything, and it says so in its own name.
Pictures only for convert and shrink, for now. A PDF can be shrunk too, but the honest ways to do it either lose the text layer or can't promise to hit the size you asked for, so it isn't in there yet rather than being in there and disappointing.
Doing it from the keyboard
All four have shortcuts, so a file you have just dropped on the charm can be dealt with without opening the menu at all. They work anywhere, in any app.
| Keys | Does |
|---|---|
| ⌃⌥Z | Zip them together |
| ⌃⌥J | Convert the pictures to JPEG |
| ⌃⌥E | Shrink the pictures under 10 MB — E for email |
| ⌃⌥M | Move them to… |
Only one size and one format get a key: 10 MB, because it clears every mail server anybody is likely to be sending through, and JPEG, because three shortcuts for three formats would be three things to remember for two you would rarely reach for. Every other size and format is still one click away in the menu, which also now shows these keys beside each action.
Fire one at an empty basket and the charm says nothing in the basket rather than doing nothing. From the menu you can see the basket is empty before you click; from the keyboard you cannot, and silence would read as a broken shortcut.
How the shrinking actually works
It spends quality before it spends resolution. A photo saved at slightly lower quality is far harder to notice than the same photo made smaller, so the app searches for the highest quality that still fits under the size you asked for, and only starts scaling the image down once that budget is gone. Five rungs of scale, six quality steps at each — and if a picture genuinely cannot be squeezed under the limit, it says so rather than handing you something ruined.
Zipping several files stages them first, so the archive expands into one tidy folder named after wherever they came from, rather than spraying loose files across your desktop. Drop a single file and you just get thatfile.zip beside it.
Where the idea came from. A shelf you can only empty is a bucket. Other Mac utilities have had verbs on their file trays for a while — this is Charmling's version of that, done the way the rest of the app works: entirely on your Mac, no network, no model, and never touching the file you dropped in.
The assistantbeta · needs Apple Intelligence
⌘-click the charm (or press ⌃⌥A anywhere) and a small panel drops beside it. The AI is Apple's on-device model — no account, no API key, no cloud, and it works on a plane. Ask it anything; ask it about your day and it answers from Day Memory (below). Agent Actions turn "remind me to call Sam tomorrow 9am" into a real Reminder and "block 30 minutes after lunch" into a real calendar event — and every action shows you exactly what it wants to do first. Do It or Cancel. You are always the final word.
📚 Quiz Meneeds Apple Intelligence
Charmling can test you on what you've been studying. There are three versions of it, they answer different questions, and they need different things switched on — so here they are side by side before the detail.
| Which one | Tests you on | What it needs |
|---|---|---|
| Quiz Me on your files | The files you dropped in the basket | Nothing switched on. Just Apple Intelligence |
| Quiz Me (your day) | What you read on screen today | 🧠 Day Memory on · Screen Recording · Pro |
| ⚡️ Sprint Quiz | What you studied in one focus session | Sprint Quiz on · Screen Recording · Pro |
Quiz Me on your files — the drag-and-drop one
There is no quiz mode to turn on. This one works out of the box. It never looks at your screen, so it needs no Screen Recording permission and no setting enabled — it reads only the files you hand it, and only while you're handing them over.
- Drag a file onto the charm. From Finder, your desktop, or straight out of a mail attachment. It drops into the woven basket under the charm and the charm says "quiz me? 📚" once it has finished reading.
- Ask for the quiz. Either hold ⌘ and click the charm (or press ⌃⌥A) to open the panel and press Quiz Me — or Control-click the charm and choose 📚 Quiz Me on These Files. You can also just type "quiz me" into the panel.
- Answer. One question at a time with four options. Press 1–4 or click. It marks you straight away, says why, and ↩ moves on. At the end you get a score and the offer of another go at just the ones you got wrong.
What it can read: PDFs, up to 40 pages a file. Word documents (.docx and
old .doc), OpenDocument, RTF and saved web pages. PowerPoint decks, Excel workbooks,
EPUB books. Plain text, Markdown, CSV, TSV, JSON, XML, subtitle files and the rest of that family.
And any image — PNG, JPEG, HEIC, a screenshot, a phone photo of a page.
A PDF with a real text layer is read directly; a scan, a photo or an image-only PDF page goes through Apple's Vision engine on your Mac instead. Word, OpenDocument, RTF and HTML are opened with macOS's own importers — the same ones TextEdit uses — so nothing is uploaded anywhere to be converted. Drop several files and it quizzes you across all of them at once.
What it can't read: Pages, Keynote and Numbers. Those keep their text in a private binary format that only Apple's own apps can open — there is no importer for it, and guessing at it would break with every iWork update. Drop one and Charmling says so and tells you to export a PDF or a Word file first, which takes about four seconds and then works perfectly.
Where "Quiz Me" sends you: if there's anything in the basket, Quiz Me is about the files. Empty the basket and the same button goes back to quizzing you on your day. That's the only rule — the basket wins while it has something in it.
It forgets when you do. The text pulled out of your files lives in memory for exactly as long as the files sit in the basket. Drag them out, deliver them somewhere, or hit Empty Shelf, and it's gone the same instant. None of it is ever written to Day Memory's log or anywhere else on disk — and your original files are never modified, moved or copied.
One footnote, so that claim stays exact. PowerPoint, Excel and EPUB files are ZIP archives, so reading one means unpacking it first. That happens in the system's temporary folder under a random name, and the folder is deleted before the read returns — including when the read fails. It is the only thing about this feature that touches the disk at all, it is gone within the second, and the file you dropped is untouched either way.
If it can't read something it says so rather than making questions up: a file with no text in it, or a document too thin to build a fair quiz from, gets an honest "I couldn't read any text out of that" instead of four invented questions.
Quiz Me on your day
With the basket empty, Quiz Me tests you on what you actually read on screen today — four questions drawn only from material you really looked at, and only when there's enough of it to be fair. This is the one that needs 🧠 Day Memory switched on, because that's where the material comes from.
⚡️ Sprint Quiz
Switch it on and it rides along with the Focus Timer: while a session runs it takes a quiet look at what you're reading every 90 seconds, skipping repeats of the same page, and when the session ends it quizzes you on what you covered. It fires even if you stopped the timer early because you finished the chapter. Nothing it sees is written down — the notes exist only until the quiz is built, then they're discarded.
How the questions are made
On your Mac, by Apple's on-device model, with no network involved at any point. Charmling asks the model for a structured quiz rather than a paragraph of text, so a question can't arrive without its answer attached, and the correct option is shuffled into place by the app rather than chosen by the model — which is why it doesn't mark right answers wrong. Every question has to be answerable from the material you gave it; the model is told, in as many words, never to test general knowledge that isn't in there.
Long documents still work. The on-device model can only read so much at once, and that is a hard limit rather than a setting, so a fat lecture packet is sampled across its whole length before the questions are written. You get questions from the end of a document as well as the beginning.
It's still a small model. A quiz is a good study aid and a bad examiner. If a question looks wrong, trust your notes over the charm — and the material it quotes is always something that was genuinely in your file, so you can go and check.
🔔 Live Scoresbeta · off by default · needs internet
The one feature in Charmling that talks to the internet, because there is no other way to know a score. Switch it on and the charm rings a bell the moment something happens in a match you follow — a wicket, a touchdown, a goal, a lead change — and the board shows you what it was. It is included in the app; there is nothing extra to buy.
Switching it on
Control-click the charm and tick 🔔 Live Scores (needs internet). Before anything is fetched, Charmling shows you a plain-English page explaining exactly what the request contains and what it does not. Nothing happens until you press Turn on live scores. Untick it and the fetching stops the same second.
Nothing else about the app changes. Your screen is still never read, Day Memory still never transmits, and every other feature works exactly as it did. This is the only connection Charmling opens for content, and it is off until you open it.
Choosing sports
Sports to follow appears under Live Scores once it is on, and it is a plain list of checkboxes — cricket first, because it is the one nobody else's menu-bar app carries. Twelve in all:
The list stays open while you tick. A macOS menu normally closes the instant you click anything in it, which would make following four sports a matter of opening the same submenu four times. These rows keep it up until you click away, so you tick what you want and leave.
| On out of the box | Also available |
|---|---|
| Cricket · NFL · NBA · Formula 1 | Premier League · Champions League · LaLiga · MLS · MLB · NHL · College Football · College Basketball |
Choosing which match
On a busy Saturday six things are on at once and only one of them fits on the cord. Show on the charm, under Live Scores, lists everything running in the sports you follow — playing now first, then about to start, then finished — and pins whichever one you pick.
Left alone it says Whatever is most interesting, and the charm follows the feed. Pin a match and it stays put until that match drops out of the feed altogether, at which point the pin quietly expires rather than leaving you looking at something that finished hours ago.
The list is built the moment you open it, never kept in step with the feed — a menu that rewrote itself under your pointer every few seconds would be unusable.
Following teams
Open the board: if the scoreboard has the cord, a tap on it opens the full list. Otherwise click the score line that sits under Live Scores in the menu. The board lists the matches you follow and everything else that is live right now, so a team you have never followed is still one tap away. Tap a match and its teams are starred — that is the whole interface; there is no form and no search box.
With no teams starred you get everything live in the sports you picked. Star even one team and you only hear about matches that team is in. Follow every team again, at the bottom of the Sports to follow menu, clears the list.
Your teams never leave your Mac. They are not sent with the request, because the request has nowhere to put them — see What it actually fetches below.
Where the score shows
The board is not a charm you collect. It used to be — you had to know it was called Scoreboard, go and find it in 🎐 Choose Charm ▸ Play, and picking it quietly cost you the charm you had chosen, with nothing anywhere saying so. It belongs to this feature now. 🔔 Live Scores ▸ Where the score shows is two lines:
| Setting | What hangs under your menu bar |
|---|---|
| On the charm you are wearing |
The default. Your charm, unchanged, with a small brass tag hanging below it on a short continuation of the same cord. The score is on the tag. The charm is not touched, not moved and not covered — it swings exactly as it did before. |
| On a scoreboard of its own |
The charm steps aside and a brass split-flap departure board takes the cord, with both sides of the match on it. Tap it and the full board of matches opens. |
Your charm comes back. Switching to the board writes down what was hanging there first, so turning the board off — or switching Live Scores off altogether — gives you your own charm again rather than dropping you on the default one. And going the other way works without a setting: pick any charm while the board has the cord and Charmling takes that as your answer, puts the charm back on and moves the score down onto its tag.
Either way the score also rides beside the icon in your menu bar, in monospaced digits so the menu bar stops shuffling sideways every time a total ticks over. Beside your charm's icon in tag mode; on its own in board mode, because a board whose whole point is a number you can read without clicking anything should not be showing you a picture instead.
The board is the one thing on the cord with no artwork file behind it. It is drawn fresh every frame from whatever the feed last said — brass case, dark face, twelve flaps a row.
On two screens, both shapes hang wherever the charm does — which by default is the display you are working on. Charm Position ▸ Display nails it to one monitor if you would rather it stayed put.
If you were already wearing the Scoreboard, nothing moves. Charmling reads that as on a scoreboard of its own, leaves the board exactly where it was, and simply gives you the setting that now explains it.
Reading the board
| Sport | Top row | Bottom row |
|---|---|---|
| Cricket | IND 248-4 — runs and wickets | The other side |
| NFL, NBA, football | KC 21 — home side | Away side |
| Formula 1 | VER — the leader, not a score | Lap 42/57 |
Twelve flaps a row, on a fixed pitch. That is deliberate: a proportional layout makes the whole line shuffle sideways when 9 becomes 10, and on a board you read out of the corner of your eye, movement that is not the score changing is a lie.
Silencing the bell
Silent alerts (no bell), under Live Scores, keeps everything except the sound: the cord still jolts, the charm still sparkles, the board still flashes and holds the event. Use it in a meeting rather than switching the scores off, because a wicket is worth seeing even when it is not worth announcing to the room.
The 🔊 Sounds item further down the menu is the bigger hammer — it silences every noise the charm makes, scores included.
What earns a bell
| Sport | Rings for |
|---|---|
| Cricket | A wicket, a six, a four |
| NFL & College Football | Touchdown, field goal, full time |
| Football, hockey | A goal, full time |
| NBA, MLB, College Basketball | A lead change, full time |
| Formula 1 | A new leader |
Cricket events come from the commentary where the source carries it, not deduced from the total — a jump of six could be a six, or a four plus two singles, and the commentary knows which. Two sixes off consecutive balls both ring, because the app compares the commentary line and not just the kind of event.
One bell per check, not one per event. If three things happen between two polls you hear a single bell for the most decisive of them: a wicket outranks a touchdown outranks a new leader outranks a goal outranks a six. A wicket changes a cricket match; a four barely moves it.
When the bell rings the cord takes a real jolt, the charm sparkles, the board flashes, and the event stays on the board for twenty-two seconds before the score comes back — so a glance a few seconds late still catches what happened.
The first sight of a match is never an event. Open your Mac at tea and you will not get a bell for every wicket that fell while it was shut. Charmling only rings for changes it watched happen, and it deliberately forgets the old scoreboard when your Mac wakes so a stale comparison cannot fire a hundred bells at once.
Where the scores come from, and how late they are
Charmling does not own a sports feed. It reads the public scoreboards ESPN publishes for its own site, the same numbers you would see on espn.com and Cricinfo. That is worth knowing before you rely on it.
| Sport | What the board can tell you |
|---|---|
| Cricket | Runs, wickets and overs for the side that is batting, plus the other innings, and — where the source carries it — a line about the ball that just went down. |
| NFL · NBA · MLB · NHL College Football & Basketball |
Both scores and the game clock or period. |
| Premier League · Champions League LaLiga · MLS |
Both scores and the minute. |
| Formula 1 | The leader's name, not a score — a race does not have two numbers. Before a race weekend starts there is no leader, so nothing is shown at all rather than a dash where a name should be. |
Expect to be about half a minute behind the television. ESPN is itself a few seconds behind the broadcast, and the charm is a little behind ESPN. If you are watching the match, the charm will not beat the screen. It is built for the times you are not watching.
Fixtures that have not been drawn yet are skipped. A tournament match with no teams named, or a season fixture months away, is a real row in the source and useless on a two-line board, so it never reaches the charm.
This is the one part of Charmling that can stop working without me touching it. Everything else — the charm, the physics, the timer, the basket, Day Memory — runs entirely on your Mac and cannot be switched off from outside it. Live Scores reads somebody else's public scoreboard, and that is a real dependency: it has already gone dark once for a day when one of those addresses started refusing us, and it can happen again. That is why it is labelled beta, why it is off until you switch it on, and why nothing else in the app depends on it.
It is included in what you paid, and there is nothing extra to buy. If keeping it running ever costs money, I will say so before anything changes — and nobody who has already bought Charmling will be asked for more.
What it actually fetches
Every few seconds your Mac asks one fixed address for one scoreboard. That is the entire network behaviour. The request has:
- no query string — there is nowhere to put a team or a sport even if it wanted to;
- no account, licence key or identifier of any kind;
- no cookies, and the connection is configured so nothing about it is written to disk.
What comes back is one scoreboard of every live match in every sport, the same for everybody. Your Mac picks your matches out of it here, which is why it never has to ask for yours. ESPN and Cricinfo never see you. Nothing is logged, and there are no parameters to log, so there is no per-reader answer for anyone to build. The one honest caveat is the caveat every website has: reaching an address means the address sees an IP, and there is no way to fetch a live score without one.
When the feed stops
A scoreboard that quietly shows you yesterday is worse than no scoreboard. If nothing has come back for ninety seconds, the board and the menu line both say not updating, so a feed that has stopped never looks like a quiet afternoon. The last good score stays on screen — labelled for what it is.
The timer does not run while your Mac is asleep, and it stops entirely if you switch the feature off, and it stops while the app is locked after the seven-day preview.
🗓 Day Shapeoff by default · no network
Meeting Radar answers what is next. This answers how much room do I have, which is a feeling rather than a fact, so it lives in how the charm moves rather than in a line of text.
Switch it on under 🪄 Agent Powers ▸ 🗓 Day Shape. Nothing else changes and nothing is sent anywhere.
What you feel, and what causes it
| What you feel | What drives it |
|---|---|
| Hangs low, sways short, settles quickly | The hours ahead are mostly booked |
| Swings exactly as it always has | Up to a third of the day booked — a normal day |
| Cord shortens, charm climbs toward the menu bar | Your next event is inside ten minutes |
It measures the next eight hours, capped at the end of your day so four in the afternoon cannot borrow tomorrow morning to look free. Under an hour left and it stops having an opinion.
How much it takes to matter
| Booked ahead | What changes |
|---|---|
| Up to a third | Nothing at all |
| Half | Noticeably steadier |
| Wall to wall | Hangs low, sways at about 40%, still moving |
Two deliberate limits. It can only ever make the charm calmer, never livelier — a free day is not extra energy, it is the charm you already have. That is why an empty calendar, a weekend, a revoked permission and the feature being off all behave identically. And it never goes completely still, because a dead charm reads as a broken app on exactly the day you would look at it.
What it does not count
- All-day events. A birthday is not eight hours of being busy.
- Anything you declined. You are not busy at something you said no to.
- Overlaps, twice. Three invitations to the same hour are one busy hour, not three.
It reads when things are, never what they are. Start times, end times, whether an event is all-day or cancelled, and whether you personally declined it. It never reads titles, notes, locations, URLs, or who else was invited. Checking your own attendance means looking at the attendee list for the one entry flagged as you — no other person's name or status is read. It uses the calendar permission Meeting Radar already asks for and asks strictly less of it.
Nothing is stored, logged or transmitted. The result of all of it is two numbers between 0 and 1.
What it stands aside for
A Focus Timer session already owns the cord, and a charm in Wander Mode is not hanging from anything. During either, Day Shape stands down completely and the charm behaves exactly as it does with the feature off.
🪢 Shared Cordoff by default · local network only
Two or more Macs on the same network hang their charms from the same string. Pull yours down and let go, and theirs swings a second later in their own menu bar.
There is no text in it and there cannot be. It is tugging somebody's sleeve from another room — with no way to explain yourself afterwards.
Setting one up
- 🪄 Agent Powers ▸ 🪢 Shared Cord ▸ Start a Cord… Charmling gives you four words.
- Read them out to whoever you want on the cord. They open the same menu and choose Join with Four Words…
- That is it. No account, no email, no sign-up.
macOS will ask once for Local Network permission. That is the only new permission this adds, and it is what lets the two Macs find each other.
If nobody ever appears, that permission is the first thing to check — System Settings ▸ Privacy & Security ▸ Local Network, and Charmling needs to be on. Declining it leaves the cord looking like it is simply waiting for somebody, because macOS gives an app no way to tell the difference between a network with nobody on it and a network it is not allowed to look at.
The second thing to check is that both Macs are on the same network — not one on wifi and one on a guest network, and not one of them on a VPN that routes everything elsewhere. Some office and university networks also block Macs from seeing each other on purpose, and no setting in Charmling can undo that.
What it can say
| Action | What the others get |
|---|---|
| Pull your charm and let go | Their charm swings, scaled to how hard you pulled |
| Being at your desk | Your charm shows as moving, or as away |
That is the entire vocabulary. Somebody pulled, and somebody is still here.
The door
Knowing the four words gets a Mac as far as the handshake. Being let in is a separate decision you make. Let New Charms In opens the door for ten minutes, and everyone who arrives in that window gets on — so read the words to the whole flat at once.
After ten minutes those words open nothing. A set that gets forwarded to somebody next week is worth nothing to them. Pairings themselves are permanent: once a Mac is on, it is remembered across restarts and updates until you undo it.
Forget Every Charm drops everyone and makes each one be let back in. That is the local equivalent of changing the locks rather than the key.
The rules that are not settings
- Nobody can put you on a cord. You type the words yourself, on purpose, or you are not on it.
- If you can see them, they can see you. One connection carries both directions, so there is no arrangement where one Mac watches another without being watchable itself. That is the shape of the thing rather than a checkbox somebody could get wrong.
- No history. The room has a present tense and no past. Who was present, and when, exists nowhere — not on disk, and not in memory past the moment it stops being true.
- No duration, no last seen. Working or away, and nothing that could be read as a timesheet.
- Leaving is one click and silent. Nobody is told, and you owe no explanation.
- Invisible keeps you feeling every pull while sending nothing.
- A pull is rate limited, both directions. A poke with no words in it can still be used to needle somebody two hundred times.
The cord reaches as far as your house, and that is a guarantee rather than a limitation. There is no server, no account and no address on the internet — the only address anywhere in this feature is a name your two Macs use to find each other on your own network. Nothing leaves the building.
It also means it cannot be pointed at somebody in another city. No manager can use this to see whether you are at your desk, because there is no mechanism by which it could reach you. Geography enforces what a privacy policy could only promise.
The four words are never transmitted. They become a key, and the two Macs prove they know it by answering a random challenge, compared in constant time. A stranger on the same café wifi sees a service advertised and gets no further.
The one honest limit: somebody who has the words, is on your network, and acts within those ten minutes can join. All three have to be true at once.
🧠 Day MemoryBonus · in beta · Pro
The headline feature, and the most carefully built. Switched on, your Mac finally remembers your day — privately, and it forgets on purpose. Every four minutes it takes one look at the front window, keeps only the text, and erases everything after 48 hours. It lives in one file on your Mac that you can open, read and delete yourself. Nothing ever leaves the machine (the proof · how it works in detail).
It reads text now, not pixels. Every app publishes its text to macOS so that VoiceOver can read it aloud, and that is what Charmling reads. Three things follow. It is exact rather than guessed at, so numbers and names come out right. It can see the actual link to the page you were on. And for most apps it needs no Screen Recording permission at all — the one macOS re-asks you about every month — because there is no picture involved. Apps that publish nothing, like a game or a PDF drawn as pixels, still fall back to the old screenshot path exactly as before.
What it will not record, ever: bodies of mail and chat apps — Gmail, Outlook, Slack, Teams, WhatsApp and the rest, native or in a browser tab — because other people's words are not your work; password managers and anything that looks like one; a built-in never-store list of adult sites; and anything while Private Mode is on. Numbers that look like cards, IBANs or secrets are redacted at the door.
Then just ask:
- Recap — what your day actually looked like, hour by hour.
- Standup — a paste-ready update, written from what was really on your screen. "Yesterday" works on Monday mornings too, thanks to the diary.
- Timesheet — measured blocks of time with honest totals, working-hours aware (9–6 weekdays by default, night shifts supported, "count every hour" if you'd rather). Every line is checked against the evidence so it never invents a client or project.
- Quiz Me students — four questions on what you studied today, drawn only from material you actually read, only when there's enough of it to quiz fairly. Drop files in the basket first and it quizzes you on those instead (all three quizzes, explained).
- Study Log students — an hour-by-hour record of what you covered, with honest study-time totals that don't count your scrolling.
Forgetting is granular: the last hour, everything from one app, or everything now — plus the timed Private for the Next Hour that switches itself back. The optional Diary (off by default) keeps one line per day — times, app names, window titles, one sentence — for 7 or 30 days, so "what did I do last Tuesday?" has an answer after the raw record is gone. Never any screen text; that still erases at 48 hours, as it always has.
🧵 The TrailBonus · in beta · Pro
Charmling keeps a trail, not a transcript. What was on your screen still erases after 48 hours — that has not changed and it is not going to. What lasts is where you have been: the app, the window's own name for itself, the link, when you arrived, how long you stayed, and one line of what it said. No page bodies, no screenshots, no keystrokes.
So "what was that camera site last month?" has an answer with a link in it, and "what did that page say?" does not. The second half of that sentence is the design, not an apology for it.
It is encrypted on disk under a key held in your Mac's own keychain, marked so that it never leaves this machine — not to another of your Macs, not into a backup. 🧹 Forget the Whole Trail deletes the files and destroys the key together, so anything that somehow survives the delete is unreadable.
🔍 Where was I?
Ask in your own words — "where did I see that thing about sensor sizes", "what was that website about camera reviews" — or press Where was I? in the assistant's MEMORY row. It looks for what you meant, not only what you typed, so it will find the page about Boeing that never actually said the word Boeing — while still matching an exact ticket number or a person's name when that's what you give it. All of it on your Mac, with nothing downloaded.
The answer is one sentence and then its sources, with the app, the date, the time and the site. Say “open 1” and it opens the page. The citations are read off the trail and never written by the model, so if the model has nothing useful to say the sources stand on their own and the answer is still true. Charmling never tells you anything you didn't see.
🧵 Threads
Your day as pieces of work rather than a list of windows: "three threads — the payments PR (1h50), the intake form (35m), a detour into camera reviews (12m)." Say “resume 1” and the pages from that thread reopen. It puts the desk back the way you left it.
Work that carries on after a short break stays in the same thread; a real gap starts a new one. A coffee break does not end a piece of work. Lunch does.
🕰 Déjà vu
Nothing to press. When you land somewhere you have spent real time before, the charm floats one line: 🕰 here 3 wk ago · 40m. Once per page, never twice for the same one, and never for something from the last two days — that is still in your head, and the charm saying so would be noise. Switch it off under 🧵 Trail.
✅ Open loops
Things you said you would do, picked up from your work — a ticket, a document, a PR — and never from Mail or Messages. That is partly a rule Charmling already kept, and partly an honest one: commitments made in messages belong to whoever can read your messages, and this app deliberately cannot. "I'll send the deck" and "will get that deck over" are recognised as the same promise and kept once. Say “done 1” to close one.
What it refuses to read
- Never a keystroke. Not a setting — there is no keyboard monitoring anywhere in the app, of any kind. It reads text apps have already finished and put on screen, so a half-typed message or a search you thought better of is never seen at all.
- A password field ends the read. If a secure text field is anywhere on the window, nothing is recorded and no screenshot is taken either.
- Money and health are off limits. Banking, payments, brokerages, tax, insurance, patient portals, pharmacy, therapy. Now that pages have real links this is possible for the first time.
- Private windows are not recorded. Safari and Firefox are recognised. Honest gap: Chrome, Edge, Brave and Arc don't mark an incognito window in any way another program can see, so for those your cover is the money-and-health list, the blocklist below, and Private Mode.
- Your own list. 🚫 Apps I Never Read… — one app name per line, and nothing from them is recorded, including that they were open.
The watchersbeta · each off by default · Pro
📅 Meeting Radar — the charm jingles about five minutes before each calendar event with an AI prep note built from the invite: purpose, what to have ready, one useful question — plus the join link pulled out of the invite so you're one click from the call. It skips meetings you declined and events that were cancelled, and if your Mac was asleep it still tells you about the meeting that just started. Read-only calendar access, on-device.
🎯 Focus Guardian — during a Focus session, a glance every three minutes checks you're still on the thing you started. Drift to social media and the charm tugs its cord: eyes on the prize. It stays silent during calls, and nothing it sees is stored.
⚡️ Sprint Quiz — finish a Focus session and get quizzed on what you just studied, even if you stopped the timer early because you finished the chapter. It looks at what you're reading every 90 seconds during the session and skips repeats of the same page, so the questions come from the whole sitting rather than whichever page happened to be open at the end (more on the quizzes).
📋 Clipboard Sense — copy a long article and the charm offers to summarise it; copy something in another language and it offers to translate. One ⌘-click. It reacts only to a fresh copy, ignores anything a password manager marks concealed, and the offer quietly expires if you ignore it.
Privacy, in one place
Private Mode (⌃⌥P) pauses every capture in the app instantly — memory, guardian, quizzes, clipboard, all of it — and the timed variant lasts exactly an hour. Every AI and screen feature ships off and is opted into individually, with a plain-English explanation before macOS asks for any permission. No accounts, no analytics, no tracking, no cloud. The memory file excludes itself from Time Machine so backups can't outlive the 48-hour promise. The whole story, with receipts: charmling.app/privacy.
Every shortcut
Global shortcuts work anywhere in macOS while Charmling is running — no clicking the charm first, no permission prompts. If a combo ever fights with another tool, the ⌨️ Shortcuts menu has one switch to turn the global set off.
| Shortcut | Anywhere on your Mac |
|---|---|
| ⌃⌥S | Area Screenshot — saved and copied |
| ⌃⌥T | Text Grab — copy the words in an area |
| ⌃⌥A | Open the Assistant |
| ⌃⌥P | Private Mode on / off |
| ⌃⌥H | Hide / show the charm |
| ⌃⌥W | Wander Mode on / off |
| ⌃⌥F | Focus — start 25 minutes, or stop the running session |
| ⌃⌥R | Perform the current charm's ritual |
| ⌃⌥K | Keep Mac Awake on / off |
| ⌃⌥G | Stay Active on Teams/Slack on / off |
| ⌃⌥Z | Zip whatever is in the basket |
| ⌃⌥J | Convert the basket’s pictures to JPEG |
| ⌃⌥E | Shrink them under 10 MB — E for email |
| ⌃⌥M | Move the basket somewhere |
| Gesture | On the charm itself |
|---|---|
| Click | Open the menu |
| Quick click | Flick it |
| Drag | Pull the cord — release to snap back; fling to throw |
| ⌘-click | Open the Assistant (works even in Click-Through Mode) |
| ⌥-drag | Move the charm to a custom position |
| Drop a file | Hang it on the Shelf |
| Tap | Open the live-scores board — only when the scoreboard has the cord; a charm flicks instead |
With the menu open, single keys work as accelerators too: ⌘R ritual, ⌘A assistant, ⌘S screenshot, ⌘T text grab, ⌘W wander, ⌘F flick, ⌘B bless, ⌘H hide, ⌘P private, ⌘Q quit.
The practical part
$14.99, once. One Mac, no subscription, free updates. The charm, the physics, the rituals, the Garden, Wander Mode, the Focus Timer, the Shelf and the screenshot tools are all complete without any AI — those work on macOS 13+. Screen-reading features need macOS 14+; the assistant and everything under Day Memory need Apple Intelligence (Apple silicon, macOS 26). Notarized by Apple, licence key in your inbox within a minute — and you try before you pay: the first seven days are free, built in, with a 7-day no-questions refund on top.
The honest list, in one line: every AI feature is beta and ships off, the app is complete without them, and the on-device model writes good first drafts that will sometimes miss the point of an hour — read your standup before you send it. The charm, the physics, the Garden and the toolbelt are not beta; they are the product. The AI gets better with every release, and Charmling picks up Apple's model improvements for free.
Home Roadmap Privacy How the memory works Make your own charm Licence Refunds support@charmling.app