Skip to content
Back to skills

Search

ASecurity

Search vault content by keyword using Grep. Zero dependencies — works in any vault without indexes or plugins. Groups results by directory for easy scanning.

  • 1,855 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 26, 2026
toolsgo

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add ballred/obsidian-claude-pkm --skill search --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Search?

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

Security grade badge for Search
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ballred-search/badge)](https://www.skillsdirectory.com/skills/ballred-search)

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: search
description: Search vault content by keyword using Grep. Zero dependencies — works in any vault without indexes or plugins. Groups results by directory for easy scanning.
allowed-tools: Grep, Glob, Read
user-invocable: true
---

# Search Skill

Fast keyword search across all vault markdown files using the Grep tool. No indexes, no plugins, no setup — just structured search with directory grouping.

## Usage

```
/search <term>
```

Examples:
- `/search project planning`
- `/search weekly review`
- `/search TODO`

## How to Execute

When the user invokes `/search <term>`:

### Step 1: Search for the term

Use the **Grep** tool to search all `.md` files for the term:

```
Grep:
  pattern: <search term>
  glob: "*.md"
  output_mode: content
  -n: true
  -C: 1
```

Exclude hidden directories (`.claude/`, `.obsidian/`) and templates:

```
Grep:
  pattern: <search term>
  glob: "*.md"
  path: .
  output_mode: content
  -n: true
  -C: 1
```

Filter out results from `.claude/`, `.obsidian/`, and `Templates/` directories.

### Step 2: Group results by directory

Organise matches into sections by their parent directory:

- **Daily Notes/** — journal entries
- **Goals/** — goal and vision documents
- **Projects/** — project notes
- **Archives/** — archived content
- **Inbox/** — unprocessed items
- **(root)** — top-level notes

### Step 3: Present results

Format output as:

```markdown
## Search: "<term>"

### Daily Notes/
- **2024-01-15.md** (line 23): ...matching context...
- **2024-01-14.md** (line 8): ...matching context...

### Projects/
- **Project Alpha.md** (line 45): ...matching context...

### Goals/
- **2024 Goals.md** (line 12): ...matching context...

**Found X matches across Y files**
```

### Step 4: Suggest related content

After showing results, check if any matched files contain `[[wiki-links]]` to other notes. If so, briefly mention:

```
💡 Related notes mentioned in results: [[Note A]], [[Note B]]
```

## No Results

If no matches are found:
1. Suggest alternative search terms (synonyms, related words)
2. Offer to search with case-insensitive matching if the original search was case-sensitive
3. Suggest checking `Archives/` if not already included

## Tips

- Search is case-sensitive by default. Add `-i: true` to the Grep call for case-insensitive search
- Use regex patterns for advanced searches: `task.*complete`, `#tag-name`
- Combine with `/daily` to quickly find when something was mentioned

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.