ietf-notebook
Automate gathering of NotebookLM-ready documents for an IETF Working Group.
This tool gathers Working Group charters, drafts, meeting minutes, PDF slides, meeting transcripts, mailing list archives, and GitHub issues into a set of clean text files and PDFs suitable for ingestion into NotebookLM.
Installation
pipx install ietf-notebook
Certificate Errors
If you encounter SSL or certificate errors (common behind corporate firewalls), install with the certs option:
pipx install ietf-notebook[certs]
Usage
First Run
To start collecting documents for a Working Group, use the --destination flag to specify where the documents should be stored. This will create a directory with the WG name and populate it with the WG charter, meeting minutes, slides, transcripts, mailing list archives, and GitHub issues.
Because ietf-notebook persists Working Group configuration options, you don't need to specify them again for that Working Group. Use --clear-config to reset a group's configuration.
ietf-notebook [OPTIONS] --destination _destination_ _wg_shortname_
Then, upload all of the files in destination to NotebookLM.
Subsequent Updates
To update the documents, run with the --update flag.
ietf-notebook --update _wg_shortname_
destination will only contain files that have changed since the last run. Upload the new and updated files to NotebookLM.
Options
Working Group configuration:
wg_shortname: IETF Working Group short name (e.g.,httpbis).--github: GitHub org/repo for issues (can be specified multiple times).--github-label: Include only GitHub issues with this label (can be specified multiple times).--exclude-github-label: Exclude GitHub issues with this label (can be specified multiple times).--months: Number of months of mailing list history to fetch (default: 12).--clear-config: Clear and reset the persisted configuration for this Working Group.
Output control:
--destination: Folder to populate with group records.--create: See "NotebookLM Export" below.--clear-cache: Clear the local file cache and re-download everything from scratch.--update: Only write updated files to destination. NOTE: the destination folder is emptied when using this flag.
General options:
--quiet: No messages except for errors and the final resource summary.--verbose: Detailed progress reporting.
Default Behavior
- Mirroring Strategy: By default, the
--destinationfolder is updated with the latest versions of all files from the local cache. If--updateis used, only files that have changed during the current run will be written there. - File Caching: All documents are collected in
~/.cache/ietf-notebook/[wg]/files/to avoid redundant downloads. - Charters, Meetings, and Documents: Existing files in the cache are skipped unless
--clear-cacheis used. - Mailing List Discovery: The tool automatically finds the mailing list for the WG from the Datatracker.
- IMAP Retrieval: Mailing list archives are fetched via IMAP from
imap.ietf.organd cached locally in~/.cache/ietf-notebook/{wg_name}/imap-cache/. - GitHub Strategy: The tool first checks for
archive.jsonon thegh-pagesbranch. - Transcripts: Meeting transcripts are fetched from the
ietf-minutes-datarepository and cached locally in~/.cache/ietf-notebook/{wg_name}/transcript-cache/. - GitHub Auth: To avoid rate limits when fetching from the API, set the
GITHUB_TOKENenvironment variable. - NotebookLM Export: Use the
--createflag to automatically create a new notebook in NotebookLM Enterprise and upload all generated archives as sources.
NotebookLM Export (Enterprise only)
If you have a Google Workspace Enterprise account with NotebookLM enabled, you can programmatically create a notebook and upload your gathered resources.
ietf-notebook httpbis --create [MY_PROJECT_ID]
Requirements:
- Google Cloud Project: You must have a GCP project with the Discovery Engine API enabled.
- OAuth Credentials: You need an "OAuth 2.0 Client ID" (Type: Desktop App) from the Google Cloud Console.
- Client Secrets: Save the JSON file as
client_secrets.jsonin~/.config/ietf-notebook/(or specify its path with--credentials-file).
The first time you run this, a browser window will open to authorize the application. Your access permissions will be cached in ~/.config/ietf-notebook/token.json (or you can specify with --token-file).
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Release files for ietf-notebook 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ietf_notebook-0.3.2.tar.gz | 25.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ietf_notebook-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 54.1 kB
Release files / ietf_notebook-0.3.2.tar.gz
| Download URL | ietf_notebook-0.3.2.tar.gz |
|---|---|
| Size | 25.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
44720631294bb578ecd8031a6db9f44fb6aec165849a6d1edfc73827a5e4cc72
|
|
BLAKE2b-256 checksum How to use checksums |
1211247c228ab4ee70e0932afc15690fad161b31a619dea7940311b9c9c8ae54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.
Transparency logRelease files / ietf_notebook-0.3.2-py3-none-any.whl
| Download URL | ietf_notebook-0.3.2-py3-none-any.whl |
|---|---|
| Size | 28.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
151fea2a059d8e491b2d62548867b37e8cef66372cd6e4b6c8ecd1fef37deaf0
|
|
BLAKE2b-256 checksum How to use checksums |
ccf62de632d81ea08933173b5c62e3f3e7a9b181e3a54bae002efe69ce1ad63f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 6, 2026.
Transparency log