← Charmling

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:

WhatIt 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.

KeysDoes
⌃⌥ZZip them together
⌃⌥JConvert the pictures to JPEG
⌃⌥EShrink the pictures under 10 MB — E for email
⌃⌥MMove 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 oneTests you onWhat it needs
Quiz Me on your filesThe 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 QuizWhat 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.

  1. 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.
  2. 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.
  3. 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 boxAlso 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:

SettingWhat 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

SportTop rowBottom row
CricketIND 248-4 — runs and wicketsThe other side
NFL, NBA, footballKC 21 — home sideAway side
Formula 1VER — the leader, not a scoreLap 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

SportRings for
CricketA wicket, a six, a four
NFL & College FootballTouchdown, field goal, full time
Football, hockeyA goal, full time
NBA, MLB, College BasketballA lead change, full time
Formula 1A 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.

SportWhat the board can tell you
CricketRuns, 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 1The 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:

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 feelWhat drives it
Hangs low, sways short, settles quicklyThe hours ahead are mostly booked
Swings exactly as it always hasUp to a third of the day booked — a normal day
Cord shortens, charm climbs toward the menu barYour 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 aheadWhat changes
Up to a thirdNothing at all
HalfNoticeably steadier
Wall to wallHangs 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

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

  1. 🪄 Agent Powers ▸ 🪢 Shared Cord ▸ Start a Cord… Charmling gives you four words.
  2. Read them out to whoever you want on the cord. They open the same menu and choose Join with Four Words…
  3. 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

ActionWhat the others get
Pull your charm and let goTheir charm swings, scaled to how hard you pulled
Being at your deskYour 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

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:

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

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.

ShortcutAnywhere on your Mac
⌃⌥SArea Screenshot — saved and copied
⌃⌥TText Grab — copy the words in an area
⌃⌥AOpen the Assistant
⌃⌥PPrivate Mode on / off
⌃⌥HHide / show the charm
⌃⌥WWander Mode on / off
⌃⌥FFocus — start 25 minutes, or stop the running session
⌃⌥RPerform the current charm's ritual
⌃⌥KKeep Mac Awake on / off
⌃⌥GStay Active on Teams/Slack on / off
⌃⌥ZZip whatever is in the basket
⌃⌥JConvert the basket’s pictures to JPEG
⌃⌥EShrink them under 10 MB — E for email
⌃⌥MMove the basket somewhere
GestureOn the charm itself
ClickOpen the menu
Quick clickFlick it
DragPull the cord — release to snap back; fling to throw
⌘-clickOpen the Assistant (works even in Click-Through Mode)
⌥-dragMove the charm to a custom position
Drop a fileHang it on the Shelf
TapOpen 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