Process inbox items into notes with automatic linking
Transforms inbox items into linked notes with automatic concept matching. Use it to process scattered thoughts, URLs, and daily logs into your knowledge base with bidirectional linking.
/plugin marketplace add markphelps/claude-plugins/plugin install vault@markphelps-marketplaceProcess items from an inbox folder into notes, with automatic concept matching and bidirectional linking.
$ARGUMENTS - Path and optional flags.
Path: Can be relative or absolute. Resolves from current working directory.
/vault:process inbox - Process ./inbox/ relative to cwd/vault:process ./notes/inbox - Relative path/vault:process /Users/me/vault/inbox - Absolute path/vault:process - Defaults to ./inbox/Flags:
--dry-run - Show what would be created/updated without doing it--yes - Execute without confirmationExamples:
/vault:process # Process ./inbox/, ask to confirm
/vault:process inbox --dry-run # Preview changes only
/vault:process inbox --yes # Process without confirmation
Scan the inbox folder and detect what's there:
.md files → Each file is one item2025-01-04.md) → Split by ## headings or ---
separatorsinbox.md → Split by ## headings or --- separatorsSkip hidden files and folders (.DS_Store, etc.).
For each item extracted, classify it:
URL item - Line is primarily a URL:
https://example.com/article[Title](https://example.com/article)https://... - interesting approachText item - Paragraphs of thought/content without a primary URL.
Mixed item - Substantial text with embedded URLs (treat as text, preserve URLs).
For URL items - Create lightweight reference note:
---
updated: YYYY-MM-DD
tags: [extracted, from, content]
source: url
---
# Page Title
Brief description from meta tags.
[Original](https://example.com/article)
## Related
Filename: kebab-case from title (e.g., how-to-build-voice-apps.md)
For substantial text items (>280 characters) - Create new atomic note:
---
updated: YYYY-MM-DD
tags: [inferred, topics]
source: inbox
---
# Generated Title
The captured thought/content.
## Related
Filename: kebab-case from generated title.
For short text items (≤280 characters):
## Added YYYY-MM-DD
The short thought that was captured.
And update the note's updated field.
For each note that was created or updated:
voice-notes-app.md)Inline links: Where a concept is mentioned naturally in text, add
[[note-name]].
Related section: Add discovered connections to ## Related footer:
## Related
- [[discovered-connection-1]]
- [[discovered-connection-2]]
For each link added (A → B), also add the reverse (B → A):
## Related section- [[A]] if not already presentupdated fieldMove processed inbox items to _processed/ with date folder:
inbox/
├── _processed/
│ └── 2025-01-04/
│ ├── random-thought.md
│ └── daily-log.md
└── (now empty)
Processed 5 items from inbox:
Created:
- how-to-build-voice-apps.md (from URL)
- notification-fatigue.md (new thought)
Appended:
- voice-notes-app.md (+1 thought)
Links added:
- 12 new connections across 4 notes
- 8 backlinks updated
Archived to: inbox/_processed/2025-01-04/
For large inboxes (10+ items), parallelize with subagents:
| Task | Model | Why |
|---|---|---|
| URL metadata extraction | haiku | Simple web fetches |
| Content classification | haiku | Straightforward detection |
| Tag inference | haiku | Basic NLP |
| Concept extraction | haiku | Keyword extraction |
| Link discovery/matching | sonnet | Needs nuanced understanding |
Launch batch processing as background tasks, then synthesize results.
--yes)