Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use this skill when the user wants local Obsidian note or metadata work done primarily through documented official desktop `obsidian` CLI commands, with limited local vault filesystem support when needed for parent folders, path checks, ambiguity resolution, verification, or safe vault structure operations. Best for local vault search, note reads, exact-path note updates, backlinks, tasks, properties, templates, and local history. Do not use it for runtime admin, devtools diagnostics, workspace/
.claude/skills/hashgraph-online-obsidian-official-cli/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 52% | 0% |
| case-04 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 64% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 118% | 0% |
Use this skill for local Obsidian vault work through the official desktop obsidian CLI only.
Use this skill when:
obsidian commandsDo not use this skill when:
obsidian-cli-workflows)obsidian:// launchers, plugin APIs, or community toolingAssume these must be true before relying on this skill:
obsidian command is installed and on the system pathobsidian ... child-process launches may inherit app identity variables from Codex and crash during AppKit / LaunchServices registrationWhen this skill is used from Codex Desktop on macOS, do not invoke obsidian directly first. Prefer the Codex-safe wrapper form below:
bashscript -q /dev/null /usr/local/bin/zsh -ilc 'unset __CFBundleIdentifier LaunchInstanceID XPC_SERVICE_NAME CODEX_CI CODEX_SANDBOX CODEX_SHELL; export TERM=xterm-256color; obsidian ...'
Why:
script + login shell wrapper has been validated to run obsidian version and real CLI commands from Codex successfullyIf the user is in a normal terminal outside Codex, plain obsidian ... may still work fine.
Separate these two decisions:
obsidian ...When escalation is required, escalate the wrapped command, not the raw obsidian command.
Enhanced wrapped execution form:
textfunctions.exec_command( cmd="script -q /dev/null /usr/local/bin/zsh -ilc 'unset __CFBundleIdentifier LaunchInstanceID XPC_SERVICE_NAME CODEX_CI CODEX_SANDBOX CODEX_SHELL; export TERM=xterm-256color; obsidian vault=<vault> <command>'", sandbox_permissions="require_escalated", justification="<short user-facing reason>", prefix_rule=["script","-q","/dev/null","/usr/local/bin/zsh","-ilc"] )
Use this enhanced form when:
vault= is used, place it first before the command.active-file, resolved-file, exact-path, daily-note, ambiguous, or none.file= only for loose read-only note resolution.path= for subsequent commands.file= or against an ambiguous target.path= or an explicit documented daily-note command such as daily:append or daily:prepend.json, yaml, csv, or tsv.obsidian version, read, or daily:read to confirm the CLI and app are responsive. In Codex Desktop on macOS, run that probe through the sanitized launch wrapper, not through a direct obsidian child process.path= immediately.daily:* command family and classify the target as daily-note.Always return:
active-file, resolved-file, exact-path, daily-note, ambiguous, or noneRead and inspect:
readfilefilesfolderfoldersoutlinesearchsearch:contextCreate and modify:
createappendprependdailydaily:pathdaily:readdaily:appenddaily:prependmoverenamedeleteLinks and structure:
backlinkslinksunresolvedorphansdeadendsTasks and metadata:
taskstaskpropertiesproperty:readproperty:setproperty:removealiasestagsTemplates and history:
templatestemplate:readtemplate:inserthistoryhistory:listhistory:readhistory:restorediffFor command patterns, capability examples, and manual validation workflows, use:
references/obsidian-cli-command-playbook.mdreferences/capability-cookbook.mdreferences/limitations-and-boundaries.mdreferences/validation.mdreferences/maintenance-notes.mdreferences/source-links.md| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-08 | fail→pass | 12,951 | 10,409 | -20% | 1 | 1 | 0% | 1,813 | 2,747 | +52% | 0 | 0 | — |
case-01 | fail→fail | 30,902 | 19,980 | -35% | 1 | 1 | 0% | 2,456 | 2,673 | +9% | 0 | 0 | — |
case-02 | fail→fail | 14,647 | 22,371 | +53% | 1 | 1 | 0% | 2,453 | 2,811 | +15% | 0 | 0 | — |
case-03 | fail→fail | 7,701 | 22,050 | +186% | 1 | 1 | 0% | 1,315 | 2,613 | +99% | 0 | 0 | — |
case-04 | fail→pass | 22,232 | 12,539 | -44% | 1 | 1 | 0% | 3,625 | 3,418 | -6% | 0 | 0 | — |
case-05 | fail→pass | 28,659 | 15,626 | -45% | 1 | 1 | 0% | 2,172 | 3,569 | +64% | 0 | 0 | — |
case-06 | pass→pass | 7,851 | 10,578 | +35% | 1 | 1 | 0% | 1,172 | 3,032 | +159% | 0 | 0 | — |
case-07 | pass→pass | 13,571 | 8,434 | -38% | 1 | 1 | 0% | 1,177 | 2,432 | +107% | 0 | 0 | — |
case-09 | fail→fail | 10,791 | 10,500 | -3% | 1 | 1 | 0% | 921 | 2,867 | +211% | 0 | 0 | — |
case-10 | pass→pass | 9,728 | 8,470 | -13% | 1 | 1 | 0% | 1,497 | 2,587 | +73% | 0 | 0 | — |
case-11 | pass→pass | 14,031 | 11,431 | -19% | 1 | 1 | 0% | 2,350 | 3,131 | +33% | 0 | 0 | — |
case-12 | pass→pass | 6,691 | 5,296 | -21% | 1 | 1 | 0% | 887 | 3,047 | +244% | 0 | 0 | — |
case-13 | fail→pass | 13,479 | 2,805 | -79% | 1 | 1 | 0% | 1,700 | 2,341 | +38% | 0 | 0 | — |
case-14 | fail→pass | 8,026 | 4,534 | -44% | 1 | 1 | 0% | 1,245 | 2,718 | +118% | 0 | 0 | — |
case-15 | fail→pass | 18,923 | 10,117 | -47% | 1 | 1 | 0% | 1,900 | 2,766 | +46% | 0 | 0 | — |
case-16 | pass→pass | 10,464 | 15,836 | +51% | 1 | 1 | 0% | 1,831 | 3,888 | +112% | 0 | 0 | — |
case-21 | fail→pass | 23,595 | 10,506 | -55% | 1 | 1 | 0% | 3,348 | 2,711 | -19% | 0 | 0 | — |
case-17 | fail→pass | 12,905 | 10,707 | -17% | 1 | 1 | 0% | 1,744 | 3,017 | +73% | 0 | 0 | — |
case-18 | fail→pass | 16,379 | 15,508 | -5% | 1 | 1 | 0% | 1,503 | 3,550 | +136% | 0 | 0 | — |
case-19 | fail→pass | 18,756 | 12,114 | -35% | 1 | 1 | 0% | 2,250 | 2,965 | +32% | 0 | 0 | — |
case-20 | fail→pass | 14,021 | 12,920 | -8% | 1 | 1 | 0% | 1,342 | 3,888 | +190% | 0 | 0 | — |
case-22 | fail→fail | 23,604 | 28,115 | +19% | 1 | 1 | 0% | 3,424 | 5,668 | +66% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.