Skip to content

Skills

A skill is a markdown file that gives Claude a defined mission. Skills live in your skills folder and appear in the / menu — and optionally in the Obsidian command palette — ready to run on demand.

Skills range from simple reusable prompts to fully parameterized agentic workflows. Because Claude runs with full tool access, a skill can read and write vault notes, run shell commands, call APIs, and more. If you can describe it in a prompt, you can make it a skill.

File format

A skill file is a standard markdown file with optional YAML frontmatter:

markdown
---
category: Reviews
description: Structured weekly review
autorun: true
params:
  - id: focus
    type: input
    label: Any specific focus area?
    placeholder: Leave blank for a full review
---
Review my notes from this week. Give me:
- What I worked on
- Open threads or unresolved questions
- Suggested priorities for next week

{{focus}}

The frontmatter controls how the skill appears in the menu and how it behaves. The body is the prompt Claude receives.

Frontmatter reference

FieldTypeDefaultDescription
categorystringPromptsGroups the skill under a named heading in the / menu
descriptionstring(none)Short subtitle shown below the skill name
autorunbooleanfalseIf true, executes immediately. If false, inserts into the chat input for review
paramsarray(none)Form fields presented to the user before the skill runs

params fields

When params is defined, ObsidiBot shows a modal form before running the skill. Each entry is an object with the following properties:

PropertyRequiredDescription
idYesVariable name used in in the prompt body
typeYesField type — see below
labelYesHuman-readable label shown in the form
descriptionNoHelper text shown below the label
placeholderNoPlaceholder text for input and textarea fields
optionsYes (dropdown, checkboxes)Array of string values
defaultNoPre-filled value
validations.requiredNoIf true, blocks submission when the field is empty

Field types

TypeDescription
inputSingle-line text field
textareaMulti-line text field
dropdownSelect from a fixed list of options
checkboxesOne or more boolean toggles — result is a comma-separated string
noteVault note picker — fuzzy search over all vault notes; injects the full note content as an attachment (same as @-mention)

Variable interpolation

Use in the prompt body to reference field values. After submission:

  • Non-note fields are interpolated inline.
  • Note fields are added as context attachments (shown as badges above the input, just like @-mention). The token is stripped from the body — the note content arrives via the attachment, not inline text.
  • Unresolved tokens (optional fields left blank) are stripped cleanly. No visible tokens appear in the output.

Execution modes

autorunparamsBehaviour
falsenoneInserts prompt body into chat input for review
truenoneFires immediately; shows Running: <name> in chat
falsedefinedShows form → inserts filled prompt into chat input
truedefinedShows form → fires immediately on submit

Skills folder

Default: _ObsidiBot Skills/ — at your vault root. This keeps skills in your vault, making them easy to edit and sync with Obsidian Git.

Custom: set Settings → ObsidiBot → Skills folder to:

  • A vault-relative path (e.g. _skills) — keeps skills in your vault, synced with Obsidian Git
  • An absolute path — for a shared folder outside the vault

Skills reload each time you open the / menu, so changes take effect immediately with no restart.

Examples

Simple autorun

markdown
---
category: Writing
description: Summarize the active note
autorun: true
---
Summarize the currently active note concisely, preserving key decisions and open questions.

Weekly review with optional focus

markdown
---
category: Reviews
description: Structured weekly review
autorun: true
params:
  - id: focus
    type: input
    label: Focus area (optional)
    placeholder: Leave blank for a full review
---
Review my notes from this week and give me:
- What I worked on
- Open threads or unresolved questions
- Suggested priorities for next week

{{focus}}

Bug report with form

markdown
---
category: GitHub
description: File a bug report on any repo
autorun: true
params:
  - id: repo
    type: input
    label: Repository
    placeholder: owner/repo
    validations:
      required: true
  - id: title
    type: input
    label: Bug title
    validations:
      required: true
  - id: severity
    type: dropdown
    label: Severity
    options: [low, medium, high, critical]
    default: medium
  - id: body
    type: textarea
    label: Description
    placeholder: Steps to reproduce, expected vs actual behavior…
---
File a GitHub issue in {{repo}}.

Title: {{title}}
Severity: {{severity}}

{{body}}

Note summarizer using vault picker

markdown
---
category: Writing
description: Summarize any vault note
autorun: true
params:
  - id: target_note
    type: note
    label: Note to summarize
    validations:
      required: true
---
Summarize the attached note concisely, preserving key decisions and open questions.

The picked note is injected as a context attachment — Claude reads it exactly as it would read an @-mentioned note.

Programming agent

markdown
---
category: Code
description: Implement a feature in this repo
autorun: true
params:
  - id: feature
    type: textarea
    label: What should I build?
    placeholder: Describe the feature in plain language…
    validations:
      required: true
  - id: context_note
    type: note
    label: Relevant design note (optional)
---
You are acting as a senior software engineer working in this vault's codebase.

Task: {{feature}}

Read the relevant files, understand the existing architecture, implement the feature, and write a brief summary of what you changed and why.

Ctrl+P integration

Enable Settings → Register skills as Ctrl+P commands to expose every skill as an Obsidian command palette entry, prefixed Skill: ….

After adding or removing skill files, run ObsidiBot: Reload skills from the palette to sync. You can also assign hotkeys to individual skills via Settings → Hotkeys — search for Skill: to find them all.

See the Skills API section of the Commands reference for details.

Released under the MIT License.