Skip to main content

Turn long PDFs into chunked NotebookLM workflows with Studio outputs

Project description

notebooklm-chunker

CI Desktop Release PyPI version License: MIT

Turn long documents into smaller, heading-aware NotebookLM sources so reports, slide decks, quizzes, flashcards, and audio outputs stay more focused and useful.

Two interfaces, one core. The Desktop app provides a visual workflow. The CLI provides scriptable automation. Both use the same nblm engine underneath.

  • This page covers the Desktop app
  • CLI.md covers the Python CLI

Desktop App

An Electron desktop client that wraps the nblm CLI into a full visual workflow — from PDF upload to NotebookLM Studio generation.

Features NotebookLM Doesn't Have

Feature Description
Heading-aware chunking Splits documents at heading boundaries (H1, H2, etc.) instead of arbitrary page breaks, keeping each source semantically coherent
Bulk source upload Upload dozens or hundreds of chunks to a single notebook in one operation with parallel processing
Bulk source delete Select and delete multiple chunks at once from the catalog
Resume interrupted uploads Sync tracks per-chunk status — come back tomorrow and only the remaining chunks get uploaded
Studio queue with retry Queue reports, slides, quizzes, flashcards, or audio jobs across multiple sources. Failed jobs (including quota exhaustion) are detected and can be retried individually or in bulk
Studio filtering by type Tab bar filters queue and generated outputs by studio type (report, slide deck, quiz, flashcards, audio) with search
Prompt library Save reusable prompts per studio type and apply them from the queue builder
Per-source settings Configure language (80+ languages), format, length, and parallel request limits per studio type
Skip pages Exclude preface, table of contents, index, or bibliography pages before chunking
Versioned lineages Multiple chunk versions of the same PDF, each with independent sync and studio state
Offline-first Chunk and edit locally without a network connection — sync when ready

Installation

Prerequisites

  1. Install the Python CLI (needed by the desktop app):
pip install notebooklm-chunker
python -m playwright install chromium
  1. Login to NotebookLM:
nblm login

Option A: Download Release Binary

Download the latest release for your platform from GitHub Releases:

  • macOS: .dmg or .zip
  • Windows: .exe (installer) or portable
  • Linux: .AppImage or .deb

The desktop app expects nblm to be available on your system PATH.

Option B: Run From Source

cd desktop
npm install
npm run dev

Setup Check

On first launch, the app verifies:

  • nblm is available on PATH
  • Playwright Chromium is installed
  • NotebookLM auth state is ready

You can continue into the app for local-only work even if auth is not ready yet.

Workflow

  1. Document — Upload a PDF to start a new chunk set
  2. Structure — Set min/max pages per chunk, skip pages from beginning or end, see estimated chunk count
  3. Sources — Review, search, edit, and bulk-manage the generated chunks
  4. Sync — Upload changed chunks to a new or existing NotebookLM notebook
  5. NotebookLM Dashboard — Browse notebooks, inspect synced sources, queue studio jobs, track outputs

NotebookLM Settings

Accessible from Settings in the sidebar:

  • Sources tab — Per studio type: language (80+ languages), format, download format, max parallel requests
  • Sync tab — Max parallel chunk uploads

Settings persist across sessions and are applied to all future queue items.

Studio Queue

The queue panel mirrors the Studios panel:

  • Filter by studio type via tab bar (All, Report, Slide Deck, Quiz, Flashcards, Audio)
  • Search jobs by name, source, status, or message
  • Retry failed jobs individually or bulk retry all
  • Clear submitted jobs when done
  • Remove individual jobs from the queue

Quota exhaustion and zero-output runs are automatically detected as failures, enabling retry after the cooldown period.

Build

Platform-specific builds:

cd desktop
npm run build:mac    # macOS (.dmg, .zip)
npm run build:win    # Windows (.exe, portable)
npm run build:linux  # Linux (.AppImage, .deb)

Project Layout

desktop/
├── renderer/
│   ├── app.js           # Main UI logic
│   ├── index.html       # UI structure
│   ├── styles.css        # Styles
│   └── project-utils.js  # Helper utilities
├── src/
│   ├── main.js           # Electron main process
│   └── preload.js        # IPC bridge
└── tests/
    └── project-utils.test.js

CLI

The Python CLI is the automation engine. It handles document parsing, heading-aware chunking, NotebookLM uploads, and Studio generation.

For full CLI documentation, installation, config examples, and usage:

CLI.md

Quick start:

pip install notebooklm-chunker
python -m playwright install chromium
nblm login
nblm run --config ./nblm.toml

Development

For setup, testing, packaging, and GitHub release flow, see DEVELOPMENT.md.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notebooklm_chunker-0.4.1.tar.gz (64.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notebooklm_chunker-0.4.1-py3-none-any.whl (49.7 kB view details)

Uploaded Python 3

File details

Details for the file notebooklm_chunker-0.4.1.tar.gz.

File metadata

  • Download URL: notebooklm_chunker-0.4.1.tar.gz
  • Upload date:
  • Size: 64.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for notebooklm_chunker-0.4.1.tar.gz
Algorithm Hash digest
SHA256 493ead62150b87318eb69179a9d7d65e0207da9479d84d5117c40252cc6e7c71
MD5 a75d7c8bcbafb13ef4aba221ed108132
BLAKE2b-256 b0eaee1f29f2756c7f916da67741e5c8c2eeaf5d16d9e9b32906b50db36ee5aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for notebooklm_chunker-0.4.1.tar.gz:

Publisher: publish.yml on cmlonder/notebooklm-chunker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file notebooklm_chunker-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for notebooklm_chunker-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 84c53dcad03f58114957f69c29152159f095d49541440d016eea65455e215e0d
MD5 853a59c2af5ddb63f2c3cd63291638a0
BLAKE2b-256 2b0b471b35449d8ea1fdbdc78b7872e46d0b1ea761b70ef698135957c82eeeda

See more details on using hashes here.

Provenance

The following attestation bundles were made for notebooklm_chunker-0.4.1-py3-none-any.whl:

Publisher: publish.yml on cmlonder/notebooklm-chunker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page