π§ Snape - A Severus Snippet Manager for macOS
February 25, 2026 Β· View on GitHub
Handle your snippets with Severus precision.
Features
- β‘ Quick index selection (a-z, A-Z)
- π Real-time filtering with
/ - π Folder-based snippet grouping with separators
- π Preview popup on hover and keyboard navigation
- π Automatic clipboard copy with visual confirmation
- π¨ Light/Dark/System theme support
- π±οΈ Opens at cursor position
- πΎ Remembers window size
- πͺ Click outside to close
π Philosophy
Snape follows the KISS principle β Keep It Simple, Severus π§.
- Minimal UI, instant access
- Zero learning curve: open, pick, done
- Plain text storage for easy syncing and versioning
- Integrates with your existing workflow, not the other way around
- No accounts, no cloud, no nonsense
Requirements
- macOS 13.0 (Ventura) or later
Installation
Homebrew
brew tap rgcr/formulae
brew install --cask snape
Or Download Latest Release
- Download Snape-2.0.0-macos.dmg from
Releases - Open the DMG and drag
Snape.appto/Applications - Bypass Gatekeeper
xattr -cr /Applications/Snape.app
Hotkey Integration
- Snape works best when bound to a global hotkey.
- The app opens at your cursor position, you select a snippet, and it's copied to your clipboard.
macOS Shortcuts (Native)
- Open Automator β New β Quick Action
- Add "Run Shell Script" action
- Script:
open -a Snape - Save as "Launch Snape"
- Go to System Settings β Keyboard β Keyboard Shortcuts β Services
- Find "Launch Snape" β Assign shortcut (e.g.,
Cmd+Option+S)
Hammerspoon
-- In ~/.hammerspoon/init.lua:
hs.hotkey.bind({"cmd", "alt"}, "s", function()
hs.application.launchOrFocus("Snape")
end)
skhd
# In ~/.config/skhd/skhdrc:
cmd + alt - s : open -a Snape
Raycast
Create a Quicklink with open -a Snape and assign a hotkey.
Keyboard Shortcuts
Normal Mode
| Key | Action |
|---|---|
β β | Navigate snippets |
Enter | Select snippet and copy to clipboard |
a-z A-Z | Quick selection by index |
/ | Enter filter mode |
? | Show about dialog |
Esc | Quit |
Filter Mode
| Key | Action |
|---|---|
| Type | Filter snippets by name or content |
Backspace | Delete last character |
β β | Navigate filtered list |
Enter | Select snippet |
Esc | Exit filter mode |
Snippets Directory
Snippets are stored in: ~/.config/snape/
Each file is a snippet. The filename (without extension) becomes the snippet name.
Folder Structure
Use folders to organize snippets into groups:
~/.config/snape/
βββ readme.txt # Ungrouped (shown first)
βββ 01-aws/ # Group: "aws"
β βββ 01-get-account.txt
β βββ 02-list-buckets.txt
βββ 02-linux/ # Group: "linux"
β βββ 01-find-files.txt
β βββ 02-disk-usage.txt
βββ scripts/ # Group: "scripts" (no prefix)
βββ backup.txt
Ordering:
- Folders become section separators in the UI
- Numeric prefix (
01-,02-) controls display order - Prefixes are stripped from display (e.g.,
01-awsshows as "aws") - Ungrouped files (in root) appear first
- Files within folders are also sorted by name/prefix
Default Snippets
On first launch, if no snippets exist, sample snippets are created:
hello.txtβ "Hello, World!"greeting.txtβ Friendly greetinghello-world.goβ Hello World in Go
Settings
Click the βοΈ gear icon to access settings:
- Theme: System / Light / Dark
Window size is saved automatically when you resize.
Acknowledgments
- Inspired by the template system of AutoHotkeyβs
CL3utility
Contributing
- Fork the repo
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -m 'Add some feature' - Push the branch:
git push origin my-new-feature - Open a Pull Request π