vault
Vault
Save conversation context to an Obsidian vault. The model infers what to save, how to categorize it, and where it goes. The user never needs to remember commands.
How It Works
- User signals intent to save (or agent suggests it after a good session)
- Agent extracts the relevant content from conversation
- Agent categorizes it and picks the right folder
- Agent composes markdown with frontmatter
vault.shwrites the file and auto git-commits
Categories
Infer the category from context. When ambiguous, ask.
| Category | Folder | When to use |
|---|---|---|
| Session dump | daily/ |
End of a work session — capture decisions, takeaways, open threads |
| Decision | decisions/ |
A choice was made with reasoning — "we're going with X because Y" |
| Lesson | learning/ |
An insight, pattern, or thing learned — "TIL," "turns out," aha moments |
| Idea | ideas/ |
Something to explore later — side projects, features, experiments |
| Reference | learning/ |
A link, article, tweet, or tool worth retrieving later |
Using vault.sh
The script handles file creation, frontmatter, and git-commit. Pipe markdown content to it:
echo '<markdown content>' | bash scripts/vault.sh <command> "title"
Commands: done, decide, learn, idea, ref, search, sync
done [topic]— Appends to today'sdaily/YYYY-MM-DD.mddecide "title"— Createsdecisions/<slug>.mdlearn "title"— Createslearning/<slug>.mdidea "title"— Createsideas/<slug>.mdref "title"— Createslearning/<slug>.md(taggedreference)search "query"— Grep vault contentsync— Commit + push to remote
Content Structure
Adapt the structure to the category:
Session dump:
## Topic Name
### Decisions
- What was decided and why
### Key Context
- Important things discussed
### Open Threads
- [ ] What's unfinished
### References
- Links, tickets, people involved
Decision:
**Decision:** What was decided
**Context:** Why this came up
**Reasoning:** Why this over alternatives
**Related:** Tickets, links, people
Lesson:
**Insight:** The core takeaway
**Context:** How we learned this
**Source:** Where it came from
Idea: Keep lightweight — one-liner + why it's interesting + next step.
Reference: URL + summary + key takeaways.
Frontmatter
Every entry gets:
---
title: "Title"
created: YYYY-MM-DD
tags: [type, topic1, topic2]
related: [DES-123, link, etc] # when applicable
---
Use consistent tags:
- Type:
daily,decision,learning,idea,reference - Source:
telegram,claude-code,call,article - Topic: whatever fits —
project-x,infra,design, etc.
Telegram Behavior
Telegram is one long conversation. When inferring what to save:
- If the user says "save this" about a specific thing — capture that thing
- If the user says "done" or "wrap up" — capture the full session since the last natural break
- If multiple topics were discussed and it's ambiguous — ask: "Which part? The X discussion, the Y brainstorm, or everything?"
- Skip heartbeat messages — they're noise
Retrieval
When the user asks "what did we decide about X" or "find that thing about Y":
bash scripts/vault.sh search "query"
Then read the matching files and summarize.
Proactive Suggestions
After a meaningful session, suggest saving. Keep it casual:
- "Want me to save this session to the vault?"
- "Good stuff — should I vault this?"
Don't suggest after casual chat, quick questions, or quiet periods.
More from mikeygonz/skills
read-x
Read X/Twitter posts and articles — no API key, no auth, no browser needed. Uses FxTwitter API to fetch full tweet content, media, engagement stats, and long-form articles.
56watch-youtube
Watch and analyze YouTube videos using Gemini's video understanding API. Pass any YouTube URL to get summaries, timestamps, Q&A, or detailed analysis of video content — audio and visual.
48linear
|
7deploy-preview
|
7transcribe-youtube-videos
Fetch transcripts from YouTube videos. Use when the user shares a YouTube URL, references a video, wants to know what someone said in a video, or needs video content as text.
2