-
eaSnippet 0.4.1 Stable
released this
2026-10-22 05:48:34 +00:00 | 5 commits to main since this releaseeaSnippet 0.4.1
Dictation drops the words you say again while you find the next one, and keeps everything you mean.
Dictation
- Stumbles come out (Qwen3-ASR, English): "just just just just" or "just, just, just" is typed as
"just", "I I I think" or "I, I think" as "I think", "the the" as "the", "on the on the table" as "on
the table", "I think I think" as "I think", "Can you, can you check it out?" as "Can you check it
out?", and "to see, to see what's going on" as "to see what's going on". It happens on this Mac as
the text is made, with no AI and no wait, and the live text in the pill shows it too. - What you mean stays: only short words like these are ever taken out. Emphasis ("really really",
"no no no", "I love love love it"), repeats that are correct English ("I know that that works", "she
had had enough", "the can can hold two litres"), "Maybe, maybe not", "you and I, I think", names,
numbers, hyphenated words, words each in their own quotes, a repeated sentence ("I'm testing. I'm
testing.") and Chinese (看看, 谢谢) are typed as you said them. - Not yet: a restart such as "some in some cases", or a stumble Qwen splits with a full stop ("like
I. I think"), stays as heard. A rare sentence that is correct English but looks exactly like a
stumble ("the ones we don't don't matter") can lose a word.
For AI agents
- MCP
screenshotstays one call at a time inside a batch, even when a screenshot that was running
finishes while the batch is being read: every call to it in that batch is answeredbusy.
Install
brew upgrade --cask x/tap/easnippet # or: brew install --cask x/tap/easnippetOr download the zip below and move eaSnippet to Applications. After updating, macOS may ask you to
allow Accessibility, the microphone and Screen Recording again.Downloads
- Stumbles come out (Qwen3-ASR, English): "just just just just" or "just, just, just" is typed as
-
eaSnippet 0.4.0 Stable
released this
2026-10-22 00:54:22 +00:00 | 23 commits to main since this releaseeaSnippet 0.4.0
Screenshots from the launcher and your own shortcuts, a welcome that fits on one screen, and AI agents
that can drive the running app.Screenshots (Direct edition)
- Capture Screen, Capture Window and Capture Area in the launcher (⌥Space), through macOS's own
screenshot tool, saved where your Screenshot settings say. - Copy Text from Area: drag over text and it's read on this Mac, English and Chinese alike, then
copied, so clipboard history keeps it too. When no text is found the clipboard stays as it was, and
the picture is deleted at once. - Shortcuts for macOS's screenshot toolbar and for Copy Text from Area, off until you set them
(Settings › Shortcuts › Screenshots).screenshot.startMode screen|window|areamakes ⌘⇧5 open in
that mode while eaSnippet runs. - From the command line:
easnippet screenshot [screen|window|area] [--output file.png] [--clipboard] [--text].
Getting started
- One welcome screen instead of four steps: the six tools with your keys, the one permission
eaSnippet needs, and opening at login. Getting Started… in the menu brings it back. - The menu reaches everything: Launcher…, Dictate (with its key) and Getting Started… are new.
- Empty lists say why, with the fix: clipboard history off (Turn On) or blocked by macOS (Open
Settings…), a filter with nothing in it (Show All), no snippets yet (New Snippet…). - Failures show: a microphone that isn't allowed says where to allow it, with a button; a pin,
delete or plugin setting that doesn't save says so. - VoiceOver reads notices aloud, and the dictation buttons have names.
Faster and smaller
- Clipboard history searches without holding up your typing, and ↩ or ⌘1–9 pressed right after
typing acts on what you typed. - The app is about half the size (20 MB instead of 38 MB): release builds leave out their debug
symbols.
Dictation
- The first dictation after launch keeps its screen hints: the text models now load when
eaSnippet starts. - Screen hints read Chinese as well as English.
For AI agents
- Agents and scripts can drive the running app (Direct edition):
easnippet app status,
app show(launcher, clipboard history, snippets, Library, Settings, welcome),
app dictate start|stop|cancel|toggle,app insert(a snippet typed into the app in front, fields
from--var, never the fill-in form) andapp action(lock, sleep, captures). Each reply says what
happened and where. Over MCP,app_statusfor every agent, and the rest with--allow-app. The app
listens on a socket only you can open; restart, shut down and log out stay with you. New error code
not_running. - With
--allow-config, agents can change every setting, including the ones 0.3.1 refused: what
clipboard history records and keeps, AI providers and when eaSnippet asks before sending text,
excluded apps, what dictation reads off the screen, and launcher aliases and folders. Without the
flag, agents still only read settings. - MCP
screenshot(the main display, optionally with its text) with--allow-screen. - Errors agents can act on: a failed MCP tool call carries
{"error": {"code", "message"}}with
the same codes as the CLI, andbusywhen a tool that runs one call at a time is already running. config setaccepts whatconfig get --jsonprints, for every setting, and
easnippet config reset --allasks for--yes.
Smaller fixes
- A settings reset runs once even if eaSnippet quits partway through, and if it fails, eaSnippet says
so after the next launch.
Install
brew upgrade --cask x/tap/easnippet # or: brew install --cask x/tap/easnippetOr download the zip below and move eaSnippet to Applications. After updating, macOS may ask you to
allow Accessibility, the microphone and Screen Recording again.Downloads
- Capture Screen, Capture Window and Capture Area in the launcher (⌥Space), through macOS's own
-
eaSnippet 0.3.1 Stable
released this
2026-10-21 09:11:30 +00:00 | 34 commits to main since this releaseeaSnippet 0.3.1
Faster and more careful: clipboard history keeps up with very large copies, one dictation can no longer
reach the next, password managers stay out of clipboard history, and AI agents get more tools and fewer
ways to do harm.Faster
- Clipboard history stays quick with big copies. Each row used to tidy up the whole text of a copy
before showing its first line, so a few very large copies made every redraw take about 0.4 s. Now a
row reads only as far as it shows: 4 ms for the whole list (measured with 1,000 items and copies up to
1.5 MB). The rows read exactly as before. For a very long copy, the detail pane shows the first 20,000
characters and says so; pasting still uses all of it. - Copying an image no longer holds up the app. PNG images are kept as they are and other formats are
converted in the background (a large screenshot took 36–48 ms on the main thread). Each image keeps
the time it was copied.
Dictation
- One dictation can't reach the next. A language switch that finished after you cancelled could
stop the next dictation, and cancelling while the text was being made could still type it. Each
dictation is now followed from start to finish, so nothing from an earlier one can stop, change or
type into a newer one, and cancelling while the text is being made types nothing.
Privacy
- Snippet analysis asks before using a cloud AI. If an analysis plugin uses a cloud provider,
eaSnippet asks once for each provider before sending any text. - Only this Mac counts as local: a numeric
127.x.y.zaddress,::1orlocalhost. A server name
that merely starts with "127." could be anywhere, so it's treated as the cloud. - Password managers always stay out of clipboard history, whatever its list of ignored apps says:
1Password, Bitwarden, Apple Passwords and Keychain Access, LastPass, Enpass, KeePassXC, Proton Pass,
NordPass, Keeper and MacPass. A copy made in one of them just before you switch apps is skipped too,
instead of being recorded under the next app's name.
Launcher
- "microphone" opens the Microphone page, not Sound (which also answers to "microphone"). Among
equally good matches, what you chose for that very word comes first, then an item's own name, then
what you open most.
For AI agents
- New MCP tools:
snippet_list(a page at a time),snippet_export,snippet_import(snippets,
not settings),keywords_prefix,launcher_search(ranks a query as ⌥Space does),voice_models,
clipboard_pinandclipboard_delete. - Agents can't change launcher aliases or folders, even with
--allow-config, alongside the
settings that were already protected. easnippet voice removeasks for--yes, andvoice modelsandvoice removenow look in the
data folder given by--data-dirorEASNIPPET_DATA_DIR(they used to act on your real downloads).- Clearer CLI errors: a wrong argument reports
invalid_input, and renaming a category to another
one's name reportsconflict. Blank category names are refused, andadd --bodyno longer waits for
input.
Smaller fixes
- Notices no longer get stuck: a cancelled speech model setup and "Analyzing…" for a deleted snippet
both clear. A failed settings save, key removal or plugin change says so, and "Clipboard history
cleared" appears only when it was. - Pausing clipboard history Until Tomorrow now lasts until midnight.
- The documentation,
llms.txtand Settings text were corrected in 24 places to match what the app does.
Install
brew upgrade --cask x/tap/easnippet # or: brew install --cask x/tap/easnippetOr download the zip below and move eaSnippet to Applications. After updating, macOS may ask you to
allow Accessibility, the microphone and Screen Recording again.Downloads
- Clipboard history stays quick with big copies. Each row used to tidy up the whole text of a copy
-
eaSnippet 0.3.0 Stable
released this
2026-10-21 02:54:37 +00:00 | 41 commits to main since this releaseeaSnippet 0.3.0
An app launcher with quick actions, a keep-awake switch in the menu bar, a new icon, and more accurate
dictation: a new speech engine that runs on your Mac, and hints from what's on your screen, so names
and terms come out the way they're written there.Keep your Mac awake (new)
- Right-click the menu bar icon and your Mac stays awake, screen on, until you right-click it again.
The icon turns green and the slot in its middle fills in. It's also in the menu (Keep Mac Awake) and
in the settings file (easnippet config set general.keepAwake true), so it stays on after eaSnippet
restarts. Closing the lid or choosing Sleep still puts the Mac to sleep.
A new icon
- Pocket: a tray holding a snippet, with a strip lifting out of it. The app icon (a layered Liquid
Glass icon) and the menu bar icon are the same drawing.
App launcher (new)
- ⌥Space opens apps. Type a few letters: by name, by initials (
vscfor Visual Studio Code) or by
a word you choose (launcher.aliases). It remembers what you open, so the app you meant is already
selected. Return opens it, ⌘Return shows it in Finder. - Quick actions in the same box: Lock Screen, Sleep, Restart…, Shut Down… and Log Out…. Restart,
shut down and log out show macOS's own confirmation, and apps can still save their work. The first
one asks for Automation permission. - System Settings too: type “sound”, “wifi”, “privacy” or “microphone” and Return opens exactly that
page, with the icon you know from System Settings. Privacy & Security's pages are there too
(Camera, Screen & System Audio Recording, Full Disk Access…). Turn it off in Settings › Launcher
(launcher.systemSettings). - Empty until you type, so nothing distracts you. To list your most used apps and actions first,
turn on “Suggest apps before you type” in Settings › Launcher (launcher.suggestions). - Settings › Launcher sets the shortcut, chooses which quick actions show and leaves apps out;
easnippet launcher list,
searchandforgetshow what it finds and how it ranks a query. Alfred, Raycast and ChatGPT also
use ⌥Space by default; if one of them is installed, Settings › Launcher says so. - ⌃N and ⌃P move the selection in the launcher, the snippet picker and the clipboard history, as
in other Mac apps.
Dictation
- Qwen3-ASR, a new engine on your Mac. In everyday use it got more words right than Apple's speech
recognition, and Chinese mixed with English clearly better than SenseVoice. It writes English,
Chinese and the two mixed, and the pill shows its words as you speak, so what you see is what gets
typed. Choose it in Settings › Voice or witheasnippet config set voice.engine qwen3asr. It needs llama.cpp
(brew install llama.cpp), starts when you dictate and stops after three idle minutes. - Two sizes. 0.6B is about a 1 GB download and uses 1.4 GB of memory while you dictate. 1.7B is
about 2.5 GB and uses 2.9 GB; it makes fewer mistakes and is about twice as slow (a short sentence
takes 0.4 s instead of 0.2 s). Switch in Settings › Voice or with
easnippet config set voice.qwenModel 1.7b. The other size stays on your Mac, so switching back is
instant;easnippet voice removedeletes one. - Hints from the screen. Instead of a word list you keep adding to, Qwen3-ASR looks at the text
where you're dictating: the window title, the field's text, and, if you allow Screen Recording,
the window's text read from the screen (terminals, the conversation above a chat box). In a test,
"a snippet voice models … Quent3 ASR" became "easnippet voice models … Qwen3-ASR". It nudges rather
than forces: in the same tests "queen", "code" and "taxes" stayed as said with Qwen, Codex and tasks
on screen. The text is read once per dictation, stays on your Mac and is never saved. Password
fields and password managers are skipped. Turn it off in Settings › Voice. - No "um" and "uh." Qwen3-ASR's filler words are taken out, along with the commas around them.
- Known quirk: when a dictation starts in English and switches to Chinese, Qwen3-ASR sometimes
writes the Chinese part in English. Starting in Chinese, or starting a new dictation for the
Chinese part, avoids it. - When Qwen3-ASR starts repeating itself, eaSnippet notices within seconds and uses Apple's text
instead of waiting. - Dictation keeps listening when secure input comes on. If an app switched on secure input in the
middle of a sentence (a terminal at a password prompt, for example), dictation stopped. Now it keeps
listening. If a password field has focus when you let go, the text is copied instead of typed, and
you're told. - Dictations stay on the clipboard. After it's typed, each dictation is left on the clipboard, ready
to paste again, and clipboard history can record it like any copy. Turn off “Keep each dictation on
the clipboard” in Settings › Voice (voice.copyToClipboard false) to treat it like any other paste:
your clipboard is put back when “Restore my clipboard after eaSnippet pastes” is on in Settings ›
General. - No more false "Inserted". If no window is in front when you let go (only the desktop), eaSnippet
still pastes, in case a panel like Spotlight has the keyboard, but keeps the text on the clipboard and
tells you it may not have landed. The pill says "Inserted" only after eaSnippet has pasted into a
window. - Push to talk gives way to ChatGPT, which uses the right ⌘ key for its own push to talk, while
ChatGPT is in front, or whenever it's running withvoice.pushToTalkYieldWhileRunning true. Other
apps can be added withvoice.pushToTalkYieldTo. - Reading the window stops cleanly if macOS refuses it. When Screen Recording no longer matches
the app (after an update, for example), eaSnippet stops asking and tells you once, instead of a
macOS prompt taking the focus in the middle of a dictation. - Removing a model in Settings now switches dictation to the other Qwen3-ASR size, or back to
Apple, instead of quietly falling back.
Everyday use
- Open links from the popup: select a link, or a sentence with one link in it, and the 🔗 button
opens it in your default browser.www.apple.comandgithub.com/you/repowork too, without the
https://. - The panels look at home on macOS 26: the dark ring around the clipboard panel, the popup and
the dictation pill is gone. - Settings › Permissions lists Screen Recording (optional, only for the screen hints) alongside
Accessibility, the clipboard and the microphone.
Smaller and more accurate
- Removed: importing from Alfred and Raycast, the
{argument}placeholder (Raycast's name for
{input}), and the hiddeneasnippet clipboardcommand (useeasnippet history). Settings from
builds older than 0.1.0 and per-snippet hotkeys from 0.1.0 are no longer moved over; coming from
0.1.0, set those hotkeys again. - Erase All in Settings › Privacy & Data now also deletes the SenseVoice and Qwen3-ASR downloads.
- A "local" AI server on another machine counts as the cloud: eaSnippet asks before a plugin sends
it text, and never uses it to tidy up dictation. - Fixes: a rare crash when a sentence started with "um" before certain letters; a second running
copy of eaSnippet no longer stops the first one's Qwen3-ASR server.
Install
brew upgrade --cask x/tap/easnippet # or: brew install --cask x/tap/easnippetOr download the zip below and move eaSnippet to Applications. After updating, macOS may ask you to
allow Accessibility, the microphone and Screen Recording again.Downloads
- Right-click the menu bar icon and your Mac stays awake, screen on, until you right-click it again.
-
eaSnippet 0.2.0 Stable
released this
2026-10-14 01:44:18 +00:00 | 107 commits to main since this releaseFaster, more accurate dictation, and a few things that were missing. eaSnippet now needs a Mac with
Apple silicon (macOS 26), which also makes it much smaller: about a 13 MB download.Dictation
- Push to talk. Hold the right ⌘ key on its own, talk, and let go: the text goes where you were
typing. Shortcuts that use right ⌘ still work. You can pick right ⌥ or fn instead, or turn it off,
in Settings › Voice. - No lost first words. The microphone starts before the speech model is ready, so what you say
straight away is kept. - The pill sits at the bottom centre of the screen, so you always know where to look.
- Chinese mixed with English. An optional model, SenseVoice, runs on your Mac's Neural Engine
and writes Chinese and mixed Chinese/English sentences, showing them as you speak. Choose it in
Settings › Voice or witheasnippet config set voice.engine sensevoice; it downloads once (about
240 MB). It's good but not perfect: an English word inside a Chinese sentence is sometimes clipped. - Names and jargon.
voice.vocabularylists words dictation should expect. - Tidy up (optional). Apple's on-device model reads what you said and fixes words that sound
right but don't fit ("the bill is running" → "the build is running"), plus grammar and
punctuation. An answer that drops a word, translates, or swaps in a word that isn't a sound-alike
is thrown away, and your words go in as spoken. Off by default; it adds about a second.
Everyday use
- Rearrange the popup's buttons by dragging them right in the popup. Dictate now sits next to
Paste by default. - Sort your snippets by name, keyword, category or last change.
- Snippet hotkeys are saved with the snippet, so they come along in exports and can be set from
the command line.
Under the hood
- Saving clipboard history and usage no longer waits on the database, so nothing stalls while
another app writes to it. - The app notices every change, whether you, the
easnippetcommand or an AI agent made it, without
extra work. - The MCP server speaks the newest protocol (2026-07-28) as well as the older ones.
- Third-party licences are listed in THIRD_PARTY_NOTICES.md.
Install
brew upgrade --cask x/tap/easnippet # or: brew install --cask x/tap/easnippetOr download the zip below and move eaSnippet to Applications. After updating, macOS may ask you to
allow Accessibility and the microphone again.Downloads
- Push to talk. Hold the right ⌘ key on its own, talk, and let go: the text goes where you were
-
eaSnippet 0.1.0 Stable
released this
2026-10-13 22:14:37 +00:00 | 135 commits to main since this releaseThe first public release: free, for macOS 26 or later on Apple silicon and Intel, signed and
notarized.What's in it
- Selection popup. Select text in any app and a small bar offers Copy, Paste, Save as Snippet,
Clipboard History, Open Link, Search and your plugins. It works in terminals that copy on select
(Claude Code, tmux) and in apps that hide their selection. Show it every time, only with ⌥ held, or
from ⌃⌥A. Double-click an empty field for Paste, Snippets and Dictate. - Clipboard history (⇧⌘V). Search, filters, pins, paste as plain text. Password managers and
concealed items are never recorded; history is kept by count and age. - Snippets (⌃⌥V). Keywords that expand as you type (
;sig), templates ({clipboard},
{date offset=+1d},{input name="Name"},{cursor},{snippet keyword=";sig"}), a fill-in form
only when a field is empty, and revisions. AI suggests a title, category, keyword and fields
(Apple's on-device model by default, or your own key) without rewriting your words. Import from
Alfred or Raycast, and move every keyword to a new prefix in one step. - Plugins. One Markdown file each. Twelve official plugins come bundled and switched off:
Translate, Rewrite, Summarize, Fix Grammar, Explain, Search the Web, UPPERCASE, lowercase,
Title Case, Format JSON, Word Count and URL-encode. - Dictation. On-device Apple speech in any text field or terminal (⌃⌥D). Switch language with
Tab, or listen for two languages at once. - For agents. Every setting in one JSON file with a JSON Schema; the
easnippetCLI with--json
on every command and stable error codes; an MCP server for Codex and Claude Code that sees
clipboard history or changes settings only when you allow it. - Privacy & Data. See what's stored and remove any part of it; deleted text is wiped from the
database file too.
Install
brew tap x/tap https://x.vibewait.ing/x/homebrew-tap.git brew install --cask x/tap/easnippetOr download the zip below and move eaSnippet to Applications. Open it once and allow Accessibility.
Known limits
- Two languages mixed inside one sentence aren't reliable yet; whole sentences in either are.
- Local AI servers (llama.cpp, Ollama, LM Studio) are supported but haven't been tried against a live
server. - The app is universal but hasn't been tried on an Intel Mac; Apple's on-device AI needs Apple silicon.
- English only for now.
Downloads
- Selection popup. Select text in any app and a small bar offers Copy, Paste, Save as Snippet,