FAQ
Answers to common questions, app by app
All Apps
Solace
40Solace is a menu bar app that keeps your Mac in step with the world outside. It switches light and dark mode automatically, warms your screen in the evening, swaps your wallpaper to match, and can even turn dark when the weather does. It replaces f.lux, a wallpaper switcher, and constant manual toggling with one small app.
Any Mac running macOS 13 Ventura or later. Solace runs natively on both Apple Silicon and Intel, and the whole app weighs in at around 3 MB, so it is light on disk and on memory. It lives quietly in your menu bar and stays out of your way.
Open the downloaded file and drag Solace into the Applications folder shown next to it, then launch it from Applications. It appears in your menu bar as a small sun or moon icon. On first launch a short three-step welcome walks you through the two permissions Solace uses, then asks for the licence key from your purchase confirmation email. Enter it, click Activate, and you are all set.
Solace is a menu bar app, so it deliberately stays out of your Dock and app switcher. Look at the top-right of your screen: a sun icon means light mode, a moon means dark mode. Click it to open the control panel, where everything lives: the mode switch, wallpapers, schedule, warmth, and weather. To quit, right-click the menu bar icon and choose Quit Solace, or press Cmd Q while the panel is open.
Two main ones. Location Services lets Solace work out your local sunrise and sunset, right on your Mac, so solar scheduling knows when to switch. Automation (controlling System Events) is how macOS lets any app flip dark mode, so you will see a system dialog the first time Solace switches: click OK. If you enable weather mode, Solace also asks to show notifications so it can tell you when a gloomy day activates dark mode. Location is optional and can be granted later from the Schedule section.
No. On a fresh install Solace respects whatever mode your Mac is already in. When the first natural transition arrives, a gentle prompt appears in the panel: "Switch to Dark Mode?" (or Light), with Switch and Keep Current buttons. Answer once and Solace switches automatically from then on. If automatic switching seems quiet on day one, open the panel; the prompt is probably waiting for you.
Open the Solace panel from the menu bar, click the small info button at the bottom-right, and turn on the Launch at Login switch. Solace registers itself with macOS the proper way, so you will also see it under System Settings, General, Login Items, and changing it in either place keeps both in sync. With it on, your Mac follows the day from the moment you log in.
Solace keeps itself current: it quietly checks for updates shortly after launch and every hour after that, and updates are free forever. To check on demand, open the panel, click the info button at the bottom-right, and choose Check for Updates. Your version number sits just under the Solace name in that same About panel. Every update is signed and verified before it installs, so what arrives is exactly what we shipped.
Solace follows the sun. It works out your local sunrise and sunset right on your Mac, recalculates them daily as the seasons change, and switches modes at each transition. Separate offsets let you shift sunrise and sunset independently by up to two hours, so dark mode can arrive a touch early or wait a while. Turn on weather mode and grey, overcast days go dark too. And you are always in charge: the mode card and the global keyboard shortcut toggle instantly from any app.
Of course. Click the big Light Mode / Dark Mode card at the top of the panel, or use the keyboard shortcut (Cmd Shift D by default), any time you like. Solace respects your choice and simply resumes at the next natural transition, sunrise or sunset. With weather mode on, a manual switch is remembered for the whole day, even through sleep or a restart, so a gloomy-day decision never overrides you.
Yes, and sunrise and sunset are adjusted independently. In the Schedule section, drag the sun or moon marker along the timeline to shift that transition by up to two hours either way. Or tap the time shown beneath it to open a small picker: choose Earlier, Exact or Later, pick an amount from 15 minutes up to 2 hours, see the new switch time previewed, then tap again to confirm. Handy if you like dark mode to arrive a touch before dusk, or light mode to wait until you have had coffee.
Each morning, shortly after sunrise, Solace looks at the forecast average cloud cover across the daylight hours ahead. If it meets your sensitivity threshold, the whole day runs in dark mode; otherwise it stays light. One decision per day means no flickering between modes as clouds pass. When a gloomy day activates dark mode you get a notification with the cloud percentage and a Keep Light button if you would rather stay bright. Nights are always dark, whatever the weather.
Yes. In the Schedule section there is an Enable button that turns the daily light and dark schedule on. When it is on, that same spot shows your location; to turn the schedule off again, click your location and choose Turn Schedule Off. While it is off, Solace stops changing your appearance on a schedule and leaves your current mode exactly as it is. Weather mode is separate and independent: if you have it on, it keeps working whether the schedule is on or off.
Yes. The Weather section has three sensitivity levels: Cloudy triggers dark mode from 50% cloud cover, Overcast (the default) from 70%, and Gloomy only from 90%, so Gloomy means dark mode is saved for properly grey days. Hover over each button to see its threshold. Changing sensitivity re-evaluates today's decision straight away using the latest cloud data, so you see the effect immediately.
Yes, nothing is a black box. Open the panel, click the info button at the bottom-right, then Weather Decisions. You will see the last ten daily decisions: the cloud percentage, the threshold it was compared against, your sensitivity at the time, the outcome, and what triggered it. The Weather section itself also shows the day's averages for cloud, rain, and UV, and you can click the temperature to flip between Celsius and Fahrenheit.
Yes. Pick a light wallpaper and a dark one, and Solace swaps them the moment your Mac changes mode. Your light wallpaper greets you each morning, and your desktop follows the sky at sunset with no prompt and no interruption. It works across all your displays at once, so multi-monitor setups stay perfectly in sync. Prefer to keep your own wallpaper? The Wallpapers section has an on and off switch: turn it off and Solace leaves your desktop alone, and your wallpaper goes back to how it was before.
Yes. Evening Warmth gently eases your screen from cool daylight (6500K) down to warm candlelight (1900K), on its own schedule or all the time. The transition is gradual, so there are no jarring shifts, and it resets automatically at sunrise. You can leave Night Shift on: Solace pauses it while warmth is active and restores it afterwards, and a Compatibility Mode brings warmth to the newest MacBook Pros.
You choose. The "Starts at" badge in the Warmth section offers three options: a fixed time (from 3:00 PM to midnight in half-hour steps; 8:00 PM is the default), Sunset (it follows your local sunset, including any offset you have set), or Always for round-the-clock warmth. Warmth eases in gradually over about 15 minutes rather than snapping. On a fixed time or Sunset it returns to neutral at sunrise; on Always it simply stays on. Drag the slider any time to preview a warmth level instantly.
No, leave Night Shift exactly as it is. While Evening Warmth is active, Solace pauses Night Shift so the two never fight over your screen, and keeps re-asserting your chosen warmth if macOS tries to interfere. When warmth ends, or you quit Solace, your original Night Shift setting is restored exactly as you had it. On the newest MacBook Pros, Compatibility Mode goes one step further and delivers warmth through Night Shift itself.
Yes. When your Mac wakes, Solace puts your warmth back immediately, and it does the same when just your display sleeps and wakes while the Mac stays on. macOS resets your screen's colour whenever it comes back, so Solace re-applies your warmth as the screen returns and keeps it in place afterwards. If you use Always, warmth stays on through a wake at any time of day. If you use a fixed time or Sunset, waking before your start time correctly leaves your screen neutral until that time arrives.
Yes. The default is Cmd Shift D, which toggles light and dark from any app. To change it, open the Solace panel and click the shortcut shown in the footer; it switches to "Press keys...", and whatever combination you press next becomes the new shortcut, saved instantly. Press Escape to cancel recording. If a combination will not register, another app has probably claimed it, so pick a different one.
Solace is a one-time $4.99. No subscription, no in-app purchases, and every future update is included free, with no upsells. Buy it once and it is yours forever, and it is backed by the same 14-day money-back guarantee as every THEODORE HQ app.
You can download the latest version any time from theodorehq.com/solace/download.html. Install it, launch it, and enter the licence key from your purchase confirmation email. After that, Solace keeps itself up to date automatically in the background. Cannot find your key? Check the confirmation email from Polar, our checkout partner, or email support and we will help.
Your licence key activates Solace on up to 3 Macs, so your desktop and laptop are both covered. If you ever hit the limit or need to move to a new machine, email support@theodorehq.com and we will sort it out.
Each Solace licence activates up to 3 Macs, and you can manage those devices yourself at any time. Sign in to your Polar account with your purchase email and you will see your licence key and the Macs it is currently active on. Deactivating a Mac you no longer use frees that slot immediately.
This is worth knowing if you reinstall macOS or reset your Mac, because a fresh install claims a new slot even on the same machine. Deactivating the old entry afterwards puts it straight back. If you cannot access the portal or something does not look right, email support@theodorehq.com from your purchase email address and we will sort it for you.
No account needed, ever. Once activated, your key is kept in the macOS Keychain, the same encrypted store your Mac uses for passwords, so it stays put across restarts and updates. You can confirm your status any time via the info button in the panel footer: a green Licensed dot means all is well. Do keep your purchase confirmation email from Polar as a backup copy of the key, in case you ever set up a new Mac.
Yes. Everything core runs on your Mac: switching, scheduling, wallpapers, and warmth all work offline. Solace verifies its licence quietly in the background and is happy to go up to 7 days between checks, so a flight or a week off-grid is no problem. After 7 days fully offline it asks for a brief connection to reconfirm the key, then the clock resets. Weather mode and update checks naturally need the internet when they run.
Yes. Solace comes with a 14-day money-back guarantee: only keep it if you love it. Just email us within 14 days for a full refund. No forms, no hoops, no friction, and a real person, not a bot, replies within a day.
Nearly always a copying slip. Open your purchase confirmation email from Polar and copy-paste the whole key rather than typing it; it starts with SOLACE- followed by blocks of letters and numbers. Solace tidies up stray spaces and lowercase letters for you, but a missing character will read as invalid. If you get a network error instead, check your connection and try again. Still stuck, or can't find the email? Write to support@theodorehq.com and we will look up your purchase.
Three quick checks. First, open the Solace panel: on a new install, Solace politely asks before its very first switch, so answer the "Switch to Dark Mode?" prompt if it is waiting. Second, the Automation permission: go to System Settings, Privacy & Security, Automation, and make sure Solace is allowed to control System Events; Solace also shows an alert with an Open Settings button whenever this is the blocker. Third, for solar scheduling, check the Schedule section shows your sunrise and sunset times, which need Location Services.
Solar times are calculated from your location, right on your Mac. If they look off, the usual cause is location: Macs need Wi-Fi turned on to find where they are. Solace tells you exactly why location is not working, with steps to fix it, so open the menu bar panel and follow the message there. Once location resolves, times recalculate immediately.
First, check the switch: the Wallpapers section now has an on and off toggle, and if it shows "Enable" then switching is turned off. Tap it to turn it back on. If it is already on, the cause is usually the image file: Solace points at your chosen files where they live, so if a file is moved, renamed, or deleted, that pairing stops. Solace tells you with a "Wallpaper Not Found" note naming the file; open the Wallpapers section and pick the image again to fix it in seconds. Files in iCloud Drive, Google Drive, or Dropbox get special care: if they have not downloaded yet after a restart, Solace fetches them and retries on its own. Tip: keep wallpapers somewhere permanent, like your Pictures folder.
That is weather mode doing its job: this morning's forecast crossed your cloud threshold, so the day runs dark. Easy to undo. Click Keep Light on the notification, or tap the mode card at the top of the panel; your choice then holds for the rest of the day. To make it happen less often, set sensitivity to Gloomy in the Weather section (dark only from 90% cloud cover), or switch weather mode off entirely. Curious what triggered it? The info button, then Weather Decisions, shows the exact numbers.
Weather needs your location, so start there: if the panel says "Location not available", make sure Wi-Fi is on (Macs locate themselves via Wi-Fi) and follow the guidance in the Schedule section; weather refreshes automatically the moment location resolves. If you see "Weather unavailable - please try again later", Apple's weather service is having a brief moment; Solace retries every hour on its own, or flip the Weather toggle off and on to refresh immediately. Your last daily decision stays in effect meanwhile, so nothing flickers.
The usual cause is another app holding the same combination; macOS gives a global shortcut to whichever app claimed it first. Open the Solace panel, click the shortcut in the footer, and record a different combination; it registers immediately, so you can test it straight away. If Solace shows an Accessibility alert instead, click Open Settings and allow Solace under Privacy & Security, Accessibility, then record the shortcut again.
A macOS quirk on the newest MacBook Pros blocks the usual warming method, and Solace has a built-in answer: Compatibility Mode, which delivers the same warmth through a different route. On affected Macs, Solace shows a "Use Compatibility Mode" prompt right in the Warmth section the moment you use warmth; one click and you are done. You can also flip it manually any time via the small gear icon in the Warmth section header. Your slider level and schedule stay exactly as they were.
Email support@theodorehq.com. A real person, not a bot, reads every message and usually replies within a day. Whether it is a question, a bug report, or an idea for Solace, we would love to hear from you. You can also report a bug, request a feature, leave a testimonial, or follow the roadmap right here on the Support Centre, and Solace links straight to it from the Support section of its About panel.
Completely. Solace collects nothing about you: no account, no tracking, no analytics. Your location never leaves your Mac, and solar times are calculated locally on your device. If you enable weather mode, Solace checks Apple's WeatherKit for the forecast, and that is it. None of your data is ever sent to us.
Three things only. A periodic licence check with Polar, our checkout partner, which needs a connection about once a week at most. Apple's WeatherKit, but only if you switch weather mode on. And a quiet check of our website for app updates. That is the complete list: no analytics, no tracking, no crash reporters, and nothing about you or your usage is ever sent to us. Turn weather mode off and Solace touches the internet even less.
Location is used for exactly one calculation: your local sunrise and sunset times, worked out on your Mac so solar scheduling and weather mode know your daylight hours. It is optional. If you would rather not grant it, or you use a VPN that blocks location, you can set your location by hand in the Schedule section: type any city and Solace uses that for sunrise, sunset and weather. Everything else works either way: manual switching, the keyboard shortcut, wallpaper pairs, and Evening Warmth. Your coordinates never touch our servers.
Charm
42Charm is a private writing assistant that runs entirely on your Mac. Three features work together: Spells catches typos the moment you press space, Polish quietly fixes grammar like missing full stops and lowercase starts, and Oracle predicts your next word, with Tab to accept. On top of that there is text replacement, emoji replacement, and a personal dictionary that learns your vocabulary. Each feature can be toggled independently.
Charm runs on macOS 14 Sonoma or later, on both Apple Silicon and Intel Macs. The app itself is tiny, around 18 MB. The on-device AI model adds a one-time download of about 1.5 GB for the lite model or 1.7 GB for the recommended one. The lite model needs a Mac with 8 GB of memory; the recommended model needs 16 GB. Charm checks this before downloading, so it will only offer models your Mac can comfortably run. Spelling correction works even without a model installed.
Download Charm from theodorehq.com/charm/download, open the DMG, and drag Charm into Applications. On first launch a setup guide walks you through everything: entering the license key from your purchase email, granting the two macOS permissions (Accessibility and Input Monitoring), downloading the on-device AI model, and a quick tour of how Charm behaves in different apps. The whole thing takes a few minutes, and Charm then lives quietly in your menu bar. If you ever want a refresher, the interactive guide at theodorehq.com/charm/try covers every feature in about two minutes.
Charm corrects text inside other apps, which macOS only allows through two permissions. Input Monitoring lets Charm notice when you finish a word, so it knows the right moment to check spelling. Accessibility lets Charm read the word you just typed and replace it in place with the correction. Without both, Charm cannot see or fix anything. Both are granted in System Settings > Privacy & Security, and they sit in two separate lists there. Everything Charm reads stays on your Mac: nothing you type is ever stored or sent anywhere, and password fields are skipped entirely.
Yes. Native Mac apps get Automatic mode, where Charm corrects inline as you type with no setup. Web browsers and Electron apps handle text differently, so there Charm uses Fix Selection: press Option-Command-V and it fixes the whole field in one pass, no selecting needed. Charm sets the right mode for every app automatically and picks up newly installed apps on launch, and you can override any app in Settings. If you would rather have live correction in a browser, set it to Automatic in Settings and Charm will keep it there. It is best-effort in browsers, so the odd correction may not apply, but Fix Selection always works too.
No. Charm is lightweight at idle. On first launch it downloads a local AI model, around 1.5 GB for the lite version or 1.7 GB for the recommended one, one time only. After that everything runs locally with minimal CPU usage, and corrections land in under 200ms. The model also unloads itself after 5 minutes without a correction and reloads invisibly when next needed, so it is not holding memory while you are not using it. Version 1.0.63 made the menu bar panel lighter still. If you ever noticed your fan spinning up or your battery draining faster with Charm running, update to the latest version in Settings > General > Check for Updates and that is resolved.
Yes. All corrections and predictions run on your Mac using a local AI model, so Charm works fully offline: on a plane, on a train, anywhere. You only need a connection three times: downloading the app, downloading the AI model on first run, and activating your licence key. After that, Charm quietly reconfirms your licence in the background when you happen to be online, and it is happy to run fully offline for up to 7 days at a time. Away longer than that? Just connect once and it revalidates automatically, no key re-entry needed; your key is stored securely in the macOS Keychain. Updates also download automatically whenever you are connected.
Press Ctrl-Option-C to toggle all of Charm on or off instantly, from any app. The menu bar icon changes so you can see the current state at a glance. You can change this shortcut in Settings > Customise > Keyboard Shortcuts, and you can also record separate shortcuts there to toggle individual features: Spells, Polish, Oracle, or emoji replacement. Each one shows a small confirmation when pressed, so you always know what just changed. The menu bar popover has the same toggles if you prefer clicking.
Open Settings > Development, where you will find a Support section. From there you can Report a Bug, Request a Feature, Leave a Testimonial, Review Roadmap, or open the FAQ Section. Each one takes you straight to the relevant page on the Support Centre in your browser, so you can see what has already been raised, add your own, and follow along. If you would rather include a diagnostic report with a bug, grab it first from Settings > Diagnostics (Copy or Send Feedback), then attach it. Everything is read and answered by a real person.
Charm runs entirely on your Mac, so it favours models fast and light enough to correct your text the moment you type, while staying accurate. We review the options regularly and pick the best balance of speed and quality for that job, not simply the largest or newest. Some of the most capable recent models are built to reason step by step before answering, which is too slow for corrections that need to feel instant.
Last reviewed: July 2026
Fix Selection is Charm's on-demand cleanup. Select some text and press Option-Command-V, and Charm fixes spelling, grammar, capitalisation, and punctuation in one pass. With nothing selected, it fixes the entire text field. It works everywhere, including web browsers and apps like Slack where live correction is not possible, and you can press Esc to cancel while it is working. It is also polite: in chat apps it never adds a full stop to the end of your message. You can change the shortcut in Settings > Customise > Keyboard Shortcuts.
Oracle predicts your word after you have typed three or more letters and pause for a moment. The suggested ending appears highlighted right in your text: press Tab to accept it, Esc to dismiss it, or just keep typing to replace it. Oracle is off by default, so switch it on in the menu bar popover when you want it. It gets smarter as you write: real words you use often become suggestions, and anything you write a few times, from a single word to a short sign-off, can be completed with a single Tab. It only ever suggests genuine words, so a stray typo never gets offered back to you. It deliberately skips very common short words, and stays out of search bars and address bars.
Press Command-Backspace (or Command-Z) immediately after a correction and your original word comes straight back. Charm then offers to add that word to your personal dictionary: press Y to add it so it is never corrected again, or N to dismiss. Press Backspace again quickly and Charm deletes the whole word for you, ready to retype. The undo window lasts a few seconds after each correction, and once you keep typing, normal Command-Z behaviour returns to the app. Charm also remembers what you undo, so a correction you reject twice stops being suggested.
Add it to your personal dictionary. The quickest way: when Charm corrects the word, press Command-Backspace to undo, then Y when Charm asks whether to remember it. You can also add and remove words directly in Settings > Personal. Dictionary words are never flagged again in any app, and Charm even protects them during grammar fixes. It also respects your capitalisation: add "Bauhaus" and typing "bauhaus" gets promoted to your preferred form. Names, brands, slang, project codenames, whatever you write, Charm learns your vocabulary.
Yes. In Settings > Personal you can create replacement pairs: type a short trigger and Charm expands it the moment you finish the word. Make "addr" your postal address, "@@" your email, or "sig" your signature. Replacements work across your apps, including web browsers and chat apps, and matching ignores capitalisation. If an expansion ever fires when you did not want it, press Command-Backspace straight away to undo it. You can add, edit, and remove shortcuts any time.
With emoji replacement on, typing certain words converts them to the matching emoji: "coffee" becomes the coffee cup, "magic" becomes sparkles. Only lowercase words trigger it, and some two-word phrases work too. If Charm converts a word you wanted as text, press Command-Backspace to undo, and Charm will ask whether it should stop converting that word for good. Your exclusions are listed in Settings > Personal, where you can remove one to bring the emoji back. You can also switch emoji replacement off entirely, globally or just for specific apps and websites.
Yes, completely. Open Settings > Customise. Under Apps you can set any app to Automatic (corrects as you type) or Manual (corrects only when you press Option-Command-V), and switch spelling, grammar, prediction, and emoji on or off individually for that app. Under Websites you can do the same per domain, so you could keep prediction on in Gmail but off in Google Docs. Rules Charm created automatically carry an Auto badge so you can tell them apart from your own, and one click resets the automatic ones.
Charm currently supports English (UK) and English (US), switchable in Settings. It picks the right variant automatically from your Mac's language settings, so British users get "colour" accepted and American users get "color" accepted, and every correction respects the variant you chose. One nice touch: whichever variant you use, Charm never converts your currency symbols, so quoting $ amounts in British English is always safe. Support for more languages is on our roadmap; if there is one you would love to see, tell us on the feedback board or at support@theodorehq.com.
Charm offers two on-device models. Gemma 2 2B (about 1.5 GB) is best for speed and runs on Macs with 8 GB of memory. Qwen 2.5 3B (about 1.7 GB) gives smarter grammar and context and wants 16 GB. Only one is loaded at a time, and you can switch or remove models whenever you like in Settings > General under AI Engine. Charm checks your Mac's memory before offering a model, so you cannot pick one your machine cannot handle. Spelling correction works even with no model installed; the model powers the grammar pass and the trickiest spelling calls.
Yes, in a few ways, all stored locally. Corrections you accept a couple of times become instant. If Charm ever corrects a word to the wrong thing and you fix it to what you actually meant, it learns your word and gives you that next time. Corrections you undo are remembered too, so Charm stops making that change. For prediction, real words you type often become suggestions (it never offers a typo back to you), and anything you write a few times, from a single word to a short sign-off, can be offered in full with one Tab. You stay in charge of all of it: Settings > Personal lists the words you've taught Charm and your learned phrases, where you can search them, add or edit your own, and remove or reset any entry.
Yes. Each correction appears with a soft glow, and Settings > Appearance lets you make it yours. Choose any glow colour from the full colour spectrum, and pick an animation style: Subtle (the default), Playful for a little more delight, or None if you would rather corrections happen invisibly. Charm follows your Mac's light and dark mode automatically. If you are curious what got corrected, Settings > History keeps a log of your recent corrections along with counters for today and all time.
Yes. If Charm corrects a word to the wrong thing and you replace it with the word you actually meant, Charm learns that pairing and gives you your word next time instead. This is handy for words you often mistype in the same way, where the built-in checker lands on a close but wrong word. It kicks in after you have done the same fix a couple of times, so a one-off edit never sticks, and it only ever learns a real word. You can see and remove everything it has picked up in Settings > Personal > Taught. It all stays on your Mac.
Yes. Charm shows short messages near the top of your screen to tell you what it has done, such as confirming your corrected text is on the clipboard. If your menu bar or an app's toolbar is busy up there, open Settings > Appearance and drag Message Position to the height that suits you, anywhere from just under the menu bar down to the middle of the screen. A live preview follows the slider as you drag, so you can place it against your own screen rather than guess, and your choice is remembered for every future session. This is separate from the correction glow: moving your messages does not change how corrections themselves look as you type.
Charm is a one-time purchase, normally $19.99 and currently $9.99 as a launch offer, with no subscription and every feature included. There is no separate free trial because every purchase carries a 14-day money-back guarantee: buy it, use it for two weeks, and if it is not for you, email support@theodorehq.com for a full refund. That is your risk-free trial.
Three quick checks fix almost every case. First, make sure it is a Charm key: it starts with CHARM followed by groups of letters and numbers. A key from one of our other apps (like Solace) will politely tell you it belongs to a different product. Second, copy and paste the entire key from your Polar purchase email rather than retyping it; Charm ignores spaces and capitalisation, but every character matters. Third, activation needs a brief internet connection, so check you are online. Still stuck? Email support@theodorehq.com and we will sort it quickly.
Up to 3, and your licence is tied to the key, not the machine, so replacing a Mac is painless. Updates are automatic too: Charm checks in the background and offers new versions with one click to install, free forever with your licence. You can download the latest version any time at theodorehq.com/charm/download.
Each Charm licence activates up to 3 Macs, and you can manage those devices yourself at any time. Sign in to your Polar account with your purchase email and you will see your licence key and the Macs it is currently active on. Deactivating a Mac you no longer use frees that slot immediately.
This is worth knowing if you reinstall macOS or reset your Mac, because a fresh install claims a new slot even on the same machine. Deactivating the old entry afterwards puts it straight back. If you cannot access the portal or something does not look right, email support@theodorehq.com from your purchase email address and we will sort it for you.
Charm needs two macOS permissions: Accessibility and Input Monitoring, both switched on in System Settings > Privacy & Security. They sit in two separate lists, so it is easy to have one on and the other off. After enabling both, quit and reopen Charm so macOS registers them. To confirm it is working, type teh followed by a space in any native Mac app; it should become the.
macOS reads permissions when an app launches, so a freshly granted toggle often is not noticed until Charm restarts. Charm offers a one-click Relaunch when this happens; otherwise quit from the menu bar and reopen. If the warning persists after that, the permission entry itself is usually stale, which can happen after a macOS update: open System Settings > Privacy & Security, go into Accessibility and Input Monitoring, remove Charm from the list with the minus button, add it back, switch it on, and relaunch. Charm's warning always names exactly which of the two permissions is still missing, and its Fix button opens the right pane.
That is by design. Web browsers and apps built on web technology (Slack, Notion, Discord, VS Code, and many more) handle text in a way that does not allow safe live rewriting, so Charm automatically sets them to Manual mode. Type as normal, then press Option-Command-V and Charm fixes the whole field in one pass, spelling and grammar together, no selecting needed. Charm configures this automatically for every such app, including ones you install later, and shows a one-time tip the first time you type in one. You can override any app's mode in Settings > Customise.
When both Charm and the built-in macOS autocorrect are on, the two engines can react to the same keystroke, which occasionally shows up as doubled words or odd cursor jumps. The clean setup is one engine: open System Settings > Keyboard > Text and turn off the built-in correction, then let Charm handle everything. Charm makes this easy: when it notices system autocorrect is on, it shows a small banner in the popover with a Fix button that takes you straight to the right settings pane. Charm never changes your system settings itself; that choice is always yours.
First, check Oracle is switched on in the menu bar popover; prediction is off by default so it never surprises anyone. If it is on, remember Oracle is deliberately selective. It needs at least three typed letters, only suggests when the ending saves you three or more characters, and skips very common words. When you are typing quickly it only offers longer words, because interrupting fluent typing costs more than it saves. It also stays out of search bars, browser address bars, single-line web form fields, launchers like Raycast and Spotlight, terminals, and password fields. Pause briefly mid-word in a normal document and suggestions will appear.
Charm watches whether its corrections actually land cleanly in each app. If an app repeatedly refuses them (some apps handle text in unusual ways), Charm switches that app to Manual mode so your typing is never disrupted, and shows a small notice with an Undo button. Tap Undo to put the app straight back, and Charm respects that choice for the rest of the session. You can also change any app's mode in Settings > Customise, where automatically created rules carry an Auto badge and can be reset in one click. Prefer Charm never to manage modes for you? Turn off Smart Mode Selection in the same tab.
Terminals are the one place Charm deliberately never touches, and there is no setting to change that. In a terminal, every character is a live command rather than prose, so automatic corrections, predictions, or even an on-demand fix could alter or run commands you did not intend. Charm recognises all the popular terminals, including Terminal, iTerm2, Warp, kitty, Alacritty, WezTerm, and Ghostty, and stands down completely in them. Everywhere else on your Mac works as normal.
For a failed download, just retry from Settings > General under AI Engine: Charm automatically clears any partial download first, so a retry always starts clean. The error message tells you whether the cause was your connection, disk space, or memory. If Charm disappeared while loading a model, that means your Mac ran out of memory for it; on next launch Charm detects this, explains which model struggled, and steps back so it cannot happen in a loop. In that case choose the lighter Gemma 2 2B model, or run without a model; spelling correction works fine either way.
No. The AI model unloads itself after 5 minutes without a correction, freeing that memory completely, and reloads invisibly the next time it is needed. Memory during inference is tightly capped too. In browsers, Charm keeps its footprint deliberately small: it only inspects page details when you have actually created per-website rules, and recent updates significantly reduced how much work happens while you type in a browser. If anything ever feels heavy, make sure you are on the latest version (Settings > General > Check for Updates), then email support@theodorehq.com and we will take a look.
Open Settings > Diagnostics. You will see Charm's recent activity log: permission status, model events, and anything unusual, capped at the last 200 entries. Press Copy to put the whole report on your clipboard, then paste it into your email to support@theodorehq.com, or use Send Feedback which drafts the email for you (and copies the full log to your clipboard as a backup, since some mail apps truncate long messages). The log records events only, never the text you type, so it is always safe to share. A Clear button wipes it whenever you like.
Email support@theodorehq.com. A real person, not a bot, reads every message and usually replies within a day. Whether it is a question, a bug report, or an idea for Charm, we would love to hear from you. You can also report bugs, request features, and vote on ideas right here on the feedback board.
No. Everything Charm does happens entirely on your Mac using a local AI model, and it works fully offline. Nothing you type is ever stored or sent anywhere: no servers, no cloud, no account, no tracking. Charm only acts on the text you are actively writing, stays out of your browser's address and search bars, and skips password fields entirely.
No. Charm detects password fields several ways and never reads, corrects, or predicts in them. It recognises secure fields in native Mac apps and in every major browser, honours the system-wide secure input mode that password prompts switch on, and as an extra safety net it treats any masked field showing dots as off-limits too. The same protection covers everything: live correction, word prediction, phrase learning, and Fix Selection all stand down the moment a password field has focus. And since Charm runs entirely on your Mac with no cloud and no logging of typed text, there is nowhere for anything sensitive to go anyway.
Charm keeps a small amount of data locally so it can serve you better: your settings and per-app rules, your personal dictionary and text replacements, the corrections it has learned from you, short phrases and word frequencies for prediction, a log of your last 100 corrections, and a diagnostic event log. Your licence key lives in the secure macOS Keychain. None of it ever leaves your Mac. Everything is inspectable and clearable: Settings > Personal manages the dictionary, replacements, and learned data, Settings > History clears the correction log, and Settings > Diagnostics clears the event log.
Exactly three things use a connection, and none of them include your text. First, downloading the on-device AI model when you set up or switch models. Second, activating and occasionally revalidating your licence key with our payment provider Polar; that request carries the key and your Mac's name so you can recognise the device, nothing more. Third, checking for app updates from our website. Everything else, every correction, prediction, and piece of learning, happens entirely on your Mac. There are no analytics, no telemetry, and no account.
Shiny
38Shiny needs macOS 13 (Ventura) or newer and runs natively on both Apple Silicon (M1, M2, M3, M4) and Intel Macs as a Universal app. Same app, same licence, no separate downloads. Not sure which macOS you have? Click the Apple menu and choose About This Mac to check.
Open the downloaded file and drag Shiny into your Applications folder - it needs to live there, that part matters. Open it, and Shiny walks you through two quick steps: approving its small background helper in System Settings (this is what lets it actually free memory) and pasting the license key from your purchase email. That's it. Shiny then lives quietly in your menu bar as a little twelve-tick dial, ready whenever your Mac needs a polish.
During setup, Shiny opens System Settings for you. Go to General, then Login Items & Extensions, scroll to "Allow in the Background", and turn Shiny on. macOS may ask for your admin password. This approves the small helper that does the actual memory cleanup - freeing memory needs a level of access that macOS rightly keeps behind your say-so. Once you flip the toggle, just come back to Shiny; the setup window notices on its own and moves you along.
That's macOS asking, not Shiny - and it's a good sign. The deep memory cleanup uses a built-in macOS tool that only runs with your explicit approval, so the system asks for your admin password once when you switch Shiny on under "Allow in the Background". Shiny never sees or stores your password; macOS handles the whole exchange. After that one approval, every Polish works silently with no further prompts. The helper is removed automatically if you ever move Shiny to the Trash.
Polish does its work in a few seconds: it settles anything waiting to be written to disk, asks macOS to release the memory apps are no longer using (via the system's own built-in cleanup tool), and refreshes stale network lookups that can make browsing feel sluggish. Then it shows you how much lighter your Mac is - the real measured number, never an inflated one. If you've turned on "Quit hidden apps on Polish", it also politely closes apps you have hidden away. And if music or a call is playing, Shiny holds off the deep clean so your audio stays smooth.
The dial is a live gauge of how your Mac feels. Twelve ticks fill as things get busier: green means comfortable, amber (from about half full) means starting to fill up, red (from about 80%) means it's time to polish. It measures the slowdowns you actually feel - not just how much RAM is in use, because a busy-looking Mac can still feel perfectly fine. After a Polish it dips to a calm mint and eases back to the honest reading over a few minutes. A greyed-out dial just means setup isn't finished; click it to continue.
Yes. Press Option-Shift-C from any app and Shiny runs a Polish right away - no need to reach for the menu bar. To pick your own combination, open Shiny's Settings (the gear in the popover), choose General, click the Global Hotkey row, and press the keys you want. Any combination with at least one modifier key works, including the arrow and page keys, and Escape cancels recording if you change your mind. If the combination you pick is already claimed by macOS or another app, Shiny keeps the shortcut you had and tells you, so you are never left without one.
Updates take care of themselves. Shiny quietly checks for new versions about once an hour and offers them when they're ready - every update is cryptographically verified before it installs, so you always get the genuine article. Want to check right now? Open Settings, choose About, and press "Check Now", or right-click the menu bar dial and pick "Check for Updates". All updates are included with your license, forever, at no extra cost.
No - this is something Shiny is genuinely careful about. Before the deep clean, it checks whether your Mac is actually playing sound (music, a video, a call). If it is, Shiny does a lighter tidy instead and tells you so: "Held off the deep polish so your audio stays smooth." The same courtesy applies to Auto-polish, so background polishes never stutter your playlist or your meeting. Once the audio stops, the very next Polish does the full job. On macOS 14.2 or later the listening check is at its most precise.
When your Mac is filling up, the popover adds a line like "Safari and Slack are using the most right now." Shiny adds up everything each app is really using, including its hidden helper processes, so Chrome's many helpers count as Chrome. It only ever names apps you'd actually recognise - never cryptic system processes. Each name is clickable: click it, confirm, and Shiny asks that app to quit as politely as Cmd-Q would, so it can save your work first. The app isn't gone; you can reopen it any time.
With Auto-polish on (Settings, then General), Shiny watches for the moment macOS itself reports memory pressure and quietly runs a polish for you - no click needed. It waits at least five minutes between automatic polishes, so it never churns away in the background. It's also thoughtful about timing: if you're listening to music or on a call, it holds off the deep clean so your audio stays perfectly smooth. While Auto-polish is on, the "your Mac is full" nudge notifications stay quiet, since Shiny is already handling it.
With this setting on (Settings, then General), each Polish also asks apps you have hidden to quit - the ones you have tucked away with Cmd-H that are still holding onto memory. The ask is always polite, exactly like pressing Cmd-Q yourself: apps get the chance to save their work and can show a save prompt if they need to. Nothing is ever force-quit. Minimised windows and anything sitting on your other desktops are left alone, along with anything you are actually looking at. It's off by default, so Polish only does this if you choose it.
Open Settings and choose Sneaky Apps to see everything that runs on your Mac without you opening it - login items, background helpers, and auto-updaters, each named in plain English with a short note on what it does and how heavy it is right now. The heaviest sit at the top. You can pause items you don't need, quit ones that are running, and remove leftovers from apps you deleted long ago. Apple's own system processes are tucked away, since those are safe and shouldn't be touched.
When you delete an app, it sometimes leaves behind a startup entry that still asks macOS to launch something that no longer exists. Shiny checks each entry against what's actually on your disk, and flags the orphans as "Leftover, safe to remove". Click Remove (or "Remove all" in the banner) to clear them. Every removal comes with a six-second Undo button, and Shiny sets the entry aside first rather than deleting it outright, so an accidental click is never final within that window.
Some background items are held in place by macOS itself rather than by a file Shiny can clear. Those show "Open Settings" instead of Remove, which takes you straight to Login Items where you can switch them off. Shiny only offers Remove where it can genuinely finish the job.
Yes. In Settings, open Sneaky Apps. When Shiny spots auto-updaters running in the background, a banner offers "Pause all", or you can Disable them one at a time. Pausing is completely reversible - Shiny sets the startup entry aside rather than deleting anything, so an Enable click brings it straight back. The apps themselves keep working normally; you'd simply update them by opening them, instead of having their updaters idling in the background all day.
Gentle nudges (Settings, then Notifications) send a single quiet notification when your Mac crosses into genuinely-full territory: "Your Mac is feeling full. A quick polish should help." with a Polish Now button right on it. It fires once per episode, waits at least 30 minutes before repeating, and respects Focus modes when "Stay quiet during Focus" is on. If you'd previously declined notifications for Shiny in macOS, allow them under System Settings, Notifications, Shiny, then flip the toggle back on. Nudges also stay silent while Auto-polish is handling things for you.
An ambient cue that lives on the screen itself. Turn on "Soft edge glow" (Settings, then Screen) and the edges of every display take on a soft, warm tint when your Mac is very close to full - the kindest possible way to be told it's time to polish. It fades away on its own as soon as pressure drops. The glow is purely visual, sits behind your work, and is off by default, so nothing appears unless you invite it.
Not from Shiny. Restart Dock and Restart Finder were early additions that sat outside what Shiny is for, and macOS already relaunches either one by itself if it stops responding, so from Shiny 1.0.49 the menu is focused on memory instead.
If you ever want to relaunch Finder yourself, hold Option and right-click the Finder icon in your Dock, then choose Relaunch. Nothing is lost, and your windows and desktop come straight back.
Right-clicking the Shiny dial in your menu bar now gives you Open Shiny, Polish Now and Settings, a Support menu that takes you straight to report a bug, request a feature, leave a testimonial, review the roadmap or browse the FAQ, plus Check for Updates and Quit Shiny.
One-time. $4.99 once covers Shiny on up to three Macs, forever, with all future updates included. No recurring charges, no auto-renewals, no Pro tier upsells. Every purchase also carries a 14-day money-back guarantee: email us within 14 days and a real person will sort your refund, no questions asked.
No account, ever - your license key is the whole story. Internet is only needed for two things: activating the key, and a quick occasional check that it's still valid. Between checks, Shiny happily runs offline for up to 7 days. If you're away from a connection longer, Shiny shows a small "Running offline" note in Settings under About, with a countdown of the days remaining, and everything keeps working. The moment you're back online, the check completes silently and the countdown disappears.
No. Once activated, your license is stored in the macOS Keychain - the same protected vault that holds your Wi-Fi passwords - so it survives app updates and even deleting and reinstalling Shiny on the same Mac. Updates delivered through Shiny's built-in updater never touch it. You'd only enter the key again on a brand-new Mac or after erasing this one, and it's always waiting in your purchase email from Polar.sh with the subject "Your Shiny license" if you need it.
One thing worth doing before you erase a Mac: open Settings, then About, and choose Deactivate This Mac. Erasing takes the activation with it, so releasing the slot first keeps it available for your next machine.
Your license covers up to three Macs at once, so often you can simply enter your key on the new Mac and carry on.
If you still have the old Mac, the tidiest way is to free the slot from inside Shiny before you move: open Settings, then About, and choose Deactivate This Mac. That releases the slot straight away.
If all three slots are in use and you no longer have the old Mac, sign in to your Polar account with your purchase email. Polar sends you a one-time code, then you can remove the Mac you are retiring. Either route frees a slot instantly, and you can then paste your key into Shiny on the new machine and tap Activate.
Each Shiny license activates up to 3 Macs, and you can manage those devices yourself at any time. Sign in to your Polar account with your purchase email and you will see your license key and the Macs it is currently active on. Deactivating a Mac you no longer use frees that slot immediately.
This is worth knowing if you reinstall macOS or reset your Mac, because a fresh install claims a new slot even on the same machine. Deactivating the old entry afterwards puts it straight back.
Better still, if you know a wipe is coming, open Settings, then About, and choose Deactivate This Mac first. That releases the slot cleanly before the reinstall, so nothing is left stranded. If you cannot access the portal or something does not look right, email support@theodorehq.com from your purchase email address and we will sort it for you.
Shiny still gave your Mac a gentle tidy, and it's telling you the deep clean is waiting on one approval. Click the Open Settings button under that message (or open System Settings yourself), go to General, then Login Items & Extensions, scroll to "Allow in the Background", and turn Shiny on - macOS may ask for your admin password. That's the whole fix. Come back and press Polish again; from then on every polish is the full one.
First, click over to Shiny (or click its menu bar dial) - it re-checks the moment it comes forward, and usually that's all it takes. If it still says waiting, macOS occasionally holds the approval in a stuck state on its side. Shiny has a purpose-built fix: open Settings, choose About, and press Reinstall next to Background Helper. That re-registers the helper and verifies it's genuinely answering. If System Settings opens afterwards, flip the Shiny toggle once more and you're done.
That's Shiny being honest, and it's usually good news. The "% lighter" figure is measured for real: memory in use the instant before the polish versus the instant after. If your Mac wasn't under memory pressure, there was little to reclaim - macOS was already managing well. Shiny even hides the number below 2% rather than dress up a nothing-result as a win. You'll see the big numbers exactly when they matter: when the dial is amber or red and your Mac genuinely feels slow.
That is Gatekeeper, macOS being cautious about any app downloaded outside the App Store. It is not a problem with Shiny, which is notarized by Apple, meaning Apple scans it for malware before you download it. Right-click the app, choose Open, and you are set. It runs as a normal app from then on, same as Notes or Calendar.
macOS only allows an app to run a background helper when the app lives in the Applications folder - it's a security guarantee from Apple, not a Shiny preference. This usually appears when Shiny is being run straight from the downloaded disk image or from the Downloads folder. The fix takes ten seconds: quit Shiny, drag Shiny.app into Applications (the setup screen's "Open Applications" button takes you right there), open it from its new home, and press Install Helper again. Setup continues exactly where you left off.
There are only two reasons, and hovering over the button tells you which. If your Mac is feeling great, the button rests and the hover message reads "Nothing to polish. Enjoy the calm." - that's Shiny declining to do pointless work, and it wakes up the moment the dial leaves green. If instead the hover mentions the background helper, it needs its one-time approval: open System Settings, General, Login Items & Extensions, and turn Shiny on under "Allow in the Background". Polish springs to life right after.
Perfectly normal, and Shiny handles most of it for you. After an app update, macOS sometimes resets its record of background helpers, so Shiny automatically refreshes its helper on the first launch of every new version. Usually that's invisible. Occasionally macOS wants your approval confirmed again - if so, Shiny opens the right System Settings page; just flip the Shiny toggle on under "Allow in the Background". You'll be asked at most once per update, and everything you've set up stays exactly as it was.
From Shiny 1.0.49 this message appears only when the background helper genuinely did not answer. Every other outcome now explains itself in its own words. If an item cannot be changed safely, because another app has since reinstalled it or macOS manages it directly, Shiny says so and leaves it exactly as it was, and it only offers Reinstall when a reinstall is the thing that would actually help.
If you do see it, open Settings, choose About, press Reinstall next to Background Helper, wait for "Installed and ready", then repeat what you were doing. If a message says the helper needs approval instead, tap its Open Settings button and turn Shiny on under "Allow in the Background". Your list refreshes to show exactly what is true on disk, so nothing is left half-done.
From Shiny 1.0.46 this notification is much rarer. Shiny now gives the helper plenty of time to come online when your Mac starts up, which is when it is busiest, rather than expecting an instant answer. If the helper still needs a hand, Shiny repairs it on its own and then keeps quietly re-checking in the background every half hour, so it usually settles without you doing anything at all.
If you do see the notification, tap Reinstall right on it. That is the correct fix in the most common case and takes a couple of seconds. If macOS then asks for approval, tap Open Settings instead and turn Shiny on under "Allow in the Background" in Login Items & Extensions. Shiny won't nag either way: this notification appears at most once a day.
Shiny keeps a note of what happened, and the next time it opens you'll see a small report window with the details laid out for you to read. If you'd like us to look into it, one click opens a pre-addressed email to support@theodorehq.com in your own mail app - you can read exactly what's in it before sending, and a real person replies. Nothing is ever transmitted automatically or behind the scenes; if you dismiss the window, the report simply stays on your Mac.
Open Shiny's Settings, choose About, and click Diagnostics Log - Finder opens with the file selected, ready to attach to an email to support@theodorehq.com. The log is a small text file of timestamped events that lives only on your Mac (in your Library's Logs folder) and is kept trimmed to about 1 MB, so it never grows large. Nothing in it is ever sent anywhere unless you choose to send it yourself, and including it helps us give you a precise answer first time.
Email support@theodorehq.com. A real person, not a bot, reads every message and usually replies within a day. Lost your licence key? Email from the address you bought with and we will resend it. You can also report bugs, request features, leave a testimonial, and follow the roadmap from the Support tab in Shiny's settings, or right here in the Support Centre.
No analytics, no telemetry, no ads, no account, no tracking of any kind. Exactly two things ever leave your Mac, and you can verify both with a tool like Little Snitch. One: a check with theodorehq.com about once an hour to see if a new version exists. Two: a brief exchange with Polar, the payment provider, to activate your license and occasionally confirm it's still valid - Shiny runs happily offline for up to a week between checks. That's the complete list. Even crash reports only leave your Mac if you press send yourself.
Never. Shiny looks at exactly three kinds of information, all on your Mac: the list of running apps (the same one Activity Monitor shows), your Mac's own memory, processor, and temperature readings, and the list of startup items for the Sneaky Apps tab. Your files, photos, messages, and browsing are never opened, read, or changed - the polish itself only asks macOS to let go of memory the system has already marked as reclaimable. Everything Shiny observes stays on the machine and is forgotten as it refreshes.
The helper is a tiny, single-purpose tool that ships inside Shiny and does nothing until Shiny asks. Its whole job list: run the built-in macOS memory-release command, refresh stale network name lookups, politely ask an app to quit when you choose to, set aside the startup entries you pause or remove in Sneaky Apps (reversibly, never deleted outright), and read the startup-items list for that tab. It checks that requests genuinely come from Shiny before acting, never touches the network, never reads your files, and is removed automatically when you move Shiny to the Trash.
Atlas
40Atlas puts your whole group on one living world map, with everyone's local time, daylight and working hours. It scores every 15-minute slot across the next five working days and floats the best overlap to the top, or you can scrub the map to pick your own moment. One tap then writes the meeting to your calendar with everyone's local time included.
No, only you need it. Atlas creates the event in your calendar, and you invite the others from there exactly as you normally would - their calendars show the time correctly in their own zone automatically. Atlas also writes each person's local time into the event notes, and drafts a ready-made message ("Let's meet Friday. 8:00 AM for Ben, 5:00 PM for Maya.") you can send by Messages, Mail or anywhere else. Nobody has to install anything.
Yes. One tap adds the meeting to Apple Calendar, or hands off to Google, Outlook or Yahoo, or saves a universal .ics file, whichever you use. Atlas can also read your calendar if you allow it, quietly hiding times that clash with what you have already booked. That access is optional and off by default, and Atlas only ever writes the single event you asked for - never anything in the background.
Download Atlas from theodorehq.com/atlas, open the file and drag Atlas into your Applications folder. On first launch, paste the license key from your purchase email (it starts with ATLAS-) and press Enter. Atlas then walks you through a short setup: set your location, optionally connect your calendar, and add your first person. You are scheduling within a minute or two.
On first launch Atlas asks to use your location, purely to place your pin and set your time zone. Your coordinates go only to Apple Maps to look up your city name; they never touch any Atlas server. Prefer not to share? Skip the prompt and type your city manually instead, during setup or later in Settings under You. Moved or travelling? Tap the Auto-detect Location toggle in Settings and Atlas finds your city again.
Type a city into the search field (or press Cmd+F) and pick from the live suggestions - Atlas looks the place up with Apple Maps, so the time zone is always right. The person appears as a flag pin on the map with their local time. They are named after their city at first; use the inline rename to give them their real name. No email address or account is needed for anyone.
Yes. Groups keep different circles separate: your team, a client project, family. Press Cmd+N for a new group, Cmd+S to name it, and Cmd+1 to Cmd+9 to jump straight to one; Ctrl+Tab cycles through them. Drag groups in the drawer to reorder. You appear in every group automatically, each group can wear its own emoji icon, and each can point at its own calendar and choose whether its people show in the menu bar.
Atlas checks for updates automatically about once an hour and offers new versions with the standard macOS update prompt - your groups and settings carry straight over. To check by hand, open Settings, go to About and click Check for Updates. Every update is free, included in the one-time purchase.
The warm amber band shows where the sun is currently above the horizon. The blue band inside it shows where the local time is within working hours right now. Both are drawn around the point where the sun is directly overhead and sweep across the map as time moves. Pin colours follow the same idea: green means that person is inside working hours, amber means within an hour either side, and red means it is out of hours for them.
Atlas checks every 15-minute slot across the next five weekdays and scores each one against every person's working hours - the closer everyone sits to the middle of their day, the better. The time that suits the whole group best floats to the top, with two alternatives beside it. If your calendar is connected, anything that clashes with your existing events is hidden. Suggestions always land on tidy quarter-hour marks, never at 2:07pm.
Absolutely. Hold Cmd and drag anywhere on the map to scrub time forwards or backwards - every pin's clock, the daylight band and the working-hours band all move with you. Release when the moment looks right and that becomes your meeting time. Press Cmd+T to glide back to right now, or Cmd+B to return to Atlas's suggested best time. You can also tap any of the three suggestion cards to switch between them.
Yes. Open the date and duration drawer on the planning card and pick 15, 30, 45, 60 or 90 minutes; 30 is the default. Changing the length re-runs the suggestions straight away, since a 90-minute call needs a bigger overlap between time zones than a quick 15-minute catch-up does.
By default Atlas scans the next five weekdays, skipping Saturday and Sunday. To schedule a weekend call or any particular day, open the date drawer on the planning card and tap the day you want - Atlas then scores every time on that exact date, whatever day of the week it is. Past days stay dimmed and can't be picked.
Yes, once you allow calendar access - it is optional and off by default. Atlas reads the next two weeks of events from the calendars you tick and quietly hides any suggestion that clashes, telling you how many were hidden so you can peek if you want. All-day items like birthdays and holidays are ignored on purpose; only timed events count as busy. Everything is read locally on your Mac and nothing is uploaded.
Once a time is chosen, Atlas writes the message for you: "Let's meet Friday. 8:00 AM for Ben, 5:00 PM for Maya. See you then." - everyone in their own local time. Hit Share to send it by Messages, Mail, Notes or AirDrop, or press Shift+Cmd+C to copy it anywhere. Adding the meeting to your calendar also writes each person's local time into the event notes, so the invite explains itself.
All the big ones. The default hands the event to your Mac's calendar app - Apple Calendar, or Fantastical or BusyCal if one of those is your default. You can instead choose Google Calendar, Outlook (personal or work) or Yahoo, which open in your browser with everything pre-filled, ready to save. Use something else, like Proton or Fastmail? Pick the calendar-file option and Atlas saves a universal file to Downloads that imports into anything. Choose your preference in Settings under Calendar.
Yes. In Settings, under Calendar, the Per Group section lets each group pin its own calendar - family meetings onto your personal iCloud calendar, client calls onto the work Google one. For Google or Outlook, add the account email there too, so the right account opens every time even when you are signed in to several. Groups without a pinned calendar simply follow your global choice.
Yes. Open Settings and adjust the two Working Hours sliders in the You section; the default is 9:00 to 17:00, adjustable in half-hour steps. These hours drive everything: which times Atlas suggests, the blue band on the map, and the green, amber and red pin colours. One thing to know: the same window currently applies to everyone in the group - there are no separate hours per person.
Press Cmd+K for Quick Check. It opens a scratch space seeded with just you - type any city, compare clocks, plan a one-off call, all without touching your saved groups. Press Esc when you are done and it vanishes completely. If the comparison turns out to be worth keeping, press Cmd+S and Atlas saves it as a new group, ready to rename.
That is your team as a tiny constellation: one dot per person, placed by where they are in the world, brighter when they are in working hours. Click it for a quick roster grouped by time of day, from late night through dawn, daytime, dusk and evening, often with a helpful line such as "Maya wraps up her day in 20 minutes." Choose which groups appear there in Settings, and hide the icon entirely under Behaviour if you prefer.
Yes. Atlas opens on the current time every time, and refreshes the moment you bring it to the front, so the clocks are right whenever you glance at it. If you want to leave Atlas open on its own display, turn on Follow the current time in Settings, Behaviour. The times then keep moving on their own even while Atlas sits unfocused. It is off by default because it refreshes the map every minute. Picking a meeting slot or dragging the map holds that moment instead, and Cmd+T returns you to live.
Yes. Open Settings, go to the Behaviour tab and turn on Hide Dock icon. Atlas then runs from the menu bar alone, staying out of your Dock and your app switcher while it carries on tracking everyone's local times. It applies straight away, with no need to restart. Click the menu bar icon whenever you want to see your people, and choose Open Atlas to bring the main window back. The setting appears only while Show menu bar icon is on, so Atlas always leaves you a way to reach it.
Yes. Atlas is a one-time $4.99 purchase with no subscription and no upgrade fees. One licence covers up to three Macs, and you can deactivate a Mac in Settings to free a slot for a new one. Every future update is included. It needs macOS 13 Ventura or later and runs natively on Apple Silicon, with Intel supported.
Your key arrives by email from Polar, our checkout partner, right after purchase - it starts with ATLAS-. Open Atlas, paste the key into the activation screen and press Enter. Capitalisation doesn't matter, and pressing activate twice won't use up an extra device slot. If the email hasn't arrived within a few minutes, check the spam folder, then write to support@theodorehq.com and we will sort it out.
No problem. Your key was emailed from Polar, our checkout partner, when you bought Atlas - search your inbox for "Polar" or "Atlas". If Atlas is already activated on a Mac, Settings under About shows the email address the license is registered to, which helps track the right inbox down. Can't find it anywhere? Email support@theodorehq.com from the address you purchased with and we will send your key again.
Each Atlas license activates up to 3 Macs, and you can manage those devices yourself at any time. Sign in to your Polar account with your purchase email and you will see your license key and the Macs it is currently active on. Deactivating a Mac you no longer use frees that slot immediately.
This is worth knowing if you reinstall macOS or reset your Mac, because a fresh install claims a new slot even on the same machine. Deactivating the old entry afterwards puts it straight back. If you cannot access the portal or something does not look right, email support@theodorehq.com from your purchase email address and we will sort it for you.
Day to day, yes. The map, clocks, groups and time suggestions all run entirely on your Mac. Atlas verifies your license quietly in the background and is happy offline for a week at a time; normal internet use keeps that ticking over without you ever noticing. You will only need a connection to look up new cities, activate a license, or download updates.
Every purchase comes with a 30-day no-questions refund. Email support@theodorehq.com from the address you bought with and the refund is processed within five working days. UK buyers keep all their statutory consumer rights on top of that, including the remedies for faulty digital content. Not sure Atlas fits before buying? Ask first - we would genuinely rather help you decide than process a refund.
The quickest fix is to remove that person and add them again by searching their city - Atlas re-checks the time zone with Apple Maps as you add them, and the latest versions refuse to guess when a place is ambiguous. If a pin shows a dash instead of a time, Atlas is saying it cannot work out that place's zone on your Mac, and re-adding is the cure there too. Daylight saving is handled automatically, so clock changes need no action. Still looks off? Email support@theodorehq.com with the city name.
macOS is blocking calendar access, usually because the permission was declined at some point. Click the Open Settings button on the message (or go to System Settings, then Privacy & Security, then Calendars) and switch Atlas on. When you come back, Atlas notices the change and retries the save on its own. Prefer not to grant calendar access at all? Choose Google, Outlook, Yahoo or the calendar-file option in Settings instead - those routes need no permission.
Two common causes. First, when the event opens as a pre-filled page in your browser, it still needs its Save button clicked - Atlas fills everything in, but Google makes the final save. Second, with several Google accounts signed in, the page may have opened in the wrong one: in Settings, under Calendar, pin the group's Google calendar and add the account email, and Atlas will open the right account every time after that. Freshly saved events can also take a few seconds to sync across devices.
Atlas keys always start with ATLAS-. Seeing this message usually means a key for one of our other apps, such as Solace or Charm, was pasted by mistake - each app has its own key, even though they share a checkout. Check your purchase email for the key beginning ATLAS- and paste that one instead. If you only ever bought Atlas and still see this, email support@theodorehq.com and we will check the order for you.
First check the system side: open System Settings, then Privacy & Security, then Location Services - make sure Location Services is on and Atlas is allowed. Back in Atlas, flick the Auto-detect Location toggle in Settings to try again. No luck, or you would rather not share location at all? Type your city into the Set Your City field in the You section of Settings - a manual pin works identically, and either way the lookup only ever talks to Apple Maps.
City search runs on Apple's place lookup, so the usual culprit is the internet connection - Atlas shows "Couldn't reach search" when it can't get through. Once you are back online, try again. If a small town won't come up, search the nearest larger city (the time zone will be the same) or add the country name to the search. Atlas deliberately declines to add a place when it can't confirm the real time zone, so it never shows you a wrong clock.
Atlas keeps running when its window closes - that is by design, so your people stay one click away. Bring it back by clicking the constellation icon in the menu bar and choosing Open Atlas, or click the Atlas icon in the Dock. You can also record a global shortcut in Settings, under Behaviour, to summon Atlas from inside any app. To quit completely, right-click the menu bar icon and choose Quit Atlas.
Email support@theodorehq.com. A real person, not a bot, reads every message and usually replies within a day. Not sure whether Atlas suits your team? Email us before buying and we will gladly help. You can also report bugs, request features, and vote on ideas right here on the feedback board.
Open Settings, go to the About tab, and look for the Support section. From there you can Report a Bug, Request a Feature, Leave a Testimonial, Review the Roadmap or browse the FAQ, each opening the matching page in your browser. Reporting a bug or requesting a feature lets you track its progress and follow the roadmap, so you can see what is coming next. You can also reach these directly at support.theodorehq.com/atlas. For anything private, email support@theodorehq.com.
No accounts, no servers, no telemetry. Your team list, settings and calendar stay on your Mac. Only three small things ever leave it: a one-time location lookup with Apple Maps to find your time zone, a licence check when you activate, and update checks. Nothing about your schedule or your people is ever sent anywhere.
At most three, all optional. Location places your own pin and sets your time zone; the coordinates go only to Apple Maps for the city lookup. Calendars lets Atlas hide times you are busy and add the meetings you approve; events are read locally and never uploaded. Automation lets Atlas open Apple Calendar on the right day after saving, so your new event is the one in front of you. Decline any of them and the rest of Atlas keeps working normally.
Everything lives on your Mac: your groups and people in a small file inside Atlas's app-data folder, your preferences alongside it, and your license safely in the macOS Keychain. Because it is ordinary local data, Time Machine and other Mac backups include it automatically - restore your Mac and Atlas comes back with your groups intact. There is no cloud copy, because nothing ever leaves the machine.
Echo
37Echo is a menu-bar app that remembers every song, podcast and video you play, across your apps and your browser, in one tidy history. Press the global shortcut from anywhere and a fast, keyboard-first overlay appears. Choose anything and it resumes at the exact spot you left off, and videos can come back in a floating picture-in-picture player that hovers over your work.
Native apps that publish to macOS Now Playing, including Spotify, Apple Music and Apple Podcasts, work out of the box. Add the free companion browser extension and Echo also remembers anything you play in your browser: YouTube, Spotify Web, SoundCloud, podcasts, and any tab with audio or video.
You only need the extension for media you play in your browser; native apps like Spotify, Apple Music and Apple Podcasts work without it. To set it up, open Echo's Settings, go to General, and click "Get Extension" next to the Browser row. It's free: the Chrome listing works in Chrome, Edge, Brave, Arc, Dia, Vivaldi and Opera, Firefox has its own listing, and Safari isn't supported yet. There's nothing to pair or configure. While the Echo app is running, the extension connects on its own, its toolbar icon shows a green dot, and the same Settings row switches to "Connected".
Echo works out of the box. macOS will ask once to let Echo control Spotify and Apple Music, which powers precise resume for those apps. Two permissions are optional and only for specific features: Accessibility lets Echo control Apple Podcasts and resume things in the background more reliably, and Screen Recording is used solely by "Hide Spotify & Music On Resume" to cover a tiny corner of the screen behind the hidden player window. Echo never records your screen. After granting either one, quit and reopen Echo.
Press Cmd-Shift-E from anywhere on your Mac (or click the three-bar icon in the menu bar) and Echo's overlay appears: what's playing now pinned at the top, then everything else, newest first. Just start typing to filter, use the arrow keys to move, and press Return to resume quietly in the background. Cmd-Return resumes and brings the app or tab to the front, and Esc closes the overlay. You can change any of these keys in Settings, under Shortcuts.
Yes. Echo turns on Launch At Login the first time it runs, because it can only remember what you play while it's running: if it didn't come back after a restart, your history would quietly stop. If you'd rather start it yourself, switch off Launch At Login in Settings, under General, and Echo will respect that choice permanently. It lives in the menu bar only, so it never adds a window or a Dock icon to your day.
Echo checks for updates automatically in the background about once an hour, and shortly after it launches, so you'll be offered new versions as they ship. To check right now, click the Echo icon in the menu bar and choose "Check for Updates...". Every update is included with your licence at no extra cost, and updates are signed and verified before they install.
Yes. While something plays, Echo quietly notes your position every few seconds, and it always keeps the furthest point you reached, so scrubbing back or an accidental restart never loses your place. Resume then returns you to that exact spot: YouTube videos reopen at the right second, Spotify and Apple Music jump to the exact track and position, and podcasts pick up mid-episode. If you finish something and later start it again from the top, Echo notices and lets it begin fresh.
Yes, Spotify is one of Echo's best-supported apps. With the desktop app, Echo remembers every track and resumes the exact song at the exact position, quietly in the background, without the Spotify window jumping in front of you. Spotify in a browser tab is remembered too, as one tidy entry that always shows your latest track. And if you pick a Spotify web item while the desktop app is installed, Echo is smart enough to hand playback to the app instead of opening a tab.
That's intentional. Re-picking a three-minute song almost always means "play this song", not "continue it from 1:47", so ordinary music starts from the top. Long-form listening is different: podcasts, videos, and any music longer than 20 minutes (DJ sets, mixes, ambient tracks, audiobooks) resume exactly where you left off, because that's the thing you most want to continue. So the short stuff behaves like a jukebox and the long stuff behaves like a bookmark, automatically.
With the browser extension installed, every YouTube video you watch for more than a few seconds joins your history, keyed to the video itself, so the same video opened from different links or tabs stays one entry. Press Return on it later and it comes back at the exact second, playing in Echo's own floating player, no tab required. Cmd-Return reopens the real YouTube tab instead. Videos that block embedding still work: Echo hands them to your browser's built-in floating player automatically.
Resume a video and it can float in a small window that stays on top while you work. Hover over the picture and it fades to a ghost so you can see and click whatever is behind it, without moving the window. A slim control bar gives you a scrubber, 10-second skips, play and pause, playback speed (1x, 1.5x and 2x), open-in-browser, and close. Choose which screen corner it lives in, and how far from the edge, in Settings under Playback. Ctrl-Option-P toggles it from anywhere.
Yes. Any browser video can play sound-only in the background, with no window at all, which is perfect for talks, podcasts on YouTube and music videos. Echo remembers how you last enjoyed each video, watching or just listening, and a plain Return repeats that choice. Option-Return flips it for a single play, and the watch toggle on the now-playing card (or Ctrl-Option-P) switches between watching and listening live, without interrupting playback. The default for first-time videos is in Settings, under Playback.
That's Echo's single-playback rule: when you start something new, whatever was already playing pauses, so two things never talk over each other. It works across everything, desktop apps and browser tabs alike, and it deliberately never pauses a live call: meeting sites like Google Meet, Zoom, Teams and Slack are always left alone. Spotify on desktop and Spotify in a tab count as one player, so they won't fight each other. Prefer to manage audio yourself? Turn it off in Settings, under Playback.
Moments are bookmarked spots inside whatever you're listening to or watching. Hear something worth coming back to? Press Ctrl-Option-M from anywhere and Echo saves the spot, wound back ten seconds so you get the run-up rather than the instant you pressed the key. A small confirmation appears on screen. Your Moments live in their own tab in the overlay (Cmd-6), each one jumps straight to its second, and you can add a note to remember why you saved it.
The Shelf is your "continue watching" list for the whole Mac: podcasts and videos you've genuinely started but haven't finished. Echo works this out from how far through you are, so nothing needs marking by hand. Things you're at least 80% through appear in their own "almost done" group, ideal for a quick finish, and anything untouched for three weeks quietly drops off so the Shelf never becomes a guilt pile. Find it in the overlay's scope bar, or press Cmd-5.
Two ways. Pin an item (Cmd-P) to float it to the top of your history, or Save it (Cmd-S) to add it to your Saved queue of things to start later (Cmd-7 to view). Both are permanently kept: even if you set Keep History to the last 7 days or the last 50 items in Settings, pinned and saved items are never pruned. Everything else ages out according to your Keep History choice, which defaults to keeping everything.
Yes. Select an item in the overlay, press Cmd-K to open its actions, and choose Send to Phone. Echo shows a QR code, generated entirely on your Mac, that links to the item anchored at your exact playback position. Point your phone's camera at it and the video or track opens right where you left off on the Mac. Nothing is uploaded anywhere; it's simply a link with your spot built in.
Yes, every shortcut in Echo is rebindable, from the global summon key (Cmd-Shift-E by default) down to the individual overlay keys for tabs, actions and navigation. Open Settings, choose Shortcuts, click a shortcut and press your new combination. Echo checks for clashes as you record and tells you if a key is already taken. Global shortcuts and letter keys need a modifier (Cmd, Option, Ctrl or Shift) so they can't collide with typing in the search box, and Reset All puts everything back to the defaults.
Echo is $9.99, a one-time purchase, with no subscription and no account. One licence covers up to three Macs and every future update is included. There is no time-limited trial; instead there is a 14-day money-back guarantee, so you can buy it, try it properly, and email support@theodorehq.com for a full refund if it is not for you. It needs macOS 13 or later.
Your key was shown right after checkout and emailed to you with your purchase receipt, so a quick search of your inbox for "Polar" or "Echo" usually finds it. If it's nowhere to be found, email support@theodorehq.com from the address you bought with and we'll look it up and get you back in, usually within a day. There's also a shortcut inside the app: Settings, Licence, "Lost Your Key?" opens that email for you.
Each Echo licence activates up to 3 Macs, and you can manage those devices yourself at any time. Sign in to your Polar account with your purchase email and you will see your licence key and the Macs it is currently active on. Deactivating a Mac you no longer use frees that slot immediately.
This is worth knowing if you reinstall macOS or reset your Mac, because a fresh install claims a new slot even on the same machine. Deactivating the old entry afterwards puts it straight back. If you cannot access the portal or something does not look right, email support@theodorehq.com from your purchase email address and we will sort it for you.
Yes. Echo itself is fully local, so capturing and resuming work with no connection at all. The only thing that needs the internet occasionally is your licence: Echo confirms it quietly in the background, and a Mac can stay offline for up to 7 days between checks. If you've been away longer than that, Echo asks you to connect once so it can verify the licence, then carries on as normal. Nothing about your listening history is involved in that check.
Three quick checks usually solve this. First, make sure the extension is installed and the Echo app is open: in Echo's Settings under General, the Browser row should say "Connected", and the extension's toolbar icon shows a green dot. Second, check the site: the extension watches the major media sites, including YouTube, Spotify, Apple Music, Tidal, SoundCloud, Vimeo, Twitch, Deezer and Amazon Music. Third, remember Echo only notes things after about 10 seconds of actual, audible playback, so muted clips and quick previews are skipped on purpose.
That message means the extension can't reach the Echo app right now. Open Echo (check for the three-bar icon in the menu bar) and the extension reconnects automatically within a few seconds, no pairing needed. If Echo is open but still not detected, make sure your licence is activated, since Echo only starts its browser connection once it's unlocked, and try quitting and reopening your browser once so it picks up the fresh connection. Keeping your browser up to date also helps: the most reliable connection method needs Chrome 144 or newer.
Echo is choosy on purpose, so your history stays meaningful. Things are only noted after about 10 seconds of continuous, audible play (adjustable in Settings, General, "Only Note After"), so skipped tracks and muted autoplay clips never appear. Messaging, mail, meetings and document sites (WhatsApp, Slack, Google Meet, Google Docs and friends) are always ignored, as are screen recorders. Also check that Pause Echo isn't switched on, and that the app or site isn't in your Never Record lists under Settings, Privacy & Permissions.
Echo saves your position every few seconds while something plays. If you deliberately move back to an earlier moment, Echo takes that as your new place and returns you there next time. Otherwise it keeps the furthest point you genuinely reached, so an accidental restart can't erase your progress. If a resume seems off, play the item for a few seconds so a fresh position is written, then it will be exact from there. Two behaviours are deliberate: finishing something and starting it again from the top resets it so you can rewatch, and ordinary songs restart from the beginning by design, while podcasts, videos and long music continue mid-way.
Browsers only let a brand-new or long-idle tab start making sound while it's front and centre, a rule designed to stop pages autoplaying behind your back. So when a resume needs a fresh tab, Echo opens it in front just long enough to get it playing, then returns you to the tab and app you were in while the audio continues in the background. Granting Echo the Accessibility permission (Settings, Privacy & Permissions) makes these quiet resumes succeed more often. Videos resumed with plain Return normally use Echo's own player instead, which avoids tabs entirely.
Yes. Echo already tucks the player away moments after a quiet resume, but for complete invisibility turn on "Hide Spotify & Music On Resume" in Settings, under Playback. It needs two macOS permissions: Accessibility, to move the player's window out of sight, and Screen Recording, which is used only to copy the small strip of screen behind the parked window so it's perfectly covered. Nothing is ever recorded or sent anywhere. After granting both, quit and reopen Echo and resumes become fully seamless.
Apple Podcasts is the one app that offers no direct way for other apps to control it, so Echo presses its Play control for you through the Accessibility permission. Grant it in Echo's Settings, under Privacy & Permissions (or when macOS asks), then quit and reopen Echo. From then on, picking an episode resumes Podcasts quietly in the background, and Echo will even launch the app for you if it's closed. Without the permission, Echo still tries its best, but resume is much more reliable with it granted.
When a keyboard combination is already claimed by another app or by macOS itself, the system gives it to whoever registered first, so Echo's press never arrives. The fix is quick: open Settings, go to Shortcuts, click the shortcut and record a new combination. Echo validates it as you type and warns about clashes with its own keys. Combinations with two modifiers (like Cmd-Shift or Ctrl-Option) are rarely taken. If the overlay opens but a key inside it does nothing, check the same panel, since every overlay key is rebindable too.
Email support@theodorehq.com. A real person, not a bot, reads every message and usually replies within a day. Whether it is a question, a bug report, or an idea for Echo, we would love to hear from you. You can also report bugs, request features, and vote on ideas right here on the feedback board.
Next to none. Echo is designed to sit in the background using a fraction of a percent of your Mac's processing power, whether music is playing or not, so it has no meaningful effect on battery or performance. The menu-bar icon animates gently while something is playing and holds still when paused; if you would rather it never moved, turn off Animate Menu-Bar Icon in Settings. If Activity Monitor ever shows Echo working harder than that, make sure you are on the latest version (Echo menu > Check for Updates), as 1.0.16 made Echo dramatically lighter.
Completely. Everything Echo records stays on your Mac: there is no account, no cloud and no analytics. The browser extension only reads the title, artwork and playback position of tabs that are playing media, and passes them straight to the Echo app on your own Mac over a loopback connection (127.0.0.1) that never touches the internet. It never reads your browsing history or page content, and nothing is ever sent to us.
Everything you play stays on your Mac: history, artwork, Moments and listening sessions live in local files under your user library, and your licence key sits in the macOS Keychain. Echo has no analytics, no telemetry and no account. The only network traffic is: an occasional licence check with our payment provider (your key and your Mac's name, never your history), the hourly check for app updates, and fetching cover images over secure connections. Playing something naturally streams from that service, exactly as if you'd pressed play yourself.
Absolutely, you're in full control. In Settings, under Privacy & Permissions, add any app or website to the Never Record lists and Echo will ignore it completely. Sensitive places are already excluded for you: messaging, mail, meetings and document sites never enter your history. You can also pause all tracking with one switch (Settings, General, Pause Echo), remove any single item or a whole app's items from the overlay, clear everything, or cap how long history is kept. Deleting an item also removes its cached artwork from disk.
Not unless you ask it to. Diagnostic Logging is off by default. If you're troubleshooting something with us, you can turn it on in Settings, under Privacy & Permissions, and Echo keeps a local log you can export and attach to a support email yourself. Nothing is ever sent automatically, the file lives only on your Mac, and switching the toggle off deletes it immediately so nothing lingers.
Muse
68Muse is a native Mac app for collecting and organising the things you find online: images and screenshots, links and bookmarks, video, and notes. Everything lives in one private library made of real files on your own Mac, with no account and no cloud. Save something with a drag, a shortcut, or the browser clipper, and Muse tidies it away and tags it for you on-device, so you can find it again later by a word, a colour, or even the text inside a screenshot.
Muse needs macOS 14 (Sonoma) or later and an Apple Silicon Mac (the M1, M2, M3 and M4 family). It is a notarised app that installs like any other: download it from theodorehq.com/muse, drag it to your Applications folder, and open it. Updates arrive automatically. Muse is not sandboxed and is not on the Mac App Store, which is what lets it capture from anywhere on your screen and keep its files where you can see them. Muse does not run on older Intel Macs.
Download Muse from theodorehq.com/muse, open the disk image, and drag Muse into your Applications folder. The first time you open it, right-click the app and choose Open so macOS lets a freshly downloaded app run. Muse starts your 30-day free trial straight away, with no card needed. It opens to a near-empty library and one gentle prompt: drag anything in, or press the capture shortcut, and you are collecting.
Yes. Muse comes with a full 30-day free trial, and you do not need to enter any card or payment details to start it. Every feature is available during the trial, so you can build a real library and see how it fits your work. When the trial ends, buying a licence unlocks the same library you already built. Nothing you saved is lost or held back.
No. Muse has no account and no sign-in. You download the app and start using it, and your library lives entirely on your Mac as real files. When you buy, you activate a licence key (which arrives by email from our checkout), but that is a one-time step, not an account you log into. There is no password to remember and nothing syncing to a server.
The quickest way is to drag an image, a file, or a link straight onto the Muse window. It saves immediately, with a short "Saved to Inbox" confirmation, and a folder brings everything inside it. You can also press the capture shortcut from anywhere: the Launcher opens with Cmd-Shift-K, or grab a screenshot into Muse with Cmd-Shift-S. Anything you save while you are somewhere else, like a page clipped with the browser extension, arrives on a small Capture Card with a title, a collection, and tags already filled in, so you can confirm it with Cmd-Return.
Muse gives you five ways to collect. Drag anything anywhere on your Mac and the Drop Ring appears to catch it. Use the browser extension to right-click and save an image, link or whole page, or point the in-page clipper at what you want. Press Cmd-Shift-S for a screenshot straight into the library. Open the Launcher with Cmd-Shift-K to search, save or paste from any app. All of the shortcuts can be changed in Settings.
Press Cmd-Shift-K from any app and the Launcher floats up over whatever you are doing. Type to search your whole library, press Space to preview an item without leaving the Launcher, and drag results straight out into another app. Results are listed in one steady order: your bookmarks, then your collections, then your pictures and video, and a collection whose name you type exactly comes straight to the top. On a collection, Return steps inside it so you can keep browsing without leaving the Launcher, and Command-Return brings Muse to the front with that collection open. You can also reach your Downloads folder from here, and Shift-Return pastes a saved link into the app you were just in. Press Escape and you are back exactly where you started. The shortcut can be changed in Settings.
When something arrives in Muse while you are working somewhere else, like a page clipped with the browser extension, a small frosted card appears with the title, collection and tags already filled in. Tab moves between the fields, and Cmd-Return saves. If you do nothing, it waits patiently rather than dismissing, so reading a page never loses your save. It can even appear before a download finishes and attach itself to the real file once it lands. Anything you save in Muse yourself, by dragging it in or pasting it, goes straight into your library with a short confirmation instead. You can turn the Capture Card off in Settings if you would rather every save dropped straight into your Inbox.
The Muse extension works in Chrome and the Chromium browsers (Edge, Brave, Arc and others) and in Firefox 121 or later. There are two ways to clip: right-click and choose Save Image, Video, Link, Selection or Page to Muse, or summon the in-page clipper (hold Option by default), then click whatever lights up. The extension only talks to the Muse app on your own Mac, and the app downloads the media itself. Install it from the links on theodorehq.com/muse.
Press Cmd-Shift-S and Muse starts an interactive screen grab: drag to select a region, or press Space to switch to capturing a whole window. The shot lands directly in your library, and Muse remembers the page or app it came from so the screenshot carries its source. There is no separate save step. You can change the screenshot shortcut, like every other shortcut, in Settings > Shortcuts.
The Drop Ring is Muse's catch-anywhere target. Start dragging any image, file or link anywhere on your Mac, then hold Control, and a small radial dial blooms around your cursor: Inbox at the top, your Downloads folder at the bottom, and your top collections around the ring. Keep holding as you move onto the one you want, and let go to drop. Release Control before you finish and the ring tucks away again, which is what keeps it clear of everyday dragging.
Waiting for a key is how Muse ships, so that moving files around your Mac never summons something you did not ask for. All of it is adjustable in Settings → Muse → Drop Ring:
- Hold to Summon. On by default. Switch it off and the ring appears on every drag, with no key at all.
- Summon Key. Control by default. You can swap it for Command, Option or Shift.
- Show For. Set to every app by default. Switch it to Browsers and the ring only appears for drags that start in a web browser.
- Never Show For. A list of apps whose drags Muse leaves alone entirely. CleanShot X is on it out of the box, so dragging from its screenshot tray behaves as it always did.
The ring only considers drags carrying an image, a file, a link or text, and it ignores anything dragged from inside Muse's own window.
The shelf is an optional tray that lives at the edge of your screen for staging things in and out without opening the main window. It is off by default. Turn it on in Settings, and then summon it with Cmd-Shift-M or by nudging your pointer to the screen edge. It is handy if you like to gather a few things before filing them properly. If you would rather keep it simple, leaving it off changes nothing else about how Muse works.
Collections are your folders, and they nest: a collection can hold sub-collections, shown as neat piles inside it, and they appear in every view rather than only in the grid. Every item lives in exactly one collection, so filing something moves it there rather than leaving a copy where it was. If the same thing genuinely belongs in two places, save it twice and give each one its own name, and Muse keeps them as separate entries with their own tags and notes. Anything you have not filed yet waits in the Inbox until you sort it, and an item you take out of a collection simply goes back to being unfiled.
Yes. A collection is drawn as a small stack of pictures, and by default Muse uses the newest few. To pick the one on top yourself, open the collection, right-click the picture you want and choose Set as Board Cover. It moves to the front of the stack straight away. The cards behind it carry on updating on their own, so the stack still shows what has arrived recently. To hand the choice back to Muse, right-click the same picture and choose Remove Board Cover. If that picture is later moved elsewhere or deleted, the collection quietly goes back to choosing for itself.
Muse tags your items for you, on your Mac, using Apple's built-in intelligence. Images and video are read by Vision and tagged with what they show, with a colour name as a fallback so nothing is left bare. Links have no picture to read, so they are tagged from their words: the site name and the key nouns in the title. You can always add or remove tags by hand. If you add your own Anthropic API key, Muse can write richer tags with Claude instead.
Drag across an empty part of the grid and a box appears, selecting everything it touches. Hold Shift or Command while you drag to add to what you have already picked rather than starting again. Cmd-click adds or removes one thing at a time, Shift-click takes everything between two items, and Cmd A selects everything in view. Cmd Shift A clears the selection.
Once you have a selection, the pill at the bottom of the window acts on all of it at once, and so does the Item menu: file it into a collection, favourite it, copy it, save it to Downloads, or delete it. Dragging any one of the selected pictures carries the whole selection with it, into another app or onto a collection in the sidebar.
Press the question mark key at any time for the full list of shortcuts.
Press Cmd-K and one search box looks across your whole library at once: titles and notes, your tags, the text found inside images, and more, ranked so the best matches come first. You can also reach it from the Launcher outside the app. Because Muse understands your items in a few different ways, the same box lets you search by a word, by a colour, or by describing what you remember, all covered in the questions below.
Yes, both ways. Select a picture and press Cmd C, then paste it straight into Messages, Figma, a document, anywhere that takes an image. It works on a whole selection too, so you can copy twenty pictures at once.
Going the other way, copy something anywhere on your Mac and press Cmd V in Muse. It lands in the collection you are looking at, or your Inbox if you are not in one. Links, pictures, files and plain text all work.
The Edit menu also carries Copy Source Link and Copy File Path for when it is the address you want rather than the picture. Dragging works as well: drag a picture out of Muse into another app, or drag files in from Finder.
Yes. Muse reads the text inside your images and screenshots using Apple's on-device text recognition, and folds that text into search. So if you saved a screenshot of an article, a slide, or a receipt, you can find it later by typing a phrase that appears in the picture, even though you never wrote that phrase down. Muse reads the words on the first page of a saved PDF or document the same way, so an invoice or a contract is findable by what is printed on it. It all happens on your Mac, with nothing sent anywhere, and it works quietly in the background as you save.
Yes. Muse works out the main colours of every image you save, on-device, so you can type a colour name into search, like teal, mustard or navy, and Muse surfaces the items that match. It is a lovely way to pull a palette together or find that one warm-toned reference you know you kept. Like the rest of Muse's everyday intelligence, colour search runs entirely on your Mac.
Yes. Drag a message straight out of Mail and drop it into Muse, and it is saved like anything else, with no need to turn it into a PDF first.
It arrives named by its subject and its sender, rather than by whatever Mail happened to call the file, and Muse shows it as a readable card of the message, so you can tell your saved emails apart at a glance. Every word inside the message goes into search too, so an email comes back from the thing you actually remember about it: a name in the second paragraph, a date, a price. It is tagged from its own words, the same way a saved link is.
Anything attached to the message is saved as its own item alongside it, named, tagged and filed in the same place, so a photograph somebody sent you sits in your library like any other picture. The email's card names what came with it. Signatures and the other bits of mail plumbing are left behind, so you get the files somebody actually sent you and nothing else.
Yes. Muse can find images by what they show, not just by their tags, so you can search for something like quiet minimalist kitchen and get matching pictures even if none of those words were ever typed on them. This meaning-based search is powered by a small image model that Muse downloads once (about 300 MB) and then runs fully on your Mac. Give a large new library a little time to finish reading through your images the first time.
Yes. When you save a PDF or a document, Muse reads the first page and folds those words into search, so you can find an invoice by the amount printed on it, or a contract by a name in it, without ever having written those things down yourself.
It tags them from the page as well, so a saved invoice arrives already carrying words like "invoice" alongside whatever else is on it. Documents are tagged on what they say rather than on how the page looks, so you do not end up with a library full of things tagged "black and white".
This works on PDFs, Word and Pages documents, spreadsheets, presentations and plain text. A file Muse cannot read a page of, such as an archive or a disk image, is tagged from its filename instead. It all happens on your Mac using Apple's own text recognition, with nothing sent anywhere.
Yes, in two ways. Open an item's Info panel and choose Find Similar, and Muse surfaces other items in your own library that look like it, matched on your Mac. Or press V for Muse Vision, which searches the web visually and shows related images in a pane inside Muse, so you can chase an idea further without opening a browser. Find Similar stays entirely on-device; Muse Vision reaches out to the web, so it needs a connection.
Yes. From an image's Info panel, Muse can produce a text prompt describing it, useful for feeding into an image generator. The instant version is composed on your Mac from what Muse already knows about the picture: its colours, its tags, and any text it contains, with nothing sent anywhere. If you add your own Anthropic API key, Muse can send the image to Claude for a richer, reference-grade description. Without a key, you get the instant local version.
Links are first-class in Muse, not an afterthought. Save a page and it becomes a visual card with the site's icon, a clean title, and the page's own preview image when it publishes one. That means your bookmarks look like the things they point to and sit happily beside your images. Muse fetches each link's icon and preview picture once and then keeps them locally, so your saved pages stay recognisable even as the web changes.
Yes. Muse imports from a Pocket export (the ril_export.html file), an Eagle library folder, a Raindrop.io CSV export (it also reads generic CSVs), a Pinterest account export, and browser bookmarks in the universal HTML format that Chrome, Safari, Firefox and others all export. Everything is read from the files you already have, so your existing collections come across with their structure intact.
From version 1.0.21 a Pocket export brings across your links and their titles, your tags, the date you saved each one, and your Unread and Read Archive sections as two collections. Pocket closed in 2025 and its export window has shut, so whatever is in your Downloads folder is the only copy that will ever exist.
Also from 1.0.21, anything you import keeps its original save date rather than arriving stamped with the day you imported it, so a library built up over years arrives spread across those years. If you imported before that version, Muse restores those dates the first time you open it.
You will find the import options in Settings under Import & Export, and on the welcome screens when you first set Muse up. Import from the menu or from Settings rather than dragging the file onto the window: a dragged Pocket file is filed as a document rather than read as a list.
Yes. Turn on the X bookmarks toggle in the extension popup and approve the permission it asks for. Then, as you scroll your own X bookmarks page while signed in, Muse quietly reads the bookmarks your browser is already loading and files them into your library, with photos saved at full resolution. Muse sends nothing to X; it only reads what is already on your screen. To backfill everything, scroll back through your bookmarks page once. It is off until you switch it on.
Ask Pinterest for your data, from Settings > Privacy and data on their site. They email you a zip within a day or so. Unzip it, then in Muse open Settings > Import & Export and choose Pinterest Export. Pick the export and Muse does the rest: your pins arrive as pictures and each of your boards becomes a collection with its pins inside it.
The export is a folder of around 27 subfolders and you do not need to know which one matters. Muse recognises a Pinterest export whichever part of it you point at and reads the whole thing.
Two things are worth expecting. Pinterest's export contains no pictures at all, only text, so Muse fetches every image afterwards: a 2,000-pin account takes a while, needs to stay online, and comes to roughly 600 MB. And the number of pictures will be lower than your number of pins, on purpose. A pin you saved to three boards becomes one picture that lives on all three rather than three copies of the same thing.
The Canvas is an infinite, freeform board for laying your collected items out in space: pan around, zoom in and out, and double-click to fly to anything. It is made for arranging and comparing your references, moodboard style, rather than for drawing, so it keeps things calm and uncluttered. When a board is how you want it, you can export the whole thing as a PDF to share or print, and Muse tiles very large boards neatly across pages.
Select any item and press Space to open it large over a softly blurred backdrop tinted to its own colours. Press Space again to fill the whole screen, and Escape to step back to your grid. Video keeps playing the whole way through. It is the quickest way to study a reference without leaving what you were doing, and it works the same in the main window and in the Launcher.
Video is a first-class part of your library, sitting alongside your images. Muse saves it, shows it as a card with a poster frame, and plays it inside the app: press Space to open it and it plays right there, full screen with a second press. Play, pause and scrubbing live on the controls that appear over the video as you move the pointer, and clicking anywhere else closes the preview, the same as it does for an image. Clips you save from the web are downloaded where that is possible, so they keep working even if the original page changes. You can search and tag video just like everything else.
Give any item a star to favourite it: right-click and choose Favourite, or press F with it selected. Your favourites gather in their own Favourites section in the sidebar, so the pieces you keep coming back to are always one click away, whichever collection they live in. Press F again to remove the star. It is a light way to lift your best finds above everything else.
Your whole library lives in a folder called Muse Library, kept by default inside your Pictures folder, as ordinary files you can see. From Settings you can reveal it in Finder any time, and there are your originals in plain folders rather than locked inside a database. You can also move it: Settings, then Library, then Change puts your library on an external drive or anywhere else with more room, which is worth knowing if your startup disk is tight. See "How do I move my library to a new Mac?" for what that does. Because they are real files, your collection is yours to browse, copy and keep, with or without Muse open.
Open Settings and, under Backup, choose a backup folder, ideally one that syncs to the cloud like iCloud Drive or Dropbox. Muse then saves regular snapshots of your library there, keeps as many recent ones as you choose, and can run on a set schedule even when Muse is closed. You can also press Back Up Now at any time. One tip: keep your live library out of a cloud-synced folder, and let the backups live there instead.
A snapshot holds everything a library needs: the database, your originals, the site icons and the preview images for your links. The only thing left out is the grid's thumbnail cache, which Muse rebuilds from your originals, so a restored library is complete without it and the backup stays a good deal smaller.
Yes. Open Settings and choose Export a Copy, and Muse writes a plain, self-explanatory copy of your library to a folder you pick, organised by collection, that makes sense on its own without the app. Together with the fact that your library is already real files on your Mac, it means you are never locked in: your collection is yours to take with you whenever you like.
Muse keeps your library on the Mac it runs on, with no cloud account syncing it between machines, which is part of what keeps it private and fast. Your one licence covers up to three Macs, and each keeps its own local collection, so there is no automatic sync between them today. If you need the same library in two places, your files are plain files you can copy across, and the Backup and Export tools in Settings give you clean copies to work from.
You do not need to worry about saving something twice. When you save a file that is identical to one already in your library, Muse recognises it and quietly merges the two rather than making a second copy. The save still succeeds, and the item simply gains the new source or collection you filed it into. It keeps your library tidy without ever interrupting a capture to ask.
Web pages work slightly differently, because saving the same page twice is sometimes what you meant. Muse saves it and tells you: the capture card marks the collection in rose and reads "Already Saved", naming the collection the earlier one is in, so you can keep it or press Escape.
To remove an item, right-click it and choose Delete, or press the Delete key with it selected. It does not vanish: it moves to the Trash, which has its own section in the sidebar, so you can change your mind. Open Trash, right-click an item and choose Restore, and it goes back where it was. Items rest there rather than disappearing. To clear the Trash out for good, right-click Trash in the sidebar and choose Empty Trash, or type "empty trash" into the Cmd K search. Muse asks first, and the files themselves move to your Mac's Trash rather than being destroyed, so they can still be put back from the Finder afterwards. Emptying needs version 1.0.19 or later.
Yes. Open the View As options at the top of the window to switch between a moodboard-style grid of cards and a tidy list, and to adjust things like how many columns you see and what each card shows. The sidebar also has a Types section, so you can jump to just your images, links, video and more with a click. Each view remembers its own settings, so a single collection and your whole library can each look the way that suits it.
Muse is a one-time purchase of $29. There is no subscription and no yearly fee, and every future update is included at no extra cost. You can try the whole app free for 30 days first, with no card needed, and buy only if it earns a place in your work. It is a deliberately fair, pay-once price in a category full of subscriptions.
When your trial is running or has ended, choose Buy in the app and you are taken to our secure checkout. After paying, you receive a licence key by email that looks like MUSE- followed by a set of characters. To enter it, open Settings, go to About, and choose Enter Key in the Licence section. You can do that at any point, including partway through your trial, so buying early never means waiting. Paste the key, choose Activate, and Muse confirms that it is yours. Your files never change during this; activation simply lifts the trial lock.
Each Muse licence activates up to 3 Macs, and you can manage those devices yourself at any time. Sign in to your Polar account with your purchase email and you will see your licence key and the Macs it is currently active on. Deactivating a Mac you no longer use frees that slot immediately, which is worth knowing if you reinstall macOS or reset your Mac, because a fresh install claims a new slot even on the same machine.
One licence covers up to three Macs, so your desktop and laptop can both run Muse from the same key. If you try to activate a fourth, Muse tells you the key is already on three Macs and points you to deactivate one. Since your library is local to each Mac rather than synced, each machine keeps its own collection.
On the Mac you are moving away from, open Settings > Licence and choose Deactivate This Mac. That frees a slot on your licence. Then install Muse on the new Mac and paste in the same key to activate it. If the old Mac is gone or unavailable and you are stuck at the three-Mac limit, email support@theodorehq.com and we will free a slot for you.
Yes. Because there is a full 30-day free trial, you can be sure Muse suits you before you pay. On top of that, our terms give you a 14-day cooling-off right after purchase, and your statutory rights under the Consumer Rights Act 2015 always apply. If something is not right, email support@theodorehq.com and we will sort it out. Refund details are on the terms page at theodorehq.com/muse/terms.
Your licence key was sent to the email address you used at checkout, in the order confirmation, so a quick search of your inbox for Muse usually turns it up. If you cannot find it, email support@theodorehq.com from the address you bought with and we will resend it. There is no account to log into, so your purchase email is the record of your licence.
Three quick checks fix almost every case. First, make sure the Muse app is actually open, since the extension saves into the running app. Second, confirm the extension is installed for the browser you are using, from the links on theodorehq.com/muse. Third, if your trial has ended, activate a licence, because saving is paused while the app is locked. The extension popup shows whether it is connected to the app, which tells you at a glance where the gap is.
X syncing is off until you switch it on, so start by opening the extension popup and turning on the X bookmarks toggle, then approve the permission it requests. After that, the key step is to scroll through your own X bookmarks page while signed in: Muse reads the bookmarks as your browser loads them, so scrolling back through the page is what backfills your history. Nothing is sent to X, and only photos and resolvable videos come across.
These two features use an optional image model that Muse downloads once, about 300 MB, the first time you use them. If results are empty, it may still be downloading, or your images may still be indexing after a big import. Give it a few minutes on a good connection, then try again. Everyday search by word, tag, colour and image text does not need this pack and works straight away.
From version 1.0.18 the pack also steps out of memory when you have not searched by meaning for a few minutes, which is what keeps Muse light while it sits open. The next search of that kind brings it back, so it can take a moment longer than usual before results appear. Find Similar is not affected and stays instant either way.
The richer, cloud-powered options, a reference-grade image prompt, Claude-written tags, and understanding full-sentence searches, are optional and run on your own Anthropic API key. If they seem to do nothing, add your key in Settings. Without a key, Muse quietly uses its built-in, on-device intelligence instead, which covers tagging, image-text and colour search, and the instant local prompt, so the app is fully useful with no key at all.
Roughly two in five web pages do not publish a preview image, so Muse shows a tidy card with the site icon and a clean title instead. That is expected, not a fault. If no links are showing previews at all, check that link previews are switched on in Settings, and that you are online, since Muse fetches each preview once. After the first fetch, the image is stored locally and stays put.
Muse's shortcuts, like Cmd-Shift-K for the Launcher or Cmd-Shift-S for a screenshot, are global, so if another app or a system feature already uses the same combination, Muse's version can be blocked. Open Settings > Shortcuts and rebind the one that is not firing to a free combination. The shortcuts listed in Settings > Shortcuts are the rebindable ones: the Launcher, the shelf, screenshots, saving a web page, the sidebar and the Vision engine. Muse's other keys, like Cmd K for search or the single letters that act on a selected item, are fixed and only work while Muse is in front, so they cannot clash with another app.
When you use the grab hotkey or the clipper, Muse asks the browser for the address of the page you are on, so a saved image or clip carries a link back to where it came from. macOS shows a one-time Automation prompt for this the first time. Approving it is what lets your saves remember their source. Muse uses it only to read the current page's URL, nothing more.
The first time you open any freshly downloaded app, macOS checks it with Gatekeeper. Muse is a notarised Developer ID app, so it is trusted, but if macOS is cautious, right-click (or Control-click) the Muse app in your Applications folder and choose Open, then confirm. You only need to do this once. After that, Muse opens normally, and future updates arrive quietly through the app.
No. Your library is stored as real files on your own Mac, and Muse has no cloud sync and no server that holds your collection. The everyday intelligence, tagging, image-text search, colour search and meaning search, all runs on your machine. The only things that leave your Mac are a few narrow, expected requests, covered in the questions below, and none of them include what you actually save.
Muse has no account, no login and no profile of you. It does record a small number of anonymous, non-identifying usage events, like the app being opened or a trial starting, so we can see roughly how the app is doing. These carry no personal information, no stable identifier, and never anything about what you save. The next question explains exactly what is and is not recorded.
Muse records four coarse events: the app being opened, a trial starting, a trial ending, and a licence being activated. They go to a small server we host ourselves, not a third-party analytics company, and they carry no name, no email, no device fingerprint and nothing about your library. We use them only as simple counts to understand how many people are trying and buying Muse. What you save, search for, or organise is never part of this and never leaves your Mac.
By default, no. Tagging, reading text inside images, colour search and meaning search all run on your Mac, and your pictures are not sent anywhere. There is an optional cloud tier for a richer image description and better tags, but it only works if you add your own Anthropic API key, and it stays completely off until you do. With no key, every AI feature that Muse uses is on-device.
The extension reads the page you are actively clipping so it can send that image, link or page to Muse, and, if you switch it on, the bookmarks on your own X page. It does not read your browsing history or other tabs. It talks only to the Muse app on the same Mac over a local connection that never touches the wider internet, and the app downloads any media itself. Nothing goes to an outside server.
Your files are always yours. When a trial ends, the app locks so you cannot save or edit until you buy, but nothing is deleted, and buying reopens the exact library you built. Because your collection is real files in a visible folder on your Mac, you can open, copy and back it up in Finder at any time, with or without Muse running. Your originals never leave your machine and never expire.
Yes. Muse is built to be private: your library never leaves your Mac, there is no account, and the only data we collect is a handful of anonymous usage counts. The maker, THEODORE HQ, is a company registered in England and Wales, and the app is covered by a plain privacy policy and terms at theodorehq.com/muse that set out your rights under the UK GDPR and the Consumer Rights Act 2015.
Select one item or a hundred, then press M. Muse asks where to file them, you type a few letters of the collection name and press Return. The list names the collection each one sits inside, so two collections sharing a name are easy to tell apart, and you can create a new collection from the same box by typing a name that does not exist yet. Press Escape to back out without filing anything. Every keyboard shortcut Muse listens for is listed in the app if you press the question mark key.
A freshly opened Muse sits at roughly 450 MB with a library loaded, most of which is the pictures you are looking at and the window drawing them. That figure rises while you work, which is normal: Muse keeps recently viewed images ready so scrolling back through a collection stays instant, and it hands those back when it no longer needs them.
Searching by meaning adds more for a while, because that uses an on-device model. From version 1.0.18 the model loads only when you first search and steps out again a few minutes after you stop, rather than sitting in memory for the whole time Muse is open. If you ever noticed Muse sitting high in Activity Monitor, updating to 1.0.18 or later resolves that.
One thing worth knowing when you check: macOS reports memory being handed back late, often a minute or two afterwards, so the number in Activity Monitor lags behind what Muse has actually released.
Almost always this is the summon key. Muse ships with the Drop Ring waiting for Control, so that dragging files around your Mac never calls up something you did not ask for. Start the drag first, then hold Control, and the ring opens around your cursor. Keep holding while you move onto the collection you want, and let go to drop.
If you would rather it appeared on its own, open Settings → Muse → Drop Ring and switch off Hold to Summon. The same panel lets you swap the key for Command, Option or Shift.
If you are already holding the key and the ring still stays away, one of these will be why:
- Show For is set to Browsers, and the drag started somewhere else. Set it to Every App.
- The app you are dragging from is listed under Never Show For. CleanShot X is on that list out of the box, so drags from its screenshot tray are left alone on purpose.
- The drag started inside Muse's own window. The ring only catches things arriving from other apps.
- The thing being dragged is not an image, file, link or piece of text.
The Drop Ring section in Settings shows its current mode next to the heading, either Browsers or Every app, so you can see how it is set without opening anything.
From version 1.0.19 Muse can do this for you. Open Settings → Library → Change, pick where you want the library, and Muse copies everything across, checks the copy is complete before it switches over, and restarts into it. Your old folder is left exactly as it was. That is also how you point Muse at a library you have already carried over: choose the folder it is in and Muse opens it rather than copying anything.
If you would rather do it by hand, or you are on an older version, it is a plain folder copy. Your whole library is a single self-contained folder, so moving Macs is a copy rather than an import. By default it lives in your Pictures folder and is called Muse Library. Inside it are your original files, in dated folders under their real names, alongside the small database that holds your collections, boards and tags. Settings → Library → Your Files shows the path and has a Reveal button that opens it in Finder.
To move everything over:
1. Quit Muse on the old Mac, so the database is closed and settled.
2. Copy the Muse Library folder to the new Mac, by AirDrop, an external drive, or whichever way you prefer.
3. Put it in the same place, inside Pictures, and open Muse. It picks up exactly where you left off.
If you would rather keep it somewhere else, put it wherever you like and open Muse. When it cannot find a library it asks you to point at the folder, and everything comes back once you do.
Two things in Settings help here. Backup keeps scheduled copies in a folder you choose, and one of those is often the easiest thing to carry across. Export a Copy writes a plain version organised into folders by board, with real filenames, links as double-clickable .webloc files and notes as .txt, which is useful if you want a copy that does not need Muse at all.
Your licence covers up to three Macs, so activating on the new one does not cost you the old one. See "How do I move my licence to a new Mac?" if you want to free a slot.
Post it on this Support Centre. Report a Bug and Request a Feature are both here, they take no account and no email, and every post is read.
Muse asks for no email address and never phones home, so a post here is genuinely the only way something reaches us. If a bug is stopping you buying, or there is one feature you are waiting on, say so plainly: that is the most useful thing anyone sends us, and it is what decides what gets built next.
Three ways in, all the same place:
1. From Muse: the Help menu lists Report a Bug, Request a Feature, Review Roadmap and the rest.
2. From Settings: open Settings → Support for the same list with a line of description under each.
3. From here: the sections at the top of this Support Centre.
Leave an email address when you post and you will get our replies by email. Leave it out and the post is completely anonymous; it is read either way.
Review Roadmap shows what is already planned, so it is worth a look before you write: your request may already be on it, and adding a comment to an existing one carries more weight than a second copy of it.
From version 1.0.20, new installs meet all of this during setup, so nobody has to go looking for it.
Muse has a Save Web Page shortcut that works from any browser, with no extension needed. Press it while a page is in front and Muse asks the browser for the address and the title, then shows you the Capture Card with both already filled in, ready for you to set the collection and tags. Press Cmd-Return and the page is saved as a link, with a snapshot taken in the background so you keep what it said. It works in Safari, Chrome, Arc, Dia, Edge, Brave and Vivaldi. If something other than a browser is in front, Muse tells you there is no page to save rather than guessing. The shortcut is listed in Settings > Shortcuts, where you can rebind it.
Chorus
47Chorus is a menu-bar app that gives you real control over your Mac's audio. Group several output devices so they play as one, with a proper volume slider (something macOS's own multi-output tool cannot do). Pick your microphone, send individual apps to specific speakers, switch automatically when a device connects, and trigger any of it with a keyboard shortcut. Built for setups like two Studio Displays that should just work together as one sound.
Just download and open it. Every feature works immediately for 30 days, with no account, no card details, and nothing to fill in. If you decide to keep it, it is a one-time purchase of $4.99 with no subscription. If you don't, the trial simply ends and nothing is charged. There is no separate "demo mode" to worry about; the trial is the full app.
Download the DMG from theodorehq.com/chorus, open it, and drag Chorus into your Applications folder. When you open it for the first time, a small speaker icon appears in your menu bar. That icon is Chorus: click it to see the panel with your outputs, input and playing apps. There is nothing else to set up, and no restart is needed.
Chorus lives entirely in the menu bar, so it never appears in the Dock or in Cmd-Tab. This is intentional: it is a quick-access audio control, not a document window you switch between. Look for a small speaker icon in the menu bar at the top of your screen, usually near the clock. Clicking it opens the panel; right-clicking it opens Settings and other options.
Right-click (or Control-click) the Chorus icon in your menu bar and choose "Settings…" from the menu that appears. The same menu also has "Open Chorus" for the main panel, a Support submenu, "Check for Updates," and Quit. Settings itself is a separate window with tabs for General, Outputs, Inputs, Auto-Switch, Volume & Keys, Shortcuts, Automation and About.
Chorus needs macOS 13 (Ventura) or later and runs natively on both Apple Silicon and Intel Macs, since it ships as a single universal app. Two features need a slightly newer system: per-app volume and routing, and the live level meters in the panel, both need macOS 14.4 or later, because they use a newer part of macOS's audio system. Everything else works from macOS 13 onward.
Chorus checks for updates automatically, roughly once an hour, and again shortly after it starts up. When one is found you'll see a Sparkle update prompt with what's new; approving it downloads and installs the new version for you. To check right away, right-click the menu-bar icon and choose "Check for Updates." Every future update is included at no extra cost, whether you're on the trial or have bought a licence.
Right-click the menu-bar icon, choose Settings, and open the General tab. Turn on "Launch at Login" and Chorus will start quietly in the menu bar every time you sign in, with no window popping up. This uses Apple's standard Login Items system, so you can also switch it off from System Settings, General, Login Items if you ever prefer to start Chorus manually.
Right-click the menu-bar icon and choose Quit, then drag Chorus from your Applications folder to the Trash. Chorus doesn't install a driver, a kernel extension, or anything else outside the app itself, so nothing is left behind that changes how your Mac's audio works; it goes straight back to exactly how it was before. If you turned on Launch at Login, that setting is removed automatically when you delete the app.
Open the panel and click the "New Group" button in the Output card (the small icon in its top-right corner). Choose the devices you want to play together, such as two Studio Displays, give the group a name, and save it. The group then appears in your Output list alongside your single devices, and selecting it sends audio to every device in it at once, in sync.
Yes. Once a group is selected, the panel shows a master volume slider for it, and your Mac's volume keys and menu-bar scroll both control that group directly. This is the main thing Chorus adds over macOS's built-in multi-output device, which plays to several speakers at once but gives you no way to control their combined volume at all.
Yes. Open the group in the panel and you'll see a separate slider for each device inside it, shown as a percentage, alongside the group's overall master volume. If one Studio Display naturally plays louder than the other, pull its slider down until they sound even, then leave the master slider for your everyday volume control. Balance settings are saved with the group.
Double-click the group's name in the Output card and it turns into an editable text field. Type the new name and press Return to save it. There's no separate rename menu to hunt for; the name itself is what you click. This works for any group at any time, whether or not it's currently active.
Yes. Open the panel and every app currently playing audio appears in the Apps section with its own volume slider, going up to 400% for a real boost, plus a mute button. Changing one app's volume has no effect on anything else playing. This needs macOS 14.4 or later; on 13 or 14.3 the Apps section simply doesn't appear, since the underlying system support isn't there yet.
Yes, this is one of Chorus's core features. In the Apps section, click an app's device menu and choose where it should play, separately from everything else. Music can stay on your desk speakers while a call goes to your headphones, each at its own volume. Chorus remembers each app's chosen device, so it keeps routing there the next time that app plays sound.
Open the panel and the Input card shows your available microphones. Click the one you want, and it becomes your Mac's system default input straight away, the same as changing it in System Settings, only faster. If you don't see a microphone you expect, check Settings, Inputs to make sure it hasn't been hidden.
Yes. Turn on Auto-Switch in Settings, then build a priority list: a rule that activates a specific group or device once its hardware is connected, and a fallback order for everything else. When your devices disconnect, Chorus falls back down that list on its own. The same engine works for your microphone too, with its own separate priority list, so plugging in a headset can switch your input automatically as well. You can build a rule around a device that isn't plugged in at the time, since Chorus remembers the devices it has seen, so writing a headphones rule doesn't mean wearing the headphones.
Yes. Open Settings and go to the Shortcuts tab, where you'll find every group, every output device, and every input device listed with a field next to it. Click a field and press the key combination you want; it works from any app, system-wide. You can also assign shortcuts for two general actions: showing or hiding the panel, and toggling mute.
Yes. Your Mac's regular F11/F12 volume keys and mute key control whichever group is currently active, showing the same on-screen feedback you'd expect. This needs Accessibility permission, since that's how macOS lets any app listen for those keys. Settings, Volume & Keys shows whether it's granted, with an Enable button if it isn't yet.
Two handy ones. Scroll up or down while your pointer is over the Chorus menu-bar icon to adjust the volume of the active group (or your default output, if no group is on) without opening the panel at all. Hold Option and click the icon to instantly toggle mute. Both are quicker than opening the panel for a small adjustment.
Yes. Open Settings, go to Outputs or Inputs, and switch off any device you don't want cluttering the panel or the New Group picker, such as a hub output you never actually listen through. A hidden device already inside a group keeps working normally, and a hidden input can still be used by an Auto-Switch rule; hiding it only tidies what you see day to day.
Yes, both are optional and live in Settings, Volume & Keys. "Show Volume HUD" displays a small on-screen overlay when the volume keys change a group, and you can choose where it appears from a 3x3 position grid. "Confirmation Sound" plays a short tick through a device the moment you select it, so you can hear which one you've just switched to. Turn either off if you'd rather have silence.
Yes. Chorus responds to a handful of chorus:// links that any launcher, automation app or Stream Deck can open: activate a named group, deactivate the active one, switch to a single device, set the volume, or toggle mute. Settings, Automation lists each command with an example, ready to paste into whatever tool you're wiring it up in.
Chorus is a one-time purchase of $4.99. There's no subscription, no recurring charge, and no separate fee for future updates; every version you'll ever get is included in that single price. A licence covers up to three Macs, and you get a full 30-day trial first, so you can try everything before deciding.
After buying, Polar shows your key straight away and emails it to you too. In Chorus, right-click the menu-bar icon, choose Settings, and open the About tab: under Licence you'll find Enter Licence Key. Paste it in and this Mac activates immediately, whether your trial is still running or has already finished. Keys look like CHORUS- followed by a string of letters and numbers, so paste rather than retype it to avoid a mistyped character.
Sign in to your Polar account with the email address you used to buy Chorus, and your key is right there. If you can't find your purchase confirmation email or the portal doesn't recognise your address, email support@theodorehq.com and we'll look it up and get it back to you.
One Chorus licence activates on up to three Macs at once, for your own personal use. If you regularly work between a desktop and a laptop, or have a home and an office setup, that's usually plenty. If you ever need a fourth, deactivating an old Mac you no longer use frees up its slot straight away.
Before you reinstall macOS or reset the Mac, open Chorus, right-click the menu-bar icon, choose Settings, and go to About. Click Deactivate This Mac and confirm. That frees the slot straight away, because a fresh install otherwise claims a new one even on the same physical machine.
Already wiped it without deactivating first? The slot is still yours to reclaim. Sign in to your Polar account with your purchase email and you'll see your licence key and every Mac it's active on; deactivating the old entry there frees it immediately. If you can't access the portal or something doesn't look right, email support@theodorehq.com from your purchase email address and we'll sort it for you.
Yes. Grouping, routing, auto-switch, shortcuts and every audio feature run entirely on your Mac and need no internet connection at all. The only time Chorus needs to be online is to activate a licence key the first time, and to occasionally revalidate it, which it does automatically. If you're offline when that happens, a bought licence keeps working for 7 days before it needs to check in again.
Once the 30 days are up, opening Chorus shows a simple screen with the price and a Buy button instead of the panel. Nothing is deleted or reset: your groups, shortcuts and settings are all still there, waiting for a licence key. Buy whenever you're ready and everything picks up exactly where you left it, right down to your custom groups and shortcuts.
Because Chorus is digital and your key is handed over the moment you buy, checkout asks you to agree to that immediate delivery, which is standard for software sold this way. That said, your rights under the Consumer Rights Act 2015 are always protected: if Chorus genuinely doesn't work as described, you're entitled to a repair, a replacement, or a refund by law. Email support@theodorehq.com explaining what's happened and we'll take it from there.
Open the panel and check which output or group has the tick next to it; that's what your Mac is currently playing through. If it's a group, make sure every device in it is switched on and connected. It's also worth checking that individual app hasn't been muted or routed elsewhere in the Apps section, since a per-app route overrides the system default for that one app only.
Open the group in the panel and check each device's own balance slider; if one has been pulled right down, it will sound silent even though the group is active and working correctly. If the sliders look fine, check the quiet device is still properly connected: a Thunderbolt or USB hub that briefly drops a connection is the most common cause. Reconnecting it and re-selecting the group usually brings it straight back.
If a device is missing, check it's genuinely connected and check Settings, Outputs or Inputs to make sure you haven't hidden it there by mistake; hidden devices are switched off from that same screen. If instead a device you hid keeps reappearing, it's usually a USB or Thunderbolt hub reassigning that device a slightly different internal identifier on reconnect; Chorus recognises this and re-applies your setting automatically, but it can take one more reconnect to catch up.
The physical F11/F12 volume keys need Accessibility permission to work with any app, not just Chorus. Open Settings, Volume & Keys, and check whether it shows as granted; if not, click Enable and approve the system prompt. If you've reinstalled or updated Chorus and it was working before, macOS sometimes needs the permission granted again: open System Settings, Privacy & Security, Accessibility, and toggle Chorus off and back on.
If you've purchased Chorus, your licence key is stored in your Mac's Keychain rather than in a plain settings file, since that's the properly secure place for it. macOS asks you to confirm this the first time, and choosing "Always Allow" means you won't be asked again. During the free trial, nothing licence-related touches the Keychain at all, so trial users shouldn't see this prompt.
Per-app control needs macOS 14.4 or later; on 13 or 14.3 the Apps section doesn't appear at all, so check Settings, About for your macOS version first. If you're on 14.4+, an app only shows up while it's actually producing sound, so check something is actually playing. If it's still not appearing, quit and reopen the app in question: Chorus picks up newly launched apps as soon as they start playing audio.
Call apps like FaceTime, Zoom and Teams always play through a single real device tied to whichever microphone is currently selected, never a combined group; this is how macOS itself handles call audio, to keep echo cancellation working properly. So a call plays through whichever device your input is set to. If you want a call to come from a particular screen, switch your input to the microphone on that device in the panel first.
Yes, this is what macOS calls its audio-capture permission, and Chorus asks for it the first time you use per-app volume, routing, or the live level meters. It sounds bigger than it is: Chorus reads live audio only to measure its level or send it to a different device, and nothing is ever recorded, saved, or sent anywhere. You can see exactly this described in our privacy policy at theodorehq.com/chorus/privacy.html.
Yes. Accessibility is the standard macOS permission any app needs to respond to the physical volume keys, and it's the only reason Chorus asks for it. If you'd rather not grant it, that's fine: every other feature works exactly the same, you'll just use the panel, the menu-bar scroll, or your own custom shortcuts to adjust volume instead of the physical keys.
First check Auto-Switch is actually turned on in Settings, for the Outputs or Inputs scope you're expecting it to affect. Then check the rule itself: it only fires when every device it lists is connected at once, so if a rule needs two speakers and only one is plugged in, it won't trigger. Next check the order, which is the most common surprise: the list runs top to bottom and the first rule that matches wins, and a new rule is added at the bottom, so a broader rule above it can win every time. Use Move Up to put the more specific rule first, for example a headphones rule above a rule about your desk speakers. Auto-Switch also won't override a device you've just chosen manually, until something about your connected devices actually changes.
Right-click the menu-bar icon, open Settings, and go to About, where you'll find direct links to Report a Bug, Request a Feature, and our full FAQ and roadmap. You can also go straight to support.theodorehq.com/chorus, or email support@theodorehq.com. We read every report and reply from a real person, not a form letter.
Chorus makes exactly three kinds of network request, and none of them is personal data collection: a check for app updates, licence activation and validation with our payment provider Polar (so we can enforce the three-Mac limit), and a small number of anonymous usage counts sent to a server we run ourselves. Nothing about what you listen to, your device names, or your identity is ever collected.
No. When Chorus reads audio, for per-app volume control, routing, or the live level meters, it's only ever measuring the signal or sending it to a different device in real time. Nothing is ever written to disk, saved, or transmitted anywhere. This is the same for both the free trial and a purchased licence; the behaviour never changes.
Two, and both are optional. Accessibility lets your physical volume keys control an active group; without it, everything else still works, you just adjust volume from the panel or a shortcut instead. The audio permission lets Chorus read levels for per-app control and the live meters, and re-route audio between devices; it never records or saves anything. Chorus explains each one in the app the moment it asks for it.
Everything lives on your own Mac. Your groups, shortcuts, hidden devices and other preferences are stored in your Mac's local settings, and your licence key (if you've bought one) is kept securely in the macOS Keychain rather than a plain file. Nothing is backed up to a Chorus account or server, because there is no account; it's all local to the machine it's installed on.
No, and there never will be. You don't create an account to use the trial, and you don't create one after buying either; your licence key is all that's needed. The only email Chorus ever knows about is the one you used to check out with Polar, used purely to send your receipt and key, never for anything else.
Docket
84Docket is a complete support centre you run yourself: bug reports, feature requests, a public roadmap, a changelog, an FAQ and testimonials, all on your own domain under your own brand. Underneath it is a folder of Markdown files in your own GitHub repository and a static website built from them. There is no database, no server to maintain and no account with us. You buy it once and the code is yours.
Those are hosted services you pay for monthly, where your customers' feedback lives on their servers and the price rises with seats or tracked users. Docket is a one-time purchase of the source code. It runs on your hosting, your data sits in your own repository, and there is no monthly bill, no seat count and no per-board pricing. The trade is that you host it and you own the upkeep, which for a static site is close to nothing.
Free gives you the whole board: bugs, features, voting, roadmap, changelog, testimonials, FAQ, your own domain and the full design system, on unlimited products. You reply by hand and it carries a small "Powered by Docket" badge. Pro at $99 adds the work being done for you: AI first replies, email notifications, the digest, Slack and Discord alerts, the feedback widget, automatic update pull requests, and badge removal. Studio at $249 adds everything Pro has plus client deployments, a view across all your clients, and replies signed per teammate.
The free edition is a complete working support centre with every board section, your own domain and the full design system, on unlimited products. It is genuinely usable rather than a trial. There are also interactive demos of all three editions on our website, where you can click through a realistic board rather than reading about one. If you outgrow the free edition, the paid ones add the automation rather than unlocking the basics.
You need a free GitHub account, a hosting account (Vercel, Netlify, Cloudflare and Deno Deploy all work, and free plans are fine), and ideally a domain you already own so the board can live on a subdomain like support.yourcompany.com. For the paid editions you also want a coding agent you already use, such as Claude Code, Codex or Cursor. Optional extras are an AI key and an email provider key, both on your own accounts.
For the paid editions, no. You open the repository with your coding agent, paste one line, and it does the setup while answering your questions. The free edition installs by hand following INSTALL.md, which is five steps of editing two files and clicking deploy. Either way you will click buttons in GitHub and your hosting provider, and you will need to paste a couple of keys into settings pages. Nobody needs to write code.
Node 22 or newer, and git. That is the whole list, because Docket has no dependencies to install: there is no npm install step and no build tools to set up. If you are letting a coding agent do the setup it will check this for you. You can even do most of the work in GitHub's web interface and your host's dashboard without touching a terminal, though having Node locally makes checking your work much easier.
Payment is handled by Polar, who are the seller. You connect your GitHub account through Polar and are invited as a read-only collaborator on the repository for the edition you bought. Accept the invitation, then use GitHub's "use this template" flow to create your own copy under your own account in one click. That copy is entirely yours, with no git connection back to ours, which matters because your customers' reports become files in it.
Open your new repository with your coding agent and say "Set up Docket by following SETUP.md." It asks you a handful of questions: your company name, your support email address, the address the board will live at, and which products you support. It fills in config.js and products.json while you get on with something else. The parts only you can do are pasting keys into GitHub and your host, and pointing your domain. Fifteen minutes is realistic.
Docket is a static site plus two small endpoints, so it runs anywhere that serves both. We document Vercel, Netlify, Cloudflare Pages and Deno Deploy in docs/hosting.md, and each needs no changes to the code. Netlify and Cloudflare are the easiest free options. Vercel's Hobby plan does not permit commercial use, so if you are a business on Vercel you will need one of their paid plans. Moving hosts later is a matter of repointing the domain.
Docket needs its own subdomain, something like support.yourcompany.com or feedback.yourcompany.com. It cannot live in a folder of an existing site, because it serves its own pages from the root. Point that subdomain at your host following their instructions, and HTTPS is issued automatically by all four hosts we document. If you do not own a domain yet you can start on the free address your host gives you and move later, and nothing breaks when you do.
Two files carry almost everything. products.json lists what you support, one entry each, with a short id that becomes part of the web address, so choose those carefully as changing one later breaks links. config.js holds your company name, your support address, your accent colour and which sections each product shows. Start with the sections you will actually use: a board full of empty sections makes a new support centre look abandoned, and adding one later is a one-line change.
Example content lives in data.example/ and is never used once your own products.json exists, so there is nothing to delete and no risk of a stranger's demo items reaching your live site. If you would rather see a populated board first to get a feel for it, copy the examples across with cp -R data.example data, have a look, then remove it with rm -rf data before you go live. Your own first real report creates the folder properly.
Docket runs the same both ways. Most people choose private, because the repository holds your customers' submissions including their encrypted email addresses, and there is no reason for that to be browsable. Your published board is a separate thing and stays public either way. If you hold a paid edition, keep it private: the licence allows you to run and change the code but not to publish the source.
Run npm run build and open dist/index.html in your browser. That is the exact site your host will serve, so what you see is what customers get. The one thing that will not work locally is submitting the form, since that needs the endpoints your host provides. Netlify, Vercel and Cloudflare also build a preview for every pull request, which is the easiest way to check a change before it reaches your live board.
npm run check walks through your setup and tells you in plain English what is still missing, naming each thing rather than showing an error code. When it says everything is set up, it is. After that, open your live board and file a test bug through the form the way a customer would. It should appear on the board within a few seconds. Delete it afterwards by removing the file from data/ and committing.
Buy the edition you want, accept the invitation and create your copy from the new template, then move your data/ folder, config.js and products.json across. Those are the files that hold everything you have written, and they are unchanged between editions. Your coding agent can do this in a few minutes. Nothing about your board's addresses or content changes, so links you have already shared keep working.
We do not ship an importer for Canny, UserJot or Featurebase. Your data in Docket is plain Markdown with a short block of fields at the top, in a git repository, so the practical route is to export from your current tool and ask your coding agent to convert it. That is exactly the kind of repetitive job agents are good at, and docs/data-schema.md describes the format it needs to produce.
The paid editions ship a setup guide and an operating guide written for an agent to follow, plus three skills for triaging support, posting a changelog and updating the FAQ. Anything that can read a repository and follow instructions inside it will work: Claude Code, Codex, Cursor and Gemini among them. There is nothing to install and no plugin. The free edition does not need an agent at all, since it installs by hand.
People can report a bug, request a feature, leave a testimonial and comment on existing items. Feature requests and bugs can be voted on, once per person, without anyone signing up for anything. Every item gets its own page with a permanent address you can link to. Testimonials are held until you approve them, so nothing appears on your site under that heading without your say-so.
There is no account, no password and nothing to forget. Someone fills in a short form and their report is on the board. An email address is optional, and the only thing it is ever used for is telling that person their issue was answered or their request shipped. Voting works the same way, once per person, with no sign-up. Removing that barrier is a large part of why boards like this get used at all.
Every bug and feature carries a status, and each status is a real page with its own address, so you can link somebody straight to everything you have planned. The board shows all items with a status on each row, and you can filter to one status at a time. Declined only appears when you have actually declined something, so a new board never shows an empty tab. The roadmap draws from the same items.
Statuses are defined in the code rather than in a setting, so adding one means editing several places that list them, including the labels, the colours and the board columns. It is a job for your coding agent rather than a line in config.js, and it takes a few minutes rather than an afternoon. Because those are files Docket owns, copy the change somewhere durable or expect a future update's pull request to flag it.
Every report, request, testimonial, comment and vote is a Markdown file in the data/ folder of your own repository, with a short block of fields at the top. There is no database. That means you can read everything in a text editor, search it with ordinary tools, back it up by cloning, and edit or delete anything by changing a file and committing. It also means your coding agent can already see all of it, without any integration.
Docket ships two small endpoints, one to submit and one to vote. When somebody submits, the endpoint writes a new Markdown file into your repository using a token you supply. Your host sees the commit and rebuilds the site, which usually takes under a minute. Nothing sits in a queue and nothing passes through us. If two people submit in the same second, both are kept.
On the paid editions, a scheduled job runs every fifteen minutes, reads new bugs and feature requests, and writes a short first reply in the voice you set in config.js. It posts the reply to the board and emails it to whoever submitted, if they left an address. The point is that nobody waits a day to hear something, and you still decide what actually happens to the item.
You bring your own API key and the cost lands on your own bill, not ours. A first reply reads a handful of small files and writes a short answer, which comes to well under a penny each with the default model. It is the only running cost Docket has. There is also a hard ceiling: ai.maxRepliesPerDay defaults to 50, counted against replies already posted, so an unusual day cannot produce an unusual bill.
Leave the AI key unset and no first replies are written. Nothing else changes: submissions still arrive, emails still send, the board still works, and the scheduled job ends quietly having found nothing to do. You can also lower ai.maxRepliesPerDay to throttle it rather than switching it off, or delete the workflow file entirely if you would rather it never ran.
On the paid editions there are four. A short receipt confirming a submission landed. The first reply, when it is written. Any official reply you add to an item, sent on to whoever raised it. And a notice to everyone who voted for a feature, on the day it ships. All four are optional in the sense that they need an email provider key; without one, replies still appear on your board and simply do not reach an inbox.
Twenty alerts in a morning is a thing people mute, and a muted alert is worse than none. Set digest.when to "daily" or "hourly" in config.js, with digest.timezone set to your real timezone and digest.hour to the hour you want it. You then get one email describing everything that happened on your board, grouped by product. Quiet days send nothing at all, so a slow week costs you no email.
The paid editions post to Slack or Discord the moment anything arrives. Create an incoming webhook in whichever you use, and add the URL as a WEBHOOK_URL secret in your repository settings. Docket works out which service it is from the URL. This is separate from email, so you can have alerts in a channel and no inbox notifications, or both.
On the paid editions, one script tag on your own site puts a small button in the corner of your product. People can report a bug, request a feature, leave a testimonial, browse your roadmap and search your answers without leaving what they were doing. It reads a small file your build produces, so its search and roadmap stay current automatically. docs/api.md covers the attributes and the one setting it needs.
The page carrying the widget is a different site from your support centre, so the browser will not let it post until you say that page is allowed. Add its address to widget.allowedOrigins in config.js and redeploy. This is granted to that one site by name rather than to everybody, which is what stops anyone else posting to your board. It is the single most common thing to miss when adding the widget.
The paid editions include two more pieces in kit/. The callout card is a small card you paste onto any page of your own site, linking through to your board, with four things to change inside it and no script involved. The quick menu is one link anywhere on your site that opens a short menu straight onto any section: report a bug, request a feature, the roadmap, your answers. A support centre nobody can find is a support centre nobody uses.
Add an entry to products.json for each one. There is no limit on any edition, because charging per board is charging you for shipping more. Each product gets its own sections, its own accent colour and its own addresses, and the home page lists them all. You can also give each product a different set of sections, so a small tool might show only bugs and a changelog while your flagship shows everything.
Add an entry with its id, name, accent colour and the sections you want it to show, then commit. It appears on your home page with its own board and its own addresses. There is no limit on any edition. Choose the id carefully, because it becomes part of every web address for that product and changing it later breaks any link you have already shared.
The quickest lever is theme.accent in config.js, which is a single colour that flows through the whole design, including a frame tint that adapts so a vivid brand colour sits as calmly as a muted one. Beyond that, the stylesheet, the page templates, the copy, the statuses and what happens when something arrives are all ordinary files you can change. Ask your agent for what you want in plain English.
The whole board is designed for small screens, not just shrunk to fit. On a phone every section sits in a row above the board so moving between bugs, features and the roadmap is a single tap, the roadmap columns stack rather than scrolling sideways, and the filters show which way they scroll. Since most people reach a support centre from a link in an app or an email, that is where a lot of your traffic will be.
Open the item's file in data/, add your reply under the ## Replies heading, and commit. That is the whole thing. On the paid editions, that reply is then emailed on to whoever raised the item automatically. You can also ask your coding agent to do it, which is what the support skill is for: it reads the board, drafts replies for you to approve, and posts the ones you accept.
Anyone with write access to your repository can reply, change statuses and publish changelog entries, because all of that is editing files and committing. There is no separate user system, no seats and no per-person cost, on any edition. On Studio, replies can be signed by each teammate individually rather than all appearing under one name, so customers see who they are talking to.
Every section has search, covering bugs, features, the roadmap, the changelog, testimonials and your FAQ. It runs in the browser over the content the page already carries, so there is nothing to index, nothing to pay for and nothing that can fall out of step with your data. It works on hundreds of items comfortably. The widget carries its own smaller search over your answers and roadmap.
Docket builds static pages, so all your text, headings and structured data are in the page source rather than assembled by a script afterwards. That is what search engines and AI crawlers need. The paid editions add a sitemap, an llms.txt, crawler rules and IndexNow, which pushes changed pages to Bing, Yandex and DuckDuckGo as soon as you publish. In practice a well-used board becomes a genuine source of search traffic.
The free edition carries a small badge in the sidebar footer. It is an ordinary link that loads nothing and reports nothing. Pro and Studio ship with no badge at all, so there is nothing to remove and nothing of ours on a page your customers think belongs to you. This is the only cosmetic difference between the editions.
Boards are public and there is no privacy setting to turn on. A post is a commit, so it appears as soon as it is made, and there is no moderation queue for bugs or features. Testimonials are the exception: those are held until you approve them. You can delete or edit anything at any time, and because it is your repository that is an ordinary change rather than a request to us. You hold the code, so putting a board behind your own gate is a change you can make and keep.
Submissions are text only. In practice the fields ask for enough detail that most reports are actionable, and people often paste a link to an image they have hosted elsewhere. If file uploads matter to you, that is a feature you can build on top rather than one you have to wait for us to ship, since you hold the code and the endpoints are yours to extend.
There are two endpoints, one to submit and one to vote, both locked to your own pages rather than open to other sites. There is no read API and no MCP server, and that is on purpose rather than pending: your data is Markdown in the repository your agent already has open, so there is nothing for a server to serve. Reading your board means opening a file.
The free edition is $0 forever. Pro is $99 and Studio is $249, both one-time payments. There is no subscription, no renewal, no seat pricing and no per-board pricing. The price is the same whether ten people or ten thousand use your board, and the same as your team grows. The only ongoing cost is your own AI usage if you turn that on, which is well under a penny per reply on your own account.
You buy a copy of the source. Use it, change it, and run it on as many of your own products as you like, forever. Updates are included with no time limit and no renewal. There is no licence key, no activation and nothing that expires. The two things you may not do are sell the code on or publish the source. That is the whole of it.
That single line separates them. If you are shipping your own products, however many, Pro is the right one. If you set up, run or maintain a support centre for somebody else as part of your service, that is a client deployment and it needs Studio. Studio has no limit on how many clients, each can have their own install on their own domain, and it adds a view across all of them plus replies signed by individual teammates.
You are not stuck and you do not start again. Email support@theodorehq.com and we move your access to Studio for the difference between the two prices. There is no change fee and no time limit on doing it. Your existing install carries on exactly as it is; you simply gain the right to run them for clients, and the Studio features arrive with your next update.
There is no limit on installs, boards, products, items, or the number of people who use them. Pro covers everything you ship yourself. Studio covers that plus everything you run for clients. Contractors you engage may work on your install without needing their own copy. What the licence stops is selling the code on or publishing the source, not the number of places you run it.
Before you accept the invitation to the repository, email support@theodorehq.com and we refund you in full, straightforwardly. After you accept it you are holding the source code, which cannot be handed back, so we do not refund at that point. Your statutory rights under the Consumer Rights Act 2015 are unaffected either way. Refunds are issued by Polar, who are the seller of record for the purchase.
It is one payment. The code is already in your repository, it does not call home and there is no licence to check, so it keeps running whatever happens next, including whatever happens to us. There is no expiry, no degraded mode and no feature that switches off. The honest reason there is no licence check is that there is nothing for one to enforce.
On the paid editions a job checks once a day and, when there is a new version, opens a pull request against your repository written in plain English about what changed. Nothing on your site changes until you click Merge. Updates are included for as long as Docket exists, with no renewal. The free edition has no updater, so you take new versions by hand when you want them.
config.js, products.json, data/ and assets/ are yours and no update touches them. Files that belong to Docket are replaced, and if you have edited one the pull request names it and says plainly that your changes to that file will be lost, before you merge. If you want Docket itself to behave differently, the durable route is to say so on our support board, because the change then belongs to everyone and survives every update.
The site is yours, the code is yours and it builds from your own repository, so it keeps running whether or not we do. There is no service to shut down, no server of ours in the path and no licence to expire. The daily update check would simply find nothing and carry on quietly. You would keep every feature you have on the day it happened, indefinitely.
Your domain, your company name, your colour and your typography. The paid editions carry no badge, no attribution and no link to us anywhere on the page. Replies are signed with whatever you set as your official author name, defaulting to something like "Support Team". The free edition carries one small "Powered by Docket" link in the sidebar footer, and nothing else.
This is the first thing to try for almost any problem. It walks your whole setup and reports in plain English what is present and what is not, naming each missing key or setting and what turns on when you add it. It separates things that must be fixed before customers see the board from optional extras you can leave. If it says everything is set up, the problem is somewhere else and worth emailing us about.
A successful build is not always a deploy. Open your host's dashboard and compare the newest deployment's time against your last push. If the deployment is older, nothing was triggered, which usually means the project was created from the command line and has no git connection. Reconnect the project to the repository in your host's settings and push again. Until that is linked, pushing publishes nothing.
It tells you exactly what is wrong with a data file in plain English, naming the file and the problem rather than showing a stack trace. The usual causes are a missing field in the block at the top of the file, or a date in the wrong format. npm run build deliberately refuses to publish a malformed file rather than shipping a broken page, so a failed build has protected your live site rather than broken it.
Submissions are written to your repository with the token you supplied, so the usual cause is that the token has expired. Fine-grained GitHub tokens have an expiry date, and when it passes, submissions stop being saved. Check the commits in your repository: if the file is there but the page is not, the site simply has not rebuilt yet, which takes about a minute. If there is no commit, regenerate the token and update it in your host's settings.
Docket builds static pages, which is what makes it fast, free to serve and readable by search engines. The cost of that is a short delay between a submission being written and the page showing it, usually well under a minute. The person submitting sees a confirmation immediately and gets their receipt email straight away, so the delay is invisible to them.
Three things cause almost all of it. The provider key needs to be in your repository's Actions secrets, not only in your host's settings, because the jobs that send email run in GitHub rather than on your site. EMAIL_ENCRYPTION_KEY must be set or addresses cannot be read back to send to. And your sending domain needs verifying with your provider, with SPF and DKIM records added, or mail is accepted and then quietly discarded. npm run check names whichever is missing.
Mailgun runs separate European and United States infrastructure, and sending to the wrong one fails with an error that reads exactly like a bad key. If your Mailgun account is European, set MAILGUN_REGION to eu. Mailgun also needs MAILGUN_DOMAIN alongside its key, because its endpoint is per sending domain and there is nothing sensible to guess. Those two together resolve nearly every Mailgun setup.
The job that writes replies runs on GitHub Actions, not on your website, so its key belongs in your repository under Settings, Secrets and variables, Actions. A key in your host's environment variables will not reach it. Check the key matches the provider named in ai.provider, and check ai.maxRepliesPerDay has not already been reached for the day. Open the Actions tab to see whether the job ran and what it reported.
Scheduled runs are queued rather than guaranteed, and under load GitHub delays them, sometimes by several minutes. On a repository with no activity for sixty days it stops running them until you push again. Every job also has a "Run workflow" button in the Actions tab, so you never have to wait for a schedule to test something. GitHub's clock is UTC and does not follow daylight saving, which is worth remembering if a job looks an hour out for half the year.
Add the subdomain in your host's dashboard first, then create the record it asks for at your domain registrar. All four hosts we document issue the HTTPS certificate automatically once the record resolves to them, which can take anywhere from a few minutes to a few hours. A certificate warning almost always means the record is not yet pointing where the host expects, rather than a problem with the certificate.
Every submission, reply and change is a commit, so nothing is ever really gone. Open the file's history on GitHub and you can see every version and restore the one you want, or ask your coding agent to recover it. This is one of the quiet advantages of storing everything as files: an accidental deletion is an ordinary thing to undo rather than a support request to somebody else.
Cloning your repository gives you every submission, every reply, your settings and your entire history in one folder. There is no database to dump and no export format to worry about, because the files you would export are the files it already runs on. GitHub is holding a copy already, so a clone on your own machine or a scheduled mirror is belt and braces rather than the only line of defence.
Anything a visitor triggers, such as a submission or a vote, is in your host's function logs. Anything scheduled, such as first replies, the digest or the update check, is in the Actions tab of your GitHub repository, with a full log per run. Between those two you can see every step. The scheduled jobs also report clearly when they have nothing to do rather than failing, so a green run with no output is usually correct.
The pull request lists any file Docket owns that you have edited, and says plainly that merging replaces your version. Nothing changes until you merge, so you can close it, reapply your change afterwards, or keep your version and skip that update. For a change you want permanently, the durable pattern is to copy the file to a new name and use your copy, since a file you create is never touched by an update.
Docket is a static site plus two endpoints, and adapters for Vercel, Netlify, Cloudflare and Deno Deploy all ship in the box. Moving means connecting the new host to the same repository, copying your environment variables across, and repointing your domain. Your repository, your content and your addresses are untouched. docs/hosting.md covers what each host needs.
Email us at support@theodorehq.com and we answer within one working day. Docket has its own support centre where you can file a bug or request a feature publicly, which is often faster because other people can see it and vote. Whatever route you use, send the output of npm run check, your hosting provider, and the log from the failing run if there is one. That is usually enough to answer without a second exchange.
Every submission is a file in your GitHub repository, on your hosting, under your control. It never reaches us, because there is no path for it to travel: Docket has no server of ours in it and no account with us. Who can read it is whoever you have given access to that repository, and nobody else. If you make the repository private, only your collaborators can see the raw files, while the published board shows what you choose to publish.
The form asks for what they are reporting, their name as they wish to give it, and optionally an email address. Nothing else is taken: no account, no device fingerprint, no tracking identifier and no hidden fields beyond the one that catches bots. The email address is used for one purpose, telling that person what happened to their item, and nothing else. Leaving it blank works fine and they can still post and vote.
Addresses are encrypted with a key only you hold, before anything is written to your repository, and none of them appear on any page. This matters because a git repository's history is permanent, so a readable address written into it could never truly be deleted. Encrypted, honouring a deletion request is an ordinary edit. Keep EMAIL_ENCRYPTION_KEY somewhere safe: losing it makes every stored address permanently unreadable.
GitHub stores your repository. Your hosting provider serves the site. Beyond that, everything is optional and yours: an AI provider if you want first replies written, an email provider if you want mail sent, Slack or Discord if you want alerts. Each is your own account with your own agreement with them, and none of them is required for the board itself to work. We are not in that list, because nothing routes through us.
When a first reply is written, the item's title and description are sent to whichever provider you configured, along with your voice settings, so it can write a relevant answer. No email addresses are included. Whether that text is used for training is governed by your own agreement with that provider, not by us, and the major providers do not train on API traffic by default. If you would rather send nothing at all, leave the AI key unset.
A Docket board sets no cookies, loads no third-party scripts and carries no analytics or advertising of any kind out of the box. There is nothing to put a cookie banner on, because there is nothing to consent to. If you want analytics you can add your own by setting analytics.scriptUrl and analytics.websiteId in config.js, in which case the choice of provider and the consent obligations that come with it are yours.
The free edition makes no request to us for any reason, ever, because it has no updater in it. The paid editions ask once a day whether a newer version exists. That request carries no licence key, no repository name, no domain, no account and no unique identifier, so there is nothing in it that distinguishes your install from anybody else's. It runs inside GitHub rather than on your server. Delete the update workflow and even that stops.
Because your customers' data lives in your repository and never reaches us, you are the data controller for it and we are not a processor of it. That is unusually simple compared with a hosted tool, where you would need a processing agreement. What you do need is a privacy notice on your own board explaining what you collect and why. Docket ships no legal templates, and LEGAL-CHECKLIST.md sets out what running a public board commits you to.
Find their item in data/, delete the file or remove the personal parts, and commit. The board rebuilds without it. Because addresses are encrypted rather than stored in the clear, an address in your git history is not readable to anyone without your key, so a normal deletion genuinely resolves the request rather than leaving a copy behind in history. You can do this yourself in a minute, without asking anyone.
Keys live in your host's environment variables and in your repository's Actions secrets, never in a file in the repository. .env is already ignored by git so a local copy cannot be committed by accident. Use fine-grained GitHub tokens scoped to the one repository with Contents read and write and nothing else, set an expiry, and put a reminder in your calendar. If a key is ever exposed, revoke it at the provider and issue a new one.
A hidden field catches bots that fill in every field they find. An origin check turns away scripts that never loaded your page. And there is a rate limit per visitor: five submissions and twenty votes per ten minutes. On top of that, AI replies are capped per day, so even an unusual night cannot produce an unusual bill. Anything that does get through is a file you delete and commit.