Concept

Intended Audience

CLI tool authors and terminal application developers


Overview

This page describes who ebcprep is built for and what background you need to use it effectively. Understanding the intended audience helps you set the right expectations — both for the complexity of the tool itself and for the external systems it integrates with.


Content

Who ebcprep is for

ebcprep is designed for platform engineers and SREs who are comfortable in a terminal and familiar with managing service credentials, environment variables, and configuration files. You do not need to be a Python developer or understand ebcprep's internals to operate it — the CLI surface is intentionally small and the configuration is declarative.

You will, however, need to be comfortable with the following:

  • Running commands in a shell and reading their output
  • Creating and managing a GCP service account JSON key
  • Editing .env and .toml configuration files
  • Understanding the difference between a dry run and a live run before executing writes

What you are responsible for

ebcprep is a CLI tool, not a managed service. It runs on your laptop, stores its state in a local SQLite file (data/ebcprep.db), and has no server component. That means you are responsible for:

  • Keeping the feeder spreadsheet accurate. ebcprep reads the Google Sheet on every sync and trusts it as the source of truth. If a row is wrong, the resulting notebook will reflect that.
  • Re-authenticating NotebookLM periodically. The session saved by nlm login expires every few weeks. When it does, you run nlm login --profile <name> again before syncing.
  • Running syncs when needed. ebcprep does not run on a schedule. You invoke ebcprep sync whenever new meeting rows have been added to the sheet.

What you do not need to know

ebcprep deliberately hides the complexity of interacting with NotebookLM's internal APIs. You do not need to understand how notebooks are created or how sources are named — the tool handles all of that. You also do not need to manage deduplication manually: the state database tracks every processed meeting by a content hash, so re-running ebcprep sync after a partial failure or a new batch of rows is always safe.

Operator vs. executive

There are two kinds of people in an ebcprep workflow:

RoleDescription
OperatorThe platform engineer or SRE who runs ebcprep. Owns the Google account that holds all notebooks and the GCP service account that reads the feeder sheet.
ExecutiveThe person whose meetings are being prepped. Receives a share invite to their notebook and interacts with NotebookLM directly — they never touch ebcprep.

This distinction matters because all notebooks are owned by a single operator account. Executives are added as collaborators via NotebookLM's share mechanism; they do not need to know how the notebooks were created.

Skill level assumed

ebcprep is an intermediate-level tool. The quickstart is short, but the underlying ecosystem — GCP service accounts, NotebookLM session management, Google Sheets column layout — assumes you have seen these concepts before. If you are setting up the tool for the first time, run ebcprep doctor after configuration to validate all connectivity before attempting a sync.


Examples

Checking whether you are the right operator for this tool

Before installing ebcprep, confirm you have the prerequisites in place:

# Confirm Python version
python --version
# Python 3.11.9

# Confirm uv is available
uv --version
# uv 0.4.0

# Confirm nlm is installed at the required version
nlm --version
# notebooklm-mcp-cli 0.6.5

Expected output: all three commands return version strings without errors. If any are missing, resolve them before continuing.

Running a health check as the operator

Once configured, run the built-in health check to verify your operator environment is complete:

ebcprep doctor

Expected output:

✔  .env loaded — sheet ID and NLM profile found
✔  Service account key exists and is readable
✔  Sheets API: feeder spreadsheet is accessible (42 rows)
✔  NotebookLM session: profile "ebc-ops" is valid
✔  State database: data/ebcprep.db is writable

All checks passed. You are ready to run ebcprep sync.

If any check fails, ebcprep doctor explains what is missing and how to fix it before you attempt a live sync.


Related concepts
  • Install and authenticate — step-by-step setup for operators new to ebcprep, covering uv, nlm login, and service account configuration.
  • Configure the tool — how to populate the .env configuration file and the optional defaults.toml with always-included collaborators and default sources.
  • Prepare the feeder spreadsheet — the required column layout for the Google Sheet that ebcprep reads on every sync.
  • Preview and run a sync — how to use --dry-run to inspect planned changes before writing to NotebookLM.
  • Check sync status and inspect executives — using ebcprep status and ebcprep execs to understand what the state database has recorded.