Little Big Details
The little things that make a difference day to day.
The details are not the details. They make the design.
Charles Eames
We live for these small touches. This page lists a few of them. They rarely catch the eye, but they always show in use.
Editor
- A new circut comes pre-filled with your clipboard, with a “Clear” button if that was not what you wanted. The mention goes away as soon as you touch the text.Link to this detail
- The Test zone triggers the circut you are writing, variables included, before you even save it. ⌘T goes there and back.Link to this detail
- Triggers are suggested from the text, each with its verdict: already taken, or “shadowing” (
,dwould hide,date). Collisions show as you type.Link to this detail - When the trigger you want is already taken, two ways out keep your work: Save as disabled keeps the text AND the trigger, and the circut simply arrives switched off. And in the conflict banner, Turn it off frees the trigger with one click on the circut that held it, without leaving the editor. Nothing you have written is ever lost over a trigger.Link to this detail
- Three expansion modes, in plain words: “As you type”, “Via the palette”, “Disabled”. In the list, the chevron says it at a glance (full, dimmed, paused).Link to this detail
- A circut without a trigger is not an error: it is a draft. Or, in “Via the palette”, a fully valid circut, found by search.Link to this detail
- Every circut keeps the history of its edits, with “Restore”.Link to this detail
- ↑ and ↓ move to the previous or next circut, and the editor follows. ⌘↑ and ⌘↓ jump to the top and bottom of the list. Return saves, ⌥↩ inserts a line break, ⌘D duplicates with your pending edits, ⌘⌫ deletes (with confirmation).Link to this detail
- Non-breaking spaces are visible (a faint veil on the “␣”): two circuts that differ only by one no longer look alike. On the page of a share link too: whoever receives a circut sees what they are getting, invisible characters included. In the editor, a non-breaking space takes ITS own room: the text moves aside to show it, instead of its mark being drawn over the neighbours. The narrow one is marked “˽”.Link to this detail
- The text field grows with what you write in it, up to 60% of the editing panel, then it scrolls. A one-line circut keeps the look it had; a fifteen-line signature is no longer edited through a window made for seven. And the height follows the window, never a fixed number of lines: the field is bigger on a 5K than on a 13″.Link to this detail
Rich text
- Rich text has no switch: the first ⌘B makes the circut rich, removing everything makes it plain again, byte for byte. The format IS the presence of a bold, an italic or a link, not one more setting to figure out.Link to this detail
- ⌘V with a URL, over selected text, creates a link instead of replacing the text, the way most modern text editors do. ⌘K opens the link popover, pre-filled if the clipboard holds a URL.
circut.appis enough: thehttps://comes on its own, andname@x.combecomes amailto:.Link to this detail - A link can take its address from your clipboard: select the link text, press ⌘K and type
{clipboard}in the Address field. Copy an address, then fire the circut — the link lands, label and all. If the clipboard is not an address, only the label is written: it is the one variable allowed inside an address, and a dead link is never written.Link to this detail - Clicking a link in the editor opens its popover (edit, remove, open), never the browser: you are in an editor. And the ⌘B ⌘I ⌘K keycaps in the toolbar only light up when the field has focus, because a key is only shown if it answers.Link to this detail
- Pasting from Chromium (Gmail, Slack, Notion) keeps bold, italics and links, without any third-party HTML reaching WebKit: Circut reads the clipboard with its own converter, where AppKit’s would load the tracking images of the copied page, and so make a network request from Circut. RTF (TextEdit, Notes, Safari) is read too, and reduced to the same three marks.Link to this detail
- In a rich circut, lines that start with “•” go out as a real bullet list when pasted. In a plain circut, they stay text. And pasting a bullet list into the editor makes the circut rich: ⌘Z undoes the whole thing in one go.Link to this detail
- Paste and Match Style (⌥⇧⌘V) is in the Edit menu: copied text arrives without its formatting. And copying a plain circut writes text only: pasted elsewhere, it takes the document’s font, not Circut’s.Link to this detail
- The “␣” that reveals a space keeps the field’s own font in the middle of a bold passage: a marker is not text.Link to this detail
Circut list
- Under a filter or a search, the list says “12 of 6,191 circuts”: you always know whether you are looking at everything.Link to this detail
- Each circut shows its #categories at the end of its row, two at most, then a count of the others, which shows them on hover. Clicking one types
#personalinto the search, just as you would have typed it: next time, you type it without the mouse.Link to this detail - A pack circut you tweak keeps its link to the pack. Pack corrections keep arriving on what you have not touched, never on what you changed.Link to this detail
- In the filter, a checked pack unfolds a “↳ Customized only” option beneath it: your edited copies, nothing else. It only exists under a pack that has some, and puts itself away when you leave that pack.Link to this detail
- The Conflicting filter only appears in the list menu when there are conflicts, and it only shows the circuts that are really lost: most overlaps are harmless, the typing still lands right, and showing them all would drown the ones that matter. Opening a circut from the filter says which one masks it.Link to this detail
- The popover on a row’s chevron, which sets one circut’s mode, tells you how to do it for several: ⇧⌘M switches the list to multiple selection. That’s where you look first.Link to this detail
- The keystrokes-saved counter only counts what was really typed, trigger deducted.Link to this detail
- The version label at the bottom of the sidebar responds to hover and click. We will say no more.Link to this detail
- A help bubble is never covered, or cut off by the window’s edge: each one opens in its own small window, right next to the control it explains.Link to this detail
Palette
- It always opens in the same place and remembers where you leave it, in proportion to the screen (same spot on a 13″ and a 5K), and comes back on screen if its own is gone.Link to this detail
- Search by trigger, by text, by keyword or by #category, accents ignored (“e” finds “é”), recent and most-used first.Link to this detail
- A trigger can be found by its word: “sig” finds
,sigwithout typing the comma. The prefix is a typing convention, not part of the name you’re looking for. And at equal relevance, your own circuts come before a pack’s.Link to this detail - ↑ recalls your past searches, like a terminal. ↑↓ then move through the results. Only searches that led to an action are kept.Link to this detail
- On the very first open, the palette shows YOUR circuts first, then the words you already type. That order is chosen, and it fades as soon as you start using the app.Link to this detail
- Opening the palette copies whatever you had selected, whichever shortcut you gave it: with ⌘CC the first press does the copying; with any other, Circut sends the ⌘C for you. Select a text, then ⌘N turns it into a circut, with no copy step of your own.Link to this detail
- ⌘N creates a circut from the clipboard, ⌘S from what you typed, results or not. The line is always there, as a reminder of the gesture. It shows the start of what you copied, so you see the circut before creating it, and never a password: content that a password manager such as 1Password marks as concealed isn’t shown, even when sharing your screen.Link to this detail
- → opens the selected circut’s actions: insert, copy, edit, share. ⌘C copies the rendered text (dates computed, variables resolved) without triggering it; ⌘O opens the app with your search already in the field.Link to this detail
- “Edit” from the palette brings the window TO YOU, even when you are in full screen on another desktop. A background app that promotes itself should come to the screen you are looking at.Link to this detail
- Hold ⌘: ⌘1 to ⌘9 appear at the end of the first nine results and insert them without the arrow keys. And ⌘CC followed by a digit, without letting go of ⌘, inserts that result in a single gesture.Link to this detail
- Type
#: your #categories appear as chips, with the number of circuts in each, and ⇥ takes the first.Link to this detail - A result’s first #category shows at the end of its row, and gives way to the digit when you hold ⌘: whoever holds ⌘ is looking for the digit, not the category. Nothing slides, nothing moves.Link to this detail
- The ⌘ keycaps light up while ⌘ is held: what ↩ is about to do can be read before you press.Link to this detail
- Opaque, constant background, readable over a white editor as over a dark theme. A click anywhere else closes it, even in another app.Link to this detail
- The shortcut the app shows you is YOURS, everywhere it quotes it (onboarding, the “Via the palette” tile in Statistics, the Emoji pack summary, the menu bar), read from your own layout: ⌘JJ on Dvorak, where the C key types a J.Link to this detail
- A timed pause. In the palette, type
pausefollowed by the number of minutes during which you do not want any circut to expand:pause 1for 1 minute,pause 15for 15 minutes, and so on. A plainpausemeans 5 minutes. In the menu bar, Circut’s menu also offers 1, 5 or 15 minutes, or 1 hour. Expansions resume on their own, and until then, the icon says so. No more switch you forget to flip back.Link to this detail
While you type
- “teh” becomes “the” as you type (English autocorrect pack, one click to switch on), without ever scrambling what follows: short substitutions are typed, long texts are pasted.Link to this detail
- Dead keys are understood (AZERTY, US International):
^thenemakes an “ê” that a single backspace erases. The trigger is erased exactly, never one character too many.Link to this detail - Holding a letter to pick an accent triggers nothing: only the press counts, never the repeat. While the macOS accent panel is open, the key repeats without typing anything. Without this guard, an “o” held down to get “ô” would fire
ooo, “out of office”.Link to this detail - The last letter of your trigger never leaves your keyboard: the app never receives it, and Circut only erases what comes before it. Nothing is left for the app to transform first — the
...and->Notion collapsed while eating the character in front, the emoji picker Confluence opened on a “:”, the emoji codes Discord replaced on its own.Link to this detail - A circut with several lines arrives in one piece, however short: it is pasted rather than typed. Typed line by line, a web editor would lose characters around the line break.Link to this detail
- A short substitution is laid down one letter at a time, at the pace of a hand: the curly apostrophe, the non-breaking space and its sign. An editor reading your keystrokes as they come sees nothing unusual — sent in one piece, the two characters made Confluence’s emoji picker swallow the non-breaking space.Link to this detail
- Case follows your typing when the pack allows it: type the trigger capitalized, the text comes out capitalized.Link to this detail
- You can chain: keystrokes that arrive while an expansion is being inserted are queued and replayed in order.Link to this detail
- When a password field turns on macOS secure input, Circut pauses, and the menu bar icon says so. Safari, Chrome, 1Password and the sudo prompt in Terminal all turn it on by themselves.Link to this detail
- When secure input stays stuck, Circut tells you the fix: most often “unlock 1Password”, locked when the Mac went to sleep, and one click opens it. The menu bar and the window banner say so as soon as the Mac wakes up, the notification the moment you type into the void.Link to this detail
- You type out a text you already have a circut for? Circut lets you know, discreetly, and one click opens the circut. Never for a text under seven characters, and never for a text Circut just wrote itself: the space you type after an expansion should not wake up a neighboring circut’s reminder, for a keystroke that was not yours.Link to this detail
- A circut that is only a link never blames you for typing its label: “webinar”, typed for its own sake, is not a missed opportunity for the circut that links to the webinar.Link to this detail
- Circut stops reminding you of a circut you never use: the last reminder says so, and lets you choose. With no answer it goes quiet. The day the circut is used, the reminders come back on their own. And turning them off can be undone: a “Reactivate” line waits under its usage graph.Link to this detail
- An autocorrection never bites into a neighboring word:
anually→ “annually” does not fire inside “manually”. Every pack trigger is checked against the word lists (nearly 8,800 French words, more than 9,200 English).Link to this detail
Clipboard and variables
{clipboard}pastes what you just copied, and{clipboard:sentence}fixes a stuck caps lock on the way: “THANKS FOR YOUR REPLY” pastes “Thanks for your reply”.{clipboard:upper},{clipboard:lower}… too. And these transformations chain, in any order:{clipboard:euros:upper}spells out an amount, in capitals.Link to this detail- Copy an amount, and
{clipboard:euros}spells it out: “€1,250.50” becomes “one thousand two hundred fifty euros and fifty cents”, and{clipboard:words}does the same for any number, in English or in French, down to septante in Belgium and huitante in Switzerland. Circut never guesses: anything that can’t be read without ambiguity stays as it is, in plain sight. On a contract or a check, the words prevail over the figures. A wrong reading there wouldn’t be a typo, but a different amount.Link to this detail {cursor}places the insertion point wherever you want: between two quotation marks, inside parentheses, mid-sentence. And it lands there in one go, with no flurry of arrow keys: Circut sets the insertion point through accessibility, and falls back on arrows only where an app refuses it.Link to this detail{date},{date+7d:EEEE d MMMM},{time}: dates that do the arithmetic, in English as in French.Link to this detail- A variable stands out from the text everywhere an expanded text is shown (list, palette, previews, statistics): in code style and in the app’s accent color, at the size of the text around it. And the engine decides what counts as one: a misspelled variable (
{dat}), the braces of a code circut or another tool’s variable stay text, exactly as they will be inserted.Link to this detail - In the variable picker, the “Numbers” tab only shows its previews once you’ve copied a number. Otherwise, it tells you what to copy. And everywhere, a preview that wouldn’t change what you copied stays quiet: eight “1250” lined up under “Uppercase” or “snake_case” would have been true, and said nothing.Link to this detail
- Type
{in the expanded text, and what you type next filters the variables, by name as well as by label ({tomfinds “Tomorrow”). ↩ inserts the one you picked in place of what you typed, and ⌘Z gives it back. On a lone{, ↩ stays a line break: a brace followed by Return in a piece of code never inserts a variable.Link to this detail - After a paste-based expansion, your clipboard is handed back, and handed back before your ⌘V if you paste right after: it is your text that gets pasted.Link to this detail
- The first C of ⌘CC copies: select, ⌘CC, ⌘N, and you have a circut made from what you just copied, without leaving the app.Link to this detail
- What you copy comes through alive: links, bold and italics follow into the draft, web pages included.Link to this detail
- The palette shortcut can be changed to another double tap (⌘II…). The app warns if the letter already means something on a double tap (Z, V, S, W), without forbidding anything.Link to this detail
- A shortcut another app already uses doesn’t leave you typing into the void: after five seconds with no response, a note under the field gives the likely cause and the fix. Alfred’s ⌥⌘;, for instance: the other app intercepts the shortcut before Circut can see it.Link to this detail
Collections
- Every pack has a preview with search and a test zone: try
:eyes:before switching on thousands of emoji triggers.Link to this detail - “Inspiration” packs are picked line by line, and a pencil adapts the phrase to you before you adopt it.Link to this detail
- The preview tells you what you already have: already picked, trigger already taken, text known elsewhere.Link to this detail
- An entry you already have, word for word, says “Already in your circuts”. An entry whose trigger serves something else names where the circut holding it comes from (“from the Health and medical pack”), one click away. And switching a pack on no longer reports a conflict when another pack carries the very same entry.Link to this detail
- When a collection says “91 of 92”, the missing entry says which of your circuts holds its trigger, right under its row. And an entry served identically by another circut does not count as missing.Link to this detail
- Emoji answer to the codes GitHub, Slack and Discord taught you (
:tada:,:sob:,:+1:). Symbols (->→ →,:euro:,:nbsp:) ship with the selector that keeps web apps from turning them into emoji: ♥︎ stays ♥︎.Link to this detail - Emoji whose name is a single word are typed (
:heart:,:rocket:,:eyes:,:paperclip:). The ones with a descriptive name (:face with tears of joy:) are searched in the palette. Close to 4,000 triggers firing as you type would mean as many possible shadowings, and what you do not know by heart, you do not type: a one-word name is exactly what sticks. An emoji whose mode you set yourself keeps yours.Link to this detail - Superscripts and subscripts are composed instead of being listed:
CO:sub2:writes CO₂, andmfollowed by^2writes m². Shipping ready-made words (m², km², cm²…) would open an endless list. The character alone is enough. The short form stops where usage stops,^2and^3. The other digits go through:sup4:.Link to this detail - The Proper nouns pack, one click to switch on:
iphone␣gives “iPhone”,github␣“GitHub”, brands in their official casing, with a trailing space so they never get in the way.Link to this detail - An acronym typed in capitals does not fire the abbreviation that looks like it: “no MSG” stays “no MSG”, while
msgandMsgstill give “message”. The rule only covers abbreviations, whose shortcut is invented. A spelling correction still works in capitals, because “RECIEVE” in a headline deserves “RECEIVE”.Link to this detail - “Activate all packs” only activates those of your language and the universal ones. Other languages stay within reach under “Other languages”.Link to this detail
- Search looks INSIDE the packs, not just at their names: type
heartand each card says how many of its circuts match. The question you actually ask is “does this already exist?”, not “which pack is called that?”.Link to this detail - Opening a pack from a search opens it already filtered on what you were looking for. And the “Other languages” section unfolds by itself when the answer is in there, then folds back when you clear the search, unless you were the one who opened it.Link to this detail
- Search in Collections works entirely from the keyboard: ⌘F BRINGS the field back on screen when you had scrolled away, instead of focusing it where you cannot see it. And packs in another language are browsed with the arrow keys like all the others, once Other languages is unfolded.Link to this detail
- Every suggestion in the questionnaire can be declined with an ×. A suggested circut is never a forced one.Link to this detail
- The circut ideas flag a trigger already taken under its field, and sum up the conflicts at the bottom, each name one click away from its field. A line still being filled is named by its trigger, not “Draft”.Link to this detail
- In the circut ideas,
{cursor}is recognizable at a glance and says on hover what it will do: it is often the first variable you meet, so it should introduce itself.Link to this detail - The questionnaire window can be resized, and remembers its size: it grows with what you write in it, and the next opening remembers.Link to this detail
Coming from elsewhere
- Eight formats recognized without picking anything: Alfred, TextExpander, Espanso, aText (including its compressed native format), Raycast, Text Blaze, Rocket Typist, CSV. Drop several files. An unreadable one does not block the others.Link to this detail
- An entry the import cannot make sense of does not stop the others: what can be read is imported, what resists becomes a warning in the preview. A file of several hundred snippets should not fail as a whole over one odd line.Link to this detail
- When an aText export refuses to open, the diagnostic report (⇧⌘R) carries its structure — its keys, its types, its counts — and never a single one of its values. That is how an unknown format gets investigated without ever asking for the file, which often holds passwords and card numbers.Link to this detail
- Nothing is written before the preview: each entry with what will happen to it (imported, as a draft, deactivated because the trigger is already taken), by source group, recomputed with every checkbox.Link to this detail
- Your original folders become #categories, and a #category you already had wins over the new form: the “Customer support” folder joins your
#customersupportinstead of creating a#customer-support. Two forms of the same #category would split the search in two. A checkbox in the preview lets you import without them.Link to this detail - On import, an entry whose trigger is held by a pack takes it back right away: the preview says so (“Will replace the pack circut with the same trigger”), and the circut is active without a relaunch.Link to this detail
- Alfred’s
{clipboard:uppercase},{clipboard:lowercase}and{clipboard:capitals}become circuts that do the same thing: same syntax did not mean same names, so the import translates Alfred’s names into ours, and only the exact equivalents.Link to this detail - A rich Alfred snippet arrives with its bolds, its italics, its links and its bullets. The one you had set to Don’t auto expand arrives Via the palette, the preview saying so before you click. The setting travels with the text: what you were not typing over there does not fire over here.Link to this detail
- Placeholders are translated (
%|→{cursor},%Y-%m-%d→{date:yyyy-MM-dd}), and false friends flagged rather than imported wrong (Text Blaze’s{time: MM/DD}, whoseDis not ours).Link to this detail - Snippets that run scripts are set aside, and flagged: Circut runs nothing.Link to this detail
- The HTML of TextExpander’s formatted snippets arrives as clean text, links preserved. The preview lets you keep it as is if it was code.Link to this detail
- Circut spots the expansion tool already installed and offers the import during setup, with the export instructions for your tool.Link to this detail
- In Collections, each of the eight formats on the import card unfolds its export instructions, with the drop zone right below. TextExpander’s covers its web version, which only exports CSV.Link to this detail
- The report appears in the import window itself, where you just clicked, with a button to go and see the result.Link to this detail
- Formatted snippets arrive as rich text (HTML from TextExpander or Text Blaze, RTF from aText and Rocket Typist): bold, italic and working links, and the preview lets you choose plain text or the raw HTML instead. Curly apostrophes and line breaks survive the RTF.Link to this detail
- The apostrophe spreadsheets add before some shortcuts (
'--for--) does not follow: it protected a formula, it was never part of your trigger.Link to this detail - When a file has no folders, the preview says “All snippets” rather than “No folder”: Circut has no folders, and naming one it will never create is an empty promise.Link to this detail
Your data
- No account, no telemetry. The only network channel, the update check, is spelled out in Settings and can be switched off. The proof, and how to check it.Link to this detail
- The end-of-trial reminder is local: Circut does not have your address.Link to this detail
- One readable JSON file does the backup, the export and the sync, in the cloud you choose: you can read it without Circut, and it leaves with you.Link to this detail
- Picking a backup location is enough to turn it on: the panel opens on your cloud folder, never on one picked for you. With no location set, the help says it plainly: this Mac isn’t backing up your circuts yet.Link to this detail
- Two Macs on the same profile converge: your edits are kept on both Macs, statistics add up without double counting, and Circut never writes over a file it could not read.Link to this detail
- What you change on one Mac shows up on the other without a gesture: the window already open refreshes itself when the merge lands. A sync you have to close and reopen to see is not a sync.Link to this detail
- On a new Mac, picking the other Mac’s profile file is enough to join it, and the backup help says so as long as no location is set. No “Replace?” prompt to make you think you’re overwriting it: before anything is written, a sheet shows its date, its circuts, its license, and what will change on this Mac.Link to this detail
- Pointing at a folder where a profile already lives offers to join it, whatever its file name, rather than create a second one that nothing would ever bring together. The second Mac is exactly where that mistake happens, and it only shows after days of drift. Hence Create a new profile: available, but less prominent.Link to this detail
- The “Back up now” button recreates a deleted backup file, and says when it cannot be read. The automatic backup never recreates what you deleted, even if Circut was closed when you deleted it. Deleting is a decision: a scheduled backup does not undo it behind your back.Link to this detail
- A backup file that disappears is no longer discovered by chance: a notification, “Your profile is no longer backed up”, says it is gone and what to do (recreate it, or pick another one), and clicking it opens Backup in Settings.Link to this detail
- Restore accepts old exports, and importing a profile says beforehand “N replaced, M deleted”.Link to this detail
Getting started
- It teaches prefixes by family (
,,;, doubled letter, trailing space) with real examples from the packs.Link to this detail - The try-it step only exists if you have just imported your library: it has you type it, and nothing else. Without an import, it only repeated the intro’s gesture and announced the packs Collections shows right after.Link to this detail
- After “Allow notifications”, the screen says where macOS asked (top right, far from the window). And if the request was declined earlier, the button opens System Settings on Circut’s entry rather than doing nothing: a button reads the status before it promises.Link to this detail
- When you authorize Circut, a small companion opens next to System Settings, with the instructions and a demo of the gesture: System Settings covers the welcome screen at the very moment you need it. It follows the window, and fades away once access is granted.Link to this detail
- Circut names the System Settings pane the way your macOS does: “Device Control and Data Access” on macOS 27, “Accessibility” before. Instructions that cite a name missing from the screen leave you searching, right when you’re granting the permission.Link to this detail
- If DeepL is installed, the shortcut step says so: its translation shortcut is the same by default, and the field to change Circut’s is right there. The note goes away as soon as you change it.Link to this detail
- Under “Reduce motion”, the macOS accessibility setting, the palette shortcut demo shows the key twice, “⌘ C C”: without the animation, nothing said “twice”.Link to this detail
- A
.circutprofiledropped on the import card opens the restore flow, not an “unrecognized format”.Link to this detail - The last screen says Circut will start with your Mac, and where to turn that off: only when it is true. A system setting changed on your behalf gets said, in one line, never in one more step.Link to this detail
- “Replay the introduction” plays it all again, whenever you like.Link to this detail
System
- The Dock only shows Circut while a window is open, like Alfred.Link to this detail
- Quitting asks for confirmation (“your triggers will stop”), but stays silent at logout, restart, shutdown and during an update.Link to this detail
- Updates take one click, and the permission you granted Circut survives: you never grant it again. Once granted, it applies without a relaunch.Link to this detail
- An update that is waiting shows without being looked for: at the top of the menu bar menu, in Settings, and on the version label. Circut checks at launch and then once a day, and the reminder repeats until you decide, without ever opening a window while you type.Link to this detail
- Settings date the last check that WENT THROUGH, not the last attempt: a week without one turns it orange (“A firewall may be blocking circut.app”), and an app launched from the DMG says right away that it cannot update from there.Link to this detail
- Updates come down to one three-way choice: install them, tell me about them, or check for nothing at all. The last one is not a comfort setting: cutting the app’s only network channel has to stay possible, or the promise is not one.Link to this detail
- An update installed automatically waits until you stop typing, and until no Circut window is open. Installing relaunches the app: doing it mid-sentence, or on a circut you are still writing, would be the opposite of a service.Link to this detail
- After an update, Circut relaunches without opening its window (it reopens it only if it was open): a notification, “Circut was updated”, leads to what is new. The install waits until you stop typing, and a window opening then would land on the very moment it had picked as quiet: a video call, a demo, a shared screen. And clicking a Circut notification shows only what it announces, never the app on top.Link to this detail
- Pick English in Settings → Language on a French Mac: from the next launch, the update window, its notes, macOS panels and menus speak English too, and a note under the selector says so until it is the case. Circut writes its choice into macOS’s per-app language key, the only one the updater and the system read. The note is a derived state, and goes out on its own at relaunch.Link to this detail
- Launching the app while it is running doubles nothing: it opens the window of the running instance.Link to this detail
- Circuts fire in Alfred, Raycast and other launchers too, even when Circut’s own window sits behind them. Their panel never tells the system it has the keys: Circut looks at what receives the keystrokes, not at what is frontmost.Link to this detail
- Highlight text anywhere, right-click, “New Circut”: the editor opens pre-filled with your selection, without touching your clipboard.Link to this detail
- Keyboard everywhere: ⌘1 to ⌘4 for the tabs, ⇧⌘T to sort, ⇧⌘M for multiple selection, ⇧⌘F to filter,
/for the search, ↑↓ to move from the search. And on AZERTY, where typing 1 needs Shift, ⌘1 works without it: Circut listens to the key, not the character.Link to this detail - ⇧⌘R composes a feedback email, diagnostic report included. If your mail client stays silent, a second ⇧⌘R opens the fallback (address and “Copy the diagnostic report”).Link to this detail
- No shortcut steals a text field’s own: ⌘⌫ in a field deletes the line, as everywhere on the Mac.Link to this detail
What Circut does not do, by design
- No streaks, no score, no gamified statistics: a background tool stays understated.Link to this detail
- No “smart detection” of when to trigger: predictable rather than clever (the fixed-position palette, for one).Link to this detail
- Rich text, but three marks only: bold, italic, and links with a label. Never a font, a size, a color or an image: what Circut inserts is the same every time, and it is the receiving app that renders it in its own way (the Test zone says as much: “Indicative rendering”).Link to this detail
- No Circut server, no account: your Macs sync through your cloud, with your file.Link to this detail
- A deactivated pack does not come back. A pack circut you deactivated yourself is never resurrected.Link to this detail
None of these details deserves a headline. Together, they are what turns a tool into a reflex.
Everything described here is in the app today. This page follows every release.