Snippets Sync
/install snippets-sync
Obsidian Skill
How This Works
The vault is a directory of .md files synced between machines (typically via Syncthing, but any file sync works). Anything written to the vault appears on all synced devices.
Primary use case: Sharing code snippets, notes, and structured content through Obsidian — persists across sessions, renders nicely in Obsidian, and is searchable.
Vault Location
Set SNIPPETS_VAULT_PATH to your vault directory. Defaults to ~/snippets-vault if unset. Point this at a dedicated directory — not your home dir or any folder containing secrets.
| Path | |
|---|---|
| Vault | $SNIPPETS_VAULT_PATH |
| Synced to | Your other machines via Syncthing/rsync/etc. |
Reading & Writing Notes
Direct File I/O (preferred)
Just read/write .md files in the vault directory. Obsidian picks up changes automatically via file sync.
Markdown Format
Notes are plain Markdown with optional YAML frontmatter:
---
created: 2026-04-05
tags: [snippet, python]
---
# Note Title
Content here. Use standard Markdown formatting.
Sharing Code Snippets
Naming Convention
code_snippets/
├── python/
│ └── http-server.md
├── bash/
│ └── find-large-files.md
├── typescript/
│ └── debounce.md
├── docker/
│ └── healthcheck.md
└── _uncategorized/
└── random-thing.md
Rules:
- Folder = language/tech (
python/,bash/,typescript/,docker/,sql/,lua/,gdscript/, etc.) - Filename = what it does (kebab-case):
json-parser.md, notsnippet-001.md - No date prefixes — sort by modified time in Obsidian
- One snippet per file — keeps things searchable and linkable
_uncategorized/for anything that doesn't fit a clear bucket
Snippet Template
---
created: YYYY-MM-DD
language: \x3Clang>
tags: [snippet, \x3Clang>, \x3Ctopic>]
---
# Descriptive Title
Description or context here.
\```\x3Clang>
# code here
\```
Usage: `command to run if applicable`
When to Share via Obsidian vs Chat
Use Obsidian vault when:
- Code snippets the user might reference later
- Anything with syntax highlighting that benefits from persistence
- Reference material or reusable code
Use chat directly when:
- Quick one-off code blocks in active discussion
- Transient stuff that doesn't need to persist
Notification Convention
When dropping a snippet, send a brief heads-up in chat:
"Dropped snippet:
code_snippets/python/http-server.md"
Markdown Rules
These files render in Obsidian, not Discord/chat. Write standard CommonMark Markdown:
- Headers: Use
#/##/###— never**bold text**as a fake header - Code blocks: Always use fenced code blocks with language tag (
```python) — never inline backticks for multi-line code - No chat-isms: No
>blockquotes for emphasis, no~~strikethrough~~abuse, no platform-specific formatting - Links: Wikilinks (
[[other-note]]) for internal references, standard[text](url)for external - Lists: Use
-or1.with proper indentation - Emphasis:
*italic*and**bold**are fine — use sparingly, for actual emphasis - Tables: Standard Markdown tables
The goal: clean, readable notes that render well in Obsidian's reading view.
obsidian-cli (optional)
If obsidian-cli is installed and the vault is registered with Obsidian desktop:
obsidian-cli search "query" # search note names
obsidian-cli search-content "query" # search inside notes
obsidian-cli list # list files
Direct file I/O is the reliable path on headless Linux.
Safety
- Only read/write
.mdfiles in the vault directory - Never touch
.obsidian/or other app config directories - Only point
SNIPPETS_VAULT_PATHat a dedicated snippet/note directory — never at home,~/.ssh, password stores, or credential-containing repos - Files written to the vault propagate to all synced machines
Tips
- Don't touch
.obsidian/— that's Obsidian's config - File sync picks up changes automatically (typically within seconds)
- Wikilinks work:
[[other-note]]links between notes - Frontmatter is searchable in Obsidian
- Use folders for organization — Obsidian handles them natively
- Create language subfolders as needed — the vault grows with usage
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install snippets-sync - After installation, invoke the skill by name or use
/snippets-sync - Provide required inputs per the skill's parameter spec and get structured output
What is Snippets Sync?
Sync code snippets and notes between machines via file sync. Organized by language, rendered in any Markdown viewer (Obsidian, VS Code, etc.). It is an AI Agent Skill for Claude Code / OpenClaw, with 88 downloads so far.
How do I install Snippets Sync?
Run "/install snippets-sync" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Snippets Sync free?
Yes, Snippets Sync is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Snippets Sync support?
Snippets Sync is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Snippets Sync?
It is built and maintained by cdmichaelb (@cdmichaelb); the current version is v1.0.1.