Intended Audience
CLI tool authors and terminal application developers
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.
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
.envand.tomlconfiguration 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 loginexpires every few weeks. When it does, you runnlm login --profile <name>again before syncing. - Running syncs when needed. ebcprep does not run on a schedule. You invoke
ebcprep syncwhenever 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:
| Role | Description |
|---|---|
| Operator | The 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. |
| Executive | The 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.
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.
- 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
.envconfiguration file and the optionaldefaults.tomlwith 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-runto inspect planned changes before writing to NotebookLM. - Check sync status and inspect executives — using
ebcprep statusandebcprep execsto understand what the state database has recorded.