Skip to content
Back to skills

Obsidian Capture

ASecurity

Save a note, decision, or thought to the Obsidian vault right now. Use when someone says "capture this", "save this to Obsidian", "note this down", "log this decision", "obsidian note", "save this for later", "capture that idea". Requires OBSIDIAN_VAULT_PATH to be set.

  • 7 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 13, 2026
ai-agentsgoshellbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 13, 2026

npx -y skills add chuckplayer/claude-agent-pack --skill obsidian-capture --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Obsidian Capture?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Obsidian Capture
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chuckplayer-obsidian-capture/badge)](https://www.skillsdirectory.com/skills/chuckplayer-obsidian-capture)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: obsidian-capture
description: >
  Save a note, decision, or thought to the Obsidian vault right now. Use when
  someone says "capture this", "save this to Obsidian", "note this down", "log
  this decision", "obsidian note", "save this for later", "capture that idea".
  Requires OBSIDIAN_VAULT_PATH to be set.
---

# Obsidian Capture

Save an ad-hoc note, decision, or thought to the vault immediately. Captures
always land in `Claude/captures/` (global, not project-specific) and are linked
into the project's daily note automatically.

## Step 1 — Check configuration

Read `OBSIDIAN_VAULT_PATH` from the environment:
- Bash: `bash -c 'echo $OBSIDIAN_VAULT_PATH'`
- PowerShell: `$env:OBSIDIAN_VAULT_PATH`

If empty, stop and tell the user:

> "OBSIDIAN_VAULT_PATH is not set. Re-run `install.sh` and provide your vault
> path when prompted, or add it manually to `~/.claude/settings.json` under
> the `env` key."

Also read:
- `OBSIDIAN_PROJECTS_FOLDER` (empty string if unset — used for daily note routing)

You do not need the REST API variables. `obsidian-writer` owns the transport chain
(CLI → REST API → filesystem) and reads `OBSIDIAN_REST_API_KEY`, `OBSIDIAN_REST_API_PORT`,
and `OBSIDIAN_REST_API_HTTPS` from the environment itself. Never pass the API key to an
agent — it would end up in the dispatch payload and the transcript.

## Step 2 — Collect content

Ask the user: "What do you want to capture?"

Accept a title and body, or just body text (title will default to the first
line of the body if not provided separately).

## Step 3 — Dispatch obsidian-writer

Invoke the **obsidian-writer** agent with:

- `write_mode`: `capture`
- `vault_path`: value of `OBSIDIAN_VAULT_PATH`
- `projects_folder`: value of `OBSIDIAN_PROJECTS_FOLDER` (empty string if unset)
- `title`: user's title
- `body`: user's body text
- `project`: basename of current working directory
- `timestamp`: current datetime in `YYYY-MM-DDThh:mm` format

That is the whole step. Do not attempt the REST API here — obsidian-writer tries the Obsidian
CLI, then the REST API, then the filesystem, and reports which one succeeded. Building the
capture markdown, choosing a transport, and verifying the write are all its job.

## Step 4 — Confirm

Report the file path and the transport obsidian-writer reported. Example:

> "Captured to `Claude/captures/2026-05-14-1430.md` (via Obsidian CLI)"

or:

> "Captured to `Claude/captures/2026-05-14-1430.md` (filesystem — CLI and REST API unavailable)"

Pass the transport through rather than guessing it. If obsidian-writer reports it degraded to
the filesystem, say why in the same line — a silent permanent degradation is invisible otherwise.

## Gotchas

- Capture files always go to `Claude/captures/` — they are not project-scoped.
- **Do not attempt the REST API in this skill.** It used to, and that duplicated transport
  logic in every calling skill. obsidian-writer owns the whole chain now; a REST attempt here
  would run *before* the dispatch and so defeat the CLI-first ordering entirely.
- Never pass `OBSIDIAN_REST_API_KEY` to obsidian-writer. It reads the key from the environment
  precisely so the secret stays out of the dispatch payload and the transcript.
- If obsidian-writer reports the vault directory doesn't exist, tell the user
  to verify the path in `~/.claude/settings.json`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.