- Swift 99.6%
- Shell 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The microphone went live 0.2–0.66 s after a dictation started, on top of the 250 ms hold, so a quick first word was cut. It now opens as the push-to-talk key goes down on its own; what it hears waits and the dictation takes it over, in order, as its engine starts. A tap, a shortcut, the dictation ending or 5 s unused closes it. Only when the microphone is already allowed, and only for built-in and wired inputs: a Bluetooth headset would switch to call audio on every shortcut with the key. |
||
| App | ||
| CLI | ||
| docs | ||
| Packages/EaSnippetKit | ||
| scripts | ||
| Tests/AppTests | ||
| .gitignore | ||
| .swiftlint.yml | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| LICENSE | ||
| project.yml | ||
| README.md | ||
| THIRD_PARTY_NOTICES.md | ||
eaSnippet
The everyday toolbox for your Mac: six small tools in one menu-bar app. It's free, open source and stays on your Mac. You, or your AI agent, can change any setting with one command.
| Tool | How you use it | What it does |
|---|---|---|
| Launcher | ⌥Space, then a few letters | Opens apps by name, initials (vsc) or a word you choose, and System Settings pages (“sound”, “privacy”, “microphone”). The same box locks the screen, sleeps, restarts, shuts down or logs out, takes screenshots, and copies the text in any area of the screen. |
| Clipboard history | ⇧⌘V | Keeps what you copy (text, links, images, files) in a searchable list. Leaves out what apps mark as a password and anything from password managers. |
| Snippets | type a keyword, e.g. ;ty |
Turns a short keyword into text you saved, with the date, your clipboard or a name filled in. ⌃⌥V lists them all. |
| Selection actions | select some text | Shows a small bar of buttons above the words: copy, paste, save as a snippet, dictate, open a link in your browser, or actions you add as plugins. |
| Dictation | hold the right ⌘ key | Turns your speech into text on your Mac and types it where you were. English, Chinese and dozens more languages. |
| Keep awake | right-click the menu bar icon | Keeps the Mac awake, screen on, until you right-click again. The icon turns green and the slot in its middle fills in. Closing the lid or choosing Sleep still sleeps the Mac. |
Your snippets, history and settings stay in one folder on your Mac. Speech is turned into text on the Mac, and recordings are never saved. AI features use Apple's on-device model by default; a cloud model is used only with your own key, and eaSnippet asks before sending it any text.
Install
brew tap x/tap https://x.vibewait.ing/x/homebrew-tap.git
brew install --cask x/tap/easnippet
Or download eaSnippet-<version>.zip from the releases and move eaSnippet to Applications. Open it
once and allow Accessibility (on macOS 27, System Settings calls it Device Control and Data Access).
Update with brew upgrade --cask x/tap/easnippet; the app has no updater of its own.
Needs a Mac with Apple silicon and macOS 26 or later.
Command line and AI agents
Every setting lives in one JSON file, and the easnippet command covers your snippets, settings,
clipboard history, plugins, the launcher's search and screenshots, so an agent such as Claude Code or
Codex can make a change for you.
/Applications/eaSnippet.app/Contents/Helpers/easnippet install # links into ~/.local/bin, no sudo
echo 'Hi {input name="Name"},' | easnippet add --title Greeting --keyword ";hi"
easnippet config set shortcuts.dictate ctrl+opt+d # change any setting
easnippet config set general.keepAwake true # keep the Mac awake until set to false
easnippet history search invoice # clipboard history
easnippet export --include-settings -o backup.json # snippets, added plugins and settings, for another Mac
codex mcp add easnippet -- easnippet mcp
claude mcp add --scope user easnippet -- easnippet mcp
easnippet docs all # the formats, for agents
Over MCP, agents can't see your clipboard history unless you start the server with --allow-clipboard,
or your screen unless you add --allow-screen.
Editions
Two editions from one codebase: Direct (everything above; signed and notarized) and App Store
(sandboxed: the popup opens from a hotkey or the Services menu, because Apple doesn't allow the
Accessibility API in sandboxed apps, and it has no command line). See
docs/APP_STORE.md.
Status (22 Oct 2026, v0.4.1)
Both editions build cleanly; 457 package tests and 58 app logic tests pass; SwiftLint is clean. In
daily use on the developer's Mac: the popup (terminals included, with drag-to-rearrange), keyword
expansion, the ⌥Space launcher, push-to-talk dictation with Qwen3-ASR in English and Chinese, the
settings file and Privacy & Data. See docs/FEATURES.md for each feature's status
and docs/REVIEW.md for the latest review.
Build
Requirements: macOS 26+ on Apple silicon (developed on 27.0.1), Xcode 27, brew install xcodegen swiftlint.
xcodegen generate # creates eaSnippet.xcodeproj (not committed)
xcodebuild -project eaSnippet.xcodeproj -scheme eaSnippet -derivedDataPath build build # Direct
xcodebuild -project eaSnippet.xcodeproj -scheme "eaSnippet MAS" -derivedDataPath build build # App Store
open build/Build/Products/Debug/eaSnippet.app
App logic tests: xcodebuild test -project eaSnippet.xcodeproj -scheme eaSnippet -derivedDataPath build.
Package tests and the CLI without Xcode:
cd Packages/EaSnippetKit && swift test
swift run easnippet --help
Lint (our files only): swiftlint lint from the repo root.
Release (Direct edition): bump MARKETING_VERSION in project.yml, then
EASNIPPET_SIGN_IDENTITY="Developer ID Application: …" EASNIPPET_NOTARY_PROFILE=<profile> scripts/release.sh.
It builds the Apple silicon app, checks the signatures, notarizes and staples it, writes
dist/eaSnippet-<version>.zip, updates the Homebrew cask and prints the remaining steps. Release
notes live in docs/releases/.
The app icon is an Icon Composer file (App/Resources/AppIcon.icon): Pocket, a tray holding a
snippet, with a strip lifting out of it. The menu bar icon (MenuBarIcon, and MenuBarIconAwake
while keeping the Mac awake) is the same drawing as a template image.
Licence
MIT; see LICENSE.
Docs
UI design canvas · docs/DESIGN.md |
screens, feedback states, dark mode |
docs/APP_STORE.md |
Mac App Store feasibility and the two-edition plan |
docs/FEATURES.md · docs/PLAN.md |
feature list and task list |
docs/ARCHITECTURE.md |
modules, data, flows |
docs/spec/ |
template syntax, plugin format, exchange format (normative) |
docs/research/ |
the research behind the decisions, with sources |