Agent skill

notebooklm

Import NotebookLM notebooks into your Obsidian vault as linked knowledge graphs. Sources become wikilink-able files, Q&A answers get citations resolved to [[wikilinks]] with passage-level deep links. Use when user says "notebooklm import", "import notebook", "notebooklm ask", "notebooklm sources", or wants to turn NotebookLM research into vault knowledge.

Stars 352
Forks 60

Install this agent skill to your Project

npx add-skill https://github.com/ArtemXTech/personal-os-skills/tree/main/skills/notebooklm

SKILL.md

NotebookLM - Vault Knowledge Graph

Turn NotebookLM notebooks into persistent, linked vault knowledge. Sources become files you can [[wikilink]], Q&A answers get [N] citations resolved to those wikilinks, dashboards tie it all together.

Prerequisites

1. Install notebooklm-py

bash
pip install "notebooklm-py[browser]"
playwright install chromium

2. Authenticate

bash
notebooklm login

Opens a browser window - log in with your Google account. Cookies are saved to ~/.notebooklm/storage_state.json.

Re-run notebooklm login when cookies expire (you'll see auth errors).

3. Obsidian Plugins

  • Dataview (required) - citation tables and dashboard queries use Dataview/DataviewJS

4. Vault Setup

Copy the templates from templates/ into your vault:

  • templates/notebook-source.md -> Templates/Types/notebook-source.md
  • templates/dashboard.md -> use as reference when creating dashboards

Quick Start

bash
# Check current notebook
notebooklm status

# Switch notebook
notebooklm use <notebook-id>

# List notebooks
notebooklm list

Workflow Routing

User says Workflow
"import notebook", "notebooklm import", "import sources" workflows/import.md
"notebooklm ask", "ask notebook", "Q&A" workflows/ask.md

Architecture

Your Vault
├── Notes/NotebookLM/{notebook-slug}/
│   ├── Sources/          # One .md per source (YouTube, PDF, web, etc.)
│   │   ├── Video Title.md
│   │   └── Article Title.md
│   └── QA/               # Q&A notes with resolved citations
│       └── 2026-02-23 Emerging Themes.md
└── Notes/Dashboards/
    └── My Research.md     # Dashboard with Dataview queries
  • Source files have type notebook-source with frontmatter: source_id, notebook_id, url, source_type, topics as [[wikilinks]]
  • Q&A notes have type reference with [N] citations resolved to [[Source Title#Passage N]] wikilinks
  • Dashboards use Dataview queries to list sources and Q&A notes

Data Model

notebook-source frontmatter:

yaml
type: notebook-source
source_id: "uuid"        # NotebookLM source ID
notebook_id: "uuid"      # NotebookLM notebook ID
url: ""                  # Original URL
source_type: youtube     # youtube, pdf, web, text, gdocs, gslides
status: active
date: YYYY-MM-DD
topics:
  - "[[Topic Name]]"     # AI-extracted topics as wikilinks
related:
  - "[[Notes/Dashboards/Dashboard Name]]"

Q&A reference frontmatter:

yaml
type: reference
status: current
date: YYYY-MM-DD
source: "notebooklm:{notebook-slug}"
related:
  - "[[Notes/Dashboards/Dashboard Name]]"

Scripts

Script Purpose
scripts/import_sources.py Import sources as vault files with AI-generated guides and topics
scripts/extract_passages.py Extract cited passages from Q&A into source files
scripts/resolve_citations.py Replace [N] markers with [[wikilinks]] in Q&A answers

All scripts use Path.cwd() as vault root - run them from your vault directory.

Expand your agent's capabilities with these related and highly-rated skills.

ArtemXTech/personal-os-skills

recall

Load context from vault memory. Temporal queries (yesterday, last week, session history) use native JSONL timeline. Topic queries use QMD BM25 search. "recall graph" generates interactive temporal graph of sessions and files. Every recall ends with "One Thing" - the single highest-leverage next action synthesized from results. Use when user says "recall", "what did we work on", "load context about", "remember when we", "prime context", "yesterday", "what was I doing", "last week", "session history", "recall graph", "session graph".

352 60
Explore
ArtemXTech/personal-os-skills

sync-claude-sessions

Sync Claude Code sessions to Obsidian markdown. Export, resume, add notes, close sessions. USE WHEN user says "sync sessions", "export sessions", "resume session", "add session note", "close session", "log session".

352 60
Explore
ArtemXTech/personal-os-skills

granola

Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.

352 60
Explore
ArtemXTech/personal-os-skills

tasknotes

Manage tasks in Obsidian via TaskNotes plugin API. Use when user wants to create tasks, list tasks, query by status or project, update task status, delete tasks, or check what they need to do.

352 60
Explore
ArtemXTech/personal-os-skills

wispr-flow

Analyze Wispr Flow voice dictation data. Stats, search, export, visualizations. Use when user says "dictation history", "word counts", "voice analytics", "how much did I dictate", "search my dictation".

352 60
Explore
ArtemXTech/claude-code-obsidian-starter

granola

Query and sync Granola meetings to Obsidian vault. Use when user mentions Granola, meeting transcripts, or wants to sync meeting notes. Reads from local cache - no API needed.

174 37
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results