I've been using Obsidian with the PARA method for a while now. It's great for organizing notes, but I always felt like I was only scratching the surface of what a personal knowledge management system could do. The notes were there, but finding connections, processing my inbox, and actually using my accumulated knowledge required more manual effort than I wanted.
Then I discovered that Claude Code β Anthropic's CLI tool β could be pointed at any directory, not just code repositories. That's when things got interesting. π οΈ
Over the past few weeks, I've built a set of custom slash commands that turn Claude into an intelligent assistant for my Obsidian vault. It can now process my inbox using PARA principles, trace how ideas have evolved over time, find unexpected connections between topics, and even answer questions the way I would based on my own writing. This article walks through exactly how I set it up and the commands I created.
The Foundation: CLAUDE.md
Before creating custom commands, you need to give Claude context about your vault. Claude Code looks for a CLAUDE.md file in the root of whatever directory it's working in. This file teaches Claude how your system works.
Here's the structure I use:
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Overview
This is an Obsidian vault organized using the PARA method (Projects, Areas, Resources, Archive). All notes are in Markdown format with Obsidian-specific syntax.
## Folder Structure
- `0. Inbox/` - Unsorted notes and incoming content
- `0.1 Tasks_List/` - Master task aggregation using Obsidian Tasks plugin
- `1. Projects/` - Active projects with deadlines
- `2. Areas/` - Ongoing responsibilities, no end date
- `3. Resources/` - Reference materials, topics of interest
- `4. Archive/` - Completed/inactive items
- `_templates/` - Obsidian templates for new notes
- `_Weekly/` - Weekly notes organized by year (YYYY-WXX format)
## Obsidian-Specific Syntax
### Task Queries
The vault uses the Obsidian Tasks plugin. Task queries look like:
`tasks
not done
path includes 1. Projects/ProjectName
`
### Internal Links
Standard Obsidian `[[wikilinks]]` are used for note linking.
The key is to explain your organizational system, any plugins you use, and the syntax patterns Claude should expect. This context makes every subsequent interaction more useful.
Creating Custom Slash Commands
Claude Code supports custom slash commands through markdown files in .claude/commands/. The filename becomes the command nameβso trace.md becomes /trace. Each file contains instructions that Claude follows when you invoke the command.
Here's the directory structure:
.claude/
βββ commands/
βββ trace.md
βββ sync.md
βββ connect.md
βββ inbox.md
βββ graduate.md
βββ ghost.md
βββ challenge.md
Here's each command I created and why I built it.
Command 1: /sync β Load Your Full Context
The Problem: Every time I started a new Claude Code session, I had to re-explain what I was working on, what my priorities were, and what projects were active.
The Solution: The /sync command loads my entire current context in one shot.
Usage:
/sync
What it does:
- Reads recent weekly notes (last 7 days)
- Scans all active project folders
- Loads the Master Task List
- Checks recent inbox items
- Finds all notes modified in the last 7 days
- Searches for priority indicators (focus, urgent, important)
- Outputs a structured summary
The output looks like:
# Current Context Sync
## Active Projects
- Repog - Working on bug fixes
- BillScribe - MVP feature complete, testing phase
## Current Focus
Semantic search
## Open Tasks
### High Priority
- Complete API documentation
- Review PR for auth flow
## Recent Activity (Last 7 Days)
[Summary of what's been worked on]
I run this at the start of every session. It's like giving Claude a brain dump of my current state so we can pick up right where I left off.
Command 2: /trace β Track How Ideas Evolve
The Problem: I'd have a vague sense that I'd written about something before, but couldn't remember where or how my thinking had changed over time.
The Solution: The /trace command builds a timeline of any topic across my vault.
Usage:
/trace recursion
/trace "knowledge graphs"
/trace AI agents
What it does:
- Searches the vault for all mentions of the topic
- Gathers file creation and modification dates
- Extracts
[[wikilinks]]to find connections - Outputs a timeline showing first appearance, evolution, and current connections
The output looks like:
# Idea Timeline: [Topic]
### First Appearance
- **Date**: 2025-08-15
- **File**: 2. Areas/Software_Engineering/Recursion.md
- **Context**: Initial notes from algorithm course
### Evolution
- **2025-09-22** - Applied in OMS_Agents project
- **2025-11-03** - Connected to knowledge graph traversal
### Current State
- Total mentions: 12
- Most connected notes: [[Graph Traversal]], [[Algorithm Patterns]]
This has been invaluable for writing and for understanding how my thinking develops over time.
Command 3: /connect β Find Unexpected Relationships
The Problem: I suspected two ideas were related but couldn't see the connection. Or I wanted to discover relationships I hadn't noticed.
The Solution: The /connect command traces paths through my wikilink graph.
Usage:
/connect recursion and machine learning
/connect AI agents, knowledge graphs
/connect
What it does (with topics):
- Builds a link graph from all
[[wikilinks]] - Finds notes mentioning each topic
- Traces connection paths (direct, one-hop, two-hop)
- Identifies bridge notes connecting both domains
What it does (without topics):
- Maps the entire vault's link structure
- Identifies isolated clusters of notes
- Finds semantically similar but unlinked notes
- Suggests bridge opportunities
Running /connect with no arguments is like getting a health check on your knowledge graph. It shows you orphan notes, isolated clusters, and connections you might want to make.
Command 4: /inbox β PARA-Aware Inbox Processing
The Problem: My inbox would accumulate notes faster than I could process them. Deciding where each note should go required mentally loading my entire folder structure.
The Solution: The /inbox command processes each note using PARA principles and asks for confirmation before moving anything.
Usage:
/inbox
What it does:
- Inventories all notes in
0. Inbox/ - Maps existing structure in Projects, Areas, Resources, Archive
- For each note, presents a recommendation:
## Building_A2A_Compatible_Agents.md
**Content Summary:** Article highlights about A2A agent protocols
**Recommended Destination:** 3. Resources/Software_Engineering/AI_ML_&_Agents/
**Reason:** Reference material about AI development patterns
**Alternative Locations:**
- 1. Projects/OMS_Agents/ - relates to active project
- 2. Areas/Lorien_AI/ - relates to ongoing AI work
**Action?**
1. Move to recommended location
2. Move to alternative 1
3. Move to alternative 2
4. Skip (leave in inbox)
- Waits for confirmation before moving each file
- For multi-relevance notes, moves to Resources and creates links in other locations
The per-file confirmation is crucial. I don't want an AI bulk-moving my notes to the wrong places. This way I stay in control while Claude does the heavy lifting of analyzing content and suggesting destinations.
Command 5: /graduate β Extract Ideas from Weekly Notes
The Problem: My weekly notes were full of half-formed thoughts that deserved their own space, but I never went back to develop them.
The Solution: The /graduate command scans weekly notes for undeveloped ideas and promotes them to standalone files.
Usage:
/graduate # Last 4 weeks
/graduate 2 # Last 2 weeks
/graduate all # All weekly notes
What it looks for:
- Standalone observations not tied to tasks
- Unanswered questions
- "I think...", "Maybe...", "What if..." statements
- Parenthetical asides with novel thoughts
- Reflections and realizations
- Half-finished thoughts
What it creates:
# [Core Claim as Title]
**Graduated from**: [[2026-W11]]
**Date**: 2026-03-19
**Status**: Seedling
## Core Claim
[One clear sentence stating the idea]
## Context
[What prompted this thought]
## Original Excerpt
> [Quote from the weekly note]
## Connections
- [[Related Note]] - [how it connects]
## Questions to Explore
- [Questions this raises]
Graduated notes go to 0. Inbox/Graduates/ so they can be processed by /inbox later. This creates a nice pipeline: ideas surface in weekly notes, get graduated to their own files, then get filed into the appropriate PARA location.
Command 6: /ghost β Answer Questions in Your Voice
The Problem: Sometimes I need to draft a response or think through a question, but I want it to sound like me and reflect my actual beliefs.
The Solution: The /ghost command answers questions based on my writing style and stated beliefs.
Usage:
/ghost What's the best way to learn a new programming language?
/ghost Should startups use microservices?
/ghost How do I balance work and side projects?
What it does:
- Searches for relevant notes on the topic
- Analyzes my writing style (tone, argument patterns, vocabulary)
- Extracts my stated beliefs with source citations
- Synthesizes an answer in my voice
- References specific notes naturally
The output:
# How I Would Answer: "Should startups use microservices?"
[Answer written in my voice, referencing my actual opinions]
## Sources Used
- [[Microservices_Out_Monoliths_Back_In]] - skepticism about microservices for small teams
- [[Infrastructure_Design_Decisions]] - preference for simplicity
## Voice Notes
- **Tone**: Direct, practical, slightly contrarian
- **Key principles applied**: Simplicity over scalability premature optimization
- **Confidence level**: High (multiple notes on this topic)
This is great for drafting emails, preparing for discussions, or just externalizing my thinking on a topic.
Command 7: /challenge β Stress-Test Your Beliefs
The Problem: Before making big decisions, I wanted to pressure-test my thinking. Where are my blind spots? What assumptions am I making?
The Solution: The /challenge command finds contradictions and weak points in my beliefs on any topic.
Usage:
/challenge microservices architecture
/challenge my approach to time management
/challenge the decision to change jobs
What it finds:
- Direct contradictions: Note A says X, Note B says not-X
- Hidden assumptions: Unstated premises my beliefs depend on
- Reasoning weaknesses: Logical gaps, unsupported leaps
- Missing perspectives: Viewpoints I haven't considered
The output:
# Belief Stress Test: [Topic]
## Your Current Position
[Summary of stated beliefs]
## Contradictions Found
### Contradiction 1: Simplicity vs. Scalability
**Position A:** "Always start with a monolith"
**Position B:** "Design for scale from day one"
**The tension:** These can conflict when...
## Hidden Assumptions
### Assumption 1: Team size stays small
**You're assuming:** Your team won't grow significantly
**But what if:** You need to onboard 10 engineers next quarter?
## Questions Worth Sitting With
1. What would change your mind about this?
2. Who disagrees with you that you respect?
## Overall Assessment
- **Belief coherence:** Medium
- **Assumption risk:** High on team size assumption
- **Recommended action:** Clarify conditions under which each approach applies
Running /challenge before a big decision has already saved me from a few mistakes. It's like having a thoughtful devil's advocate on demand.
Command 8: /ideas β Generate Fresh Ideas from Your Patterns
The Problem: When I wanted inspiration for what to build, write, or explore next, I'd either stare at a blank page or browse the internet for ideas that had nothing to do with my actual interests.
The Solution: The /ideas command mines my vault for patterns and generates ideas grounded in what I'm already curious about.
Usage:
/ideas
What it does:
- Scans recent activity (last 30 days)
- Analyzes weekly notes, projects, areas, and resources
- Identifies recurring themes, frustrations, and unanswered questions
- Finds people mentioned but not contacted
- Spots tool opportunities from manual processes
- Surfaces writing topics based on opinions and experiences
The output:
# Ideas Report
## Tools to Build
### High Potential
#### 1. Vault Link Validator
**The Problem:** Broken wikilinks accumulate over time
**Evidence:** Found complaints in [[2026-W10]], [[2026-W08]]
**Your Advantage:** Already familiar with Obsidian plugin API
**First Step:** Audit current broken links
## People to Reach Out To
### High Priority
#### 1. [Expert in Knowledge Graphs]
**Why:** Directly relevant to OMS work
**Context:** Mentioned in [[AI_Agents_Landscape]]
**Angle:** Ask about graph traversal patterns
## Topics to Investigate
### Deep Dives Needed
#### 1. Vector Embeddings for Note Retrieval
**Current Understanding:** Basic concept only
**Gap:** Implementation details for local-first apps
**Why It Matters:** Could improve /connect command
## Things to Write
### Ready to Write
#### 1. "Why Weekly Notes Beat Daily Notes"
**Core Argument:** Less pressure, better reflection
**Supporting Notes:** [[How_I_Never_Forget_Anything]], weekly templates
**Unique Angle:** PARA integration perspective
The best part is that every idea comes with evidence from my own notes. It's not generic brainstormingβit's pattern recognition on my actual interests.
The Weekly Review Workflow
These commands work together in my weekly review:
- Start with /sync to load current context
- Run /graduate to extract ideas from weekly notes
- Run /inbox to process any accumulated notes
- Use /connect (no args) to check for orphan notes and missed connections
- Run /challenge on any decisions I'm considering
- Run /ideas monthly to generate fresh directions based on patterns
This workflow keeps my vault healthy while surfacing ideas that might otherwise get lost.
Getting Started π‘
If you want to set this up for your own vault:
- Install Claude Code - Follow the instructions at claude.ai/code
- Create CLAUDE.md in your vault root with your folder structure and syntax patterns
- Create .claude/commands/ directory
-
Add command files - Each
.mdfile becomes a slash command -
Run Claude Code from your vault directory:
claude
The commands I've shared are tuned for my PARA setup, but the patterns transfer to any organizational system. The key insight is that Claude Code isn't just for codeβit's for any directory of text files. And Obsidian vaults are exactly that.
Creating Your Own Commands
The best part about this setup is that you don't need to write the command files yourself. Just describe what you want to Claude Code, and it will create the command for you.
Here's an example prompt:
"Please create a slash command called /review that scans my weekly notes from the past month and generates a summary of what I accomplished, what's still in progress, and what I learned. It should organize findings by project and highlight any recurring themes or blockers."
Or something simpler:
"Create a command called /random that picks a random note from my vault that I haven't opened in over 30 days and suggests why I might want to revisit it."
The key elements of a good command prompt:
-
Name the command - What you'll type to invoke it (
/review,/random) - Describe the input - What it should scan or take as arguments
- Specify the output - What format you want the results in
- Add constraints - Any rules or exceptions to follow
Claude will create the .md file in .claude/commands/ with detailed instructions. You can then refine it by asking for changes or editing the file directly.
What's Next
I'm still experimenting with new commands. Some ideas I'm exploring:
- /weekly - Generate the weekly note template with pre-filled context
- /research - Deep dive into a topic using both vault content and web search
- /publish - Prepare a note for publishing by checking links and formatting
The meta-insight here is that your knowledge management system can be programmable. Instead of just storing and linking notes, you can build workflows that actively work with your knowledge. Claude Code makes this accessible without needing to write actual code β you just write instructions in plain English.
In 2026, there's no reason your notes should just sit there. Put them to work.
If you're using Obsidian and want to try this setup, start with just /sync and /inbox. Those two commands alone will change how you interact with your vault.
Which command would be most useful for your workflow? Drop it in the comments β I'm curious what problems you'd solve first. β¨

Top comments (0)