| name | AutoNotebooks |
| description | A semi-skill for parallelized NotebookLM notebook creation and artifact generation through AI-User interaction. |
⚠️ Critical Rule: No Code Modifications
The automation engine (nlm_runner.py and utils/) is a finalized, robust system that supports ALL NotebookLM features through its configuration schema.
As an AI agent, you MUST NOT modify any Python code in this directory.
Your sole responsibility is to:
- Gather requirements.
- Generate the correct JSON configuration.
- Execute the pipeline using the
--config flag.
Workflow: Back-and-Forth Planning
Phase 0: Ensure Requirements are Setup
You will need to ensure the user has two python libraries available: notebooklm-mcp and rich.
- If you are running in an environment where you can execute commands, run:
uv sync
Before generating any files or running the automation, you must gather all necessary details from the user.
Phase 1: Requirement Gathering
Ask for the following details (grouping is allowed for efficiency):
- Topics: Names and research queries. NEW: You can now also provide an existing
notebook_id to skip creation, specific sources (URLs, local files, Drive IDs, or YouTube links), and per-topic artifacts to generate different artifacts for different notebooks.
- Research: Mode (
fast/deep), Source (web/drive), and if it should be force started.
- Chat Settings: Optional
goal (learning_guide, custom) and response_length.
- Artifacts: Which ones? (audio, video, slides, report, quiz, flashcards, mindmap, infographic, data-table).
- Artifact Specs:
- Flags: (e.g., audio format, quiz difficulty).
- Focus: Specific focus prompt for this artifact.
- Sources: Filter which source IDs to use for this artifact.
- Revision: (For slides) specific slide-by-slide revision instructions.
- Rename: Custom title for the generated artifact.
- Downloads: Whether to download locally (Default: yes).
Phase 2: Confirmation
Consolidate the plan and ask for user confirmation.
Phase 3: Execution
- Create Config Directory:
NotebookAutomation/config/.
- Write Config:
config_<timestamp>.json following the PipelineConfig schema in utils/config.py.
- Run Pipeline: Locate
nlm_runner.py (check root or .agent/rules/) and execute strictly using the --config flag:
uv run python [path/to/]nlm_runner.py --config config/config_<timestamp>.json
Advanced Config Schema Reference
{
"topics": [
{
"key": "unique_id",
"title": "Notebook Title",
"query": "Research Query",
"sources": [{ "type": "url", "value": "https://..." }],
"chat": { "goal": "learning_guide", "response_length": "longer" },
"artifacts": [
{
"type": "audio",
"flags": { "format": "debate" },
"rename": "Deep Dive"
},
{ "type": "infographic" }
]
},
{
"key": "another_topic",
"title": "Another Notebook",
"query": "Another query",
"artifacts": [{ "type": "audio" }]
}
],
"research_mode": "fast",
"artifacts": [],
"download": true
}
Artifact Resolution: If a topic defines its own artifacts list, it overrides the global artifacts for that topic. If a topic omits artifacts (or sets it to null), the global artifacts list is used. The terminal dashboard will show a neutral ─ for any artifact column that does not apply to a given topic.