idea-vault

Save and organize links, notes, and timestamps into a searchable Idea Vault. Use when a user drops a YouTube/web link (or just notes), then says “/vault” or “vault” to save; also use for vault queries like “what did I save this week?”, channel/source filters, and keyword search in notes.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "idea-vault" with this command: npx skills add loughness/idea-vault

Idea Vault (Public)

A lightweight capture → organize → retrieve workflow.

Goal

Turn messy chat drops (links + rough notes + timestamps) into structured markdown entries and a searchable index.

One-time setup (required)

Run this once after cloning the skill so OpenClaw can execute it reliably:

cd ~/.openclaw/skills/idea-vault
python3 --version
python3 -m pip install -r requirements.txt

Environment setup (recommended):

cp .env.example .env
# then set IDEA_VAULT_TRANSCRIPTAPI_KEY and IDEA_VAULT_DIR in your shell/env manager

Notes:

  • Python 3 is required.
  • requests from requirements.txt is required.
  • IDEA_VAULT_TRANSCRIPTAPI_KEY is strongly recommended for reliable YouTube transcripts.
  • yt-dlp is optional fallback for some videos/environments.

Privacy and network behavior

This skill can make outbound network calls to:

  • youtube.com (video/transcript fallback paths)
  • transcriptapi.com (when IDEA_VAULT_TRANSCRIPTAPI_KEY is set)
  • source/asset URLs included in captured messages

Security notes:

  • The helper uses subprocess.run([...], shell=False) for yt-dlp (no shell string execution).
  • Do not use this skill with sensitive private chat content unless you are comfortable with these external calls.
  • Keep API keys in environment variables only; never commit secrets.

Inputs supported

  • YouTube links + notes + optional timestamps
  • Web links + notes
  • Note-only captures (no link)

Recommended path setup (portable)

Use an environment variable or local default path:

VAULT_DIR="${IDEA_VAULT_DIR:-$HOME/workspace/idea-vault}"
CACHE_DIR="$VAULT_DIR/_cache"

Core flow (triggered by /vault or vault)

  1. Read recent messages in the current chat.
  2. Extract the newest capture block.
  3. If source is YouTube, fetch transcript + optional clips around timestamps.
  4. Write summary/elaboration/tags/associations.
  5. Upsert into vault (append addendum on duplicate URL/video).

Commands

Extract capture

python3 ./scripts/idea_vault.py extract --user-id <author.id> --fallback-messages 30 < messages.json > capture.json

Fetch transcript (YouTube only)

Preferred source is TranscriptAPI via IDEA_VAULT_TRANSCRIPTAPI_KEY.

python3 ./scripts/idea_vault.py fetch --cache-dir "$CACHE_DIR" < capture.json > youtube.json

Save / upsert entry

python3 ./scripts/idea_vault.py upsert --vault-dir "$VAULT_DIR" < save_request.json > saved.json

Query vault

python3 ./scripts/idea_vault.py query --vault-dir "$VAULT_DIR" --limit 50
python3 ./scripts/idea_vault.py query --vault-dir "$VAULT_DIR" --since 2026-03-01
python3 ./scripts/idea_vault.py query --vault-dir "$VAULT_DIR" --channel "podcast" --text "pricing"

Annotate latest entry

python3 ./scripts/idea_vault.py annotate --vault-dir "$VAULT_DIR" --last --star true --priority high --add-tag actionable

save_request.json shape

{
  "capture": {"...": "from extract"},
  "source": {
    "kind": "youtube|web|note",
    "url": "https://... (optional)",
    "title": "string (optional)",
    "author": "string (optional)",
    "id": "string (optional)",
    "transcript_txt": "/path/to/transcript.txt (youtube only, optional)",
    "transcript_json": "/path/to/raw.json (youtube only, optional)",
    "clips": [{"center_sec": 123, "window_sec": 60, "text": "..."}]
  },
  "summary": "string",
  "elaboration": "string",
  "tags": ["tag"],
  "associations": [{"timestamp_sec": 1461, "note": "..."}]
}

Output layout

Under VAULT_DIR:

  • entries/YYYY/YYYY-MM-DD__<slug>__[<suffix>].md
  • transcripts/YYYY/<id>.transcript.txt (YouTube only)
  • assets/YYYY/MM/* (optional attachments)
  • index.json
  • _cache/

Agent response style after save

Reply with:

  • title + link
  • 3–6 concise bullets
  • relevant clips for flagged timestamps (if present)
  • saved file path

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Research

LLM Knowledge Bases

Inspired by a public workflow shared by Andrej Karpathy (@karpathy). From raw research to a living Markdown knowledge base that compounds with every question...

Registry SourceRecently Updated
2440Profile unavailable
Research

daily-decision-making

一个结构化的个人决策数据库系统,帮助用户系统性地处理生活与职业中的复杂抉择。 当用户面临以下情况时使用此技能: (1) 遇到"我该怎么办""帮我做个决定""我在 X 和 Y 之间纠结"等表述; (2) 涉及职业(跳槽/转行)、生活方式(搬家)、重大消费(买房/买车)或人际关系的决策; (3) 需要系统性地权衡利弊...

Registry SourceRecently Updated
2030Profile unavailable
Research

Obsidian Master Assistant

Obsidian 大师级配置助手 - 基于三大 YouTube 频道教程,提供完整的 Obsidian 配置、插件推荐、模板系统、AI 集成(Claude/OpenClaw/Gemini)和知识管理最佳实践。

Registry SourceRecently Updated
7970Profile unavailable
Coding

Sync Obsidian

Turn every Claude Code session into a beautiful Obsidian note — automatically. Generates dual output: structured Markdown reports + interactive Canvas visual...

Registry SourceRecently Updated
2350Profile unavailable