Use the backend that best matches user intent:
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionobsidianExecute the skills CLI command in your project's root directory to begin installation:
Fetches obsidian from bitbonsai/mcp-obsidian and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate obsidian. Access via /obsidian in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
988
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
988
stars
Use the backend that best matches user intent:
MCP (default for vault data operations)
Obsidian CLI/App context (only when app context is needed)
CLI git (sync/backup workflows)
When a request is ambiguous, pick MCP first unless the user explicitly asks for sync/backup/git/app behavior.
patch_note rejects multi-match by default. With replaceAll: false, if oldString appears more than once the call fails and returns matchCount. Set replaceAll: true only when you mean it, or add surrounding context to make the match unique.
patch_note matches inside frontmatter. The replacement runs against the full file including the YAML block. A generic string like title: will match frontmatter fields. Include enough context to target the right occurrence.
patch_note forbids empty strings. Both oldString and newString must be non-empty and non-whitespace. To delete text, use newString with a single space or restructure the note with write_note.
search_notes returns minified JSON. Fields are abbreviated: p (path), t (title), ex (excerpt), mc (matchCount), ln (lineNumber), uri (obsidianUri). Hard cap of 20 results regardless of limit.
search_notes multi-word queries score terms individually AND as a phrase. Each term is OR-matched, so a document matching any term appears in results. The full phrase gets an additional scoring boost.
write_note auto-creates directories. Parent folders are created recursively. In append/prepend mode, if the note doesn't exist it's created. Frontmatter is merged (new keys override) in append/prepend; replaced entirely in overwrite.
delete_note requires exact path confirmation. confirmPath must be character-identical to path. No normalization, no trailing-slash tolerance. Mismatch silently fails with success: false.
move_file needs double confirmation. Both confirmOldPath and confirmNewPath must exactly match their counterparts. Use move_note for markdown renames (text-aware, no confirmation needed); use move_file only for binary files or when you need binary-safe moves.
manage_tags reads from two sources but writes to one. list merges frontmatter tags + inline #hashtags. add/remove only modify the frontmatter tags array. Inline tags are never touched.
read_multiple_notes never rejects. Uses allSettled internally. Failed files appear in the err array; successful ones in ok. Always check both. Hard limit of 10 paths per call.
| Error | Next step |
|---|---|
| patch_note "Found N occurrences" | Add surrounding lines to oldString to make it unique, or set replaceAll: true |
| delete_note / move_file confirmation mismatch | Re-read the note path with read_note or list_directory, then retry with the exact string |
| search_notes returns 0 results | Try single keywords instead of phrases, toggle searchFrontmatter, or broaden with partial terms |
read_multiple_notes partial err |
Verify failed paths with list_directory, fix typos or missing extensions, retry only failed ones |
When the user asks to "sync", "backup", or "store my vault with git", use CLI git with this behavior:
Run a preflight before changing anything:
git availablegit config user.name and git config user.email are setIf preflight is incomplete, ask exactly one targeted question with a recommended default.
git pull --rebase now? (Recommended: Yes)"Safe sync sequence (never force push by default):
git add -Agit commit -m "vault sync: YYYY-MM-DD HH:mm" (skip commit if no changes)git pull --rebasegit pushgh is optional:
gh only for remote bootstrapping (create repo / set origin) when requested.gh for normal sync once remote is configured.Stop on conflicts and report clear next steps.
When the user asks for app-context operations (active file, open in editor, daily notes with templates, backlinks), use the Obsidian CLI directly via shell commands.
Run a preflight before first CLI use:
/Applications/Obsidian.app/Contents/MacOS/obsidian (macOS), obsidian (Linux), obsidian.exe (Windows)pgrep -xiq obsidian (macOS/Linux) or tasklist /FI "IMAGENAME eq Obsidian.exe" /NH (Windows)obsidian:// URIsVault targeting: obsidian vault="VaultName" <command>. The vault name is the folder basename unless OBSIDIAN_VAULT_NAME is set.
Key commands:
# Read the currently active file
obsidian read
# Read a specific file
obsidian read file="My Note"
# Open a file in Obsidian
obsidian open path="Notes/example.md"
# Open today's daily note
obsidian daily
# Append to daily note
obsidian daily:append content="- [ ] New task"
# Search (Obsidian's own search, different from MCP's BM25)
obsidian search query="meeting notes" limit=10
# List all tags with frequency
obsidian tags sort=count counts
# Get backlinks for a note
obsidian backlinks file="My Note"
# Find unresolved links
obsidian unresolved
Run obsidian help for the full command reference. The CLI evolves with Obsidian releases.
When to use CLI vs MCP:
Load these only when needed, not on every invocation.
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
pproenca/dot-skills
mattpocock/skills
obsidian fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
obsidian reduced setup friction for our internal harness; good balance of opinion and flexibility.
We added obsidian from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
obsidian is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
I recommend obsidian for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
obsidian has been reliable in day-to-day use. Documentation quality is above average for community skills.
Keeps context tight: obsidian is the kind of skill you can hand to a new teammate without a long onboarding doc.
Keeps context tight: obsidian is the kind of skill you can hand to a new teammate without a long onboarding doc.
Useful defaults in obsidian — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
Solid pick for teams standardizing on skills: obsidian is focused, and the summary matches what you get after install.
showing 1-10 of 41