dimagious989 downloadsSnipsy adds hotstrings/text expansion to the editor — folders, bulk editing, and Espanso-compatible packs.
Type
todoand a space, get- [ ]. Snipsy is the actively-maintained hotstring plugin for Obsidian — markdown-aware, with a community catalog and Espanso import. No scripting required.
The text-expansion niche in Obsidian has three things wrong with it: the long-standing leader hasn't shipped in four years, the alternatives lean on JavaScript-templating engines, and none of them is aware of markdown context. Snipsy is the simple answer:
Snipsy ships with these triggers ready to use. Type the trigger followed by a space — Snipsy expands it as soon as the space lands.
| Category | Triggers |
|---|---|
| Task states | todo → - [ ] · done → - [x] |
| Markdown inline | bold → **text** · italic → _text_ · code → `code` |
| Headings | h1 → # · h2 → ## · h3 → ### |
| Obsidian callout | note → > [!note] with cursor on the body line |
| Tables | table → 3×3 scaffold |
| Dynamic | today → today's date · now → current time |
| Conversational | brb → be right back · omw → on my way · ty → thank you |
Want more? Browse the community catalog in Settings → Snipsy → Packages — 10 starter packs cover Markdown essentials, daily journaling, GTD, meetings, dev boilerplate, code review, research notes, symbols & math, date stamps. Or paste any Espanso .yml from hub.espanso.org into the Espanso import section.
todo followed by a space. It expands to - [ ].That's it. Open Settings → Snipsy to add your own snippets, browse the catalog, or set up hotkeys.
Settings → Snipsy → Snippets → Add new snippet → pick a trigger (e.g. sig) and replacement (e.g. Best,\nDmitriy). Save. Now typing sig and a space expands to your signature anywhere you type.
The picker is a Command Palette command called Insert snippet… — it's searchable, has a live preview, and inserts at the cursor. To set a hotkey: Settings → Hotkeys → search "snipsy" → bind.
Snipsy watches for triggers followed by a separator — a space, Enter, or common punctuation. When the separator lands, the trigger gets replaced; the separator itself stays exactly where you typed it.
Two ways to invoke (identical result):
You type: todo·
You get: - [ ]· ← cursor right after the bracket
You type: :todo· ← Espanso-style invocation
You get: :- [ ]· ← the leading ":" is your typed character, so it stays
The · is the trailing space you typed. Most users skip the leading : and just type todo, but Espanso muscle memory works too — Snipsy treats : as a separator, so it bounds the trigger the same way a space does.
Multi-line snippets place the cursor on the right line:
You type: note·
You get: > [!note]
> · ← cursor on the body line, ready to type the note
What's safe:
```)`)$|), with support for $date / $time / $filename / $clipboard placeholders and $1/$2 tabstopsSnipsy has two ways to get pre-made snippets:
Community catalog. Hosted at Dimagious/snipsidian-community. Open Settings → Snipsy → Packages, browse the list, click Install. Each pack lives in its own group so you can uninstall it later by deleting the group. The current catalog covers:
$date / $time stamps, log entries>note, >tip, >warning, >danger, etc.smile → 😀, fire → 🔥, etc.)Espanso import. Most Espanso packages are plain YAML. Copy the YAML from any package on Espanso Hub, paste it into Espanso import, click Install. Conflicts open a preview so you can resolve them before anything writes to disk.
Snipsy is offline-first.
.obsidian/plugins/snipsidian/data.json in your vault.api.github.com when you open the Community packages tab (to list the catalog). No analytics, no telemetry, no account.Be honest: a few jobs are better served elsewhere.
Snipsy fits between these — hotstring-style auto-expansion, inside Obsidian, with a catalog. No more, no less.
Active. Releases are tag-driven; the release workflow attests build provenance for every binary it ships. The CHANGELOG.md is a Keep-a-Changelog file maintained on every release.
If something breaks, open an issue. Bug reports help; "this isn't working" without steps doesn't.
If you're building / contributing, the short version:
git clone https://github.com/Dimagious/snipsidian.git
cd snipsidian
npm install
npm run build:vault # build into VAULT_PLUGIN
npm test # vitest with coverage
Set VAULT_PLUGIN to your test vault's plugin folder:
export VAULT_PLUGIN="/path/to/vault/.obsidian/plugins/snipsidian"
Full conventions, release flow, and architecture notes live in CLAUDE.md (when present locally; ignored from the repo).
MIT. Use it, fork it, share it.
Espanso — inspiration and YAML format. Obsidian — the plugin host. Everyone who's filed a bug or suggested a feature so far.
If Snipsy saves you keystrokes: