How stefanbringuier/omarchy-notebooklm-bridge works
NotebookLM Bridge is an Omarchy bar-widget that lets users list notebooks, add sources, and ask questions through an experimental unofficial CLI, with browser handoff as a fallback. The widget sends requests to a local NDJSON dispatcher; source additions are validated before backend dispatch, and responses return to the panel. Handoff opens the notebook and may copy a source, but does not upload files or submit questions. The README documents the UI capabilities; sampled QML was unavailable, so internal UI wiring is shown only at the documented panel-to-dispatcher boundary.
Main entry points: dispatcher.py Operation router · Panel.qml Notebook panel · notebook_bridge.py Dispatcher entry · handoff.py Browser handoff
Components 24
Widget interface
- Bar widget
BarWidget.qml - Notebook panel
Panel.qml - Add sources
components/AddView.qml - Ask question
components/AskView.qml - Notebook picker
components/NotebookPicker.qml - Results view
components/ResultView.qml - Settings and login
components/SettingsView.qml - File browser
components/FileBrowser.qml - History view
components/HistoryView.qml
Local dispatcher
- Dispatcher entry
bin/notebook_bridge.py - NDJSON protocol
notebook_bridge/protocol.py - Operation router
notebook_bridge/dispatcher.py - Input preflight
notebook_bridge/validation.py - Backend registry
notebook_bridge/adapters.py
Notebook backends
- Consumer CLI adapter
notebook_bridge/consumer_cli.py - Browser handoff
notebook_bridge/handoff.py
Configuration and state
- Config and aliases
notebook_bridge/config.py - Receipt writer
notebook_bridge/receipts.py
Other components
- User
- notebooklm CLI
- NotebookLM service
- Browser and clipboard
- User config
- Receipt log
Connections 30
- User → Bar widget: opens
- Bar widget → Notebook panel: opens
- Notebook panel → Add sources: selects Add
- Notebook panel → Ask question: selects Ask
- Notebook panel → Settings and login: opens settings
- Notebook panel → Notebook picker: selects notebook
- Add sources → File browser: stages files
- Add sources → Dispatcher entry: sends request
- Ask question → Dispatcher entry: sends request
- Settings and login → Dispatcher entry: sends login request
- Notebook picker → Dispatcher entry: requests notebooks
- History view → Notebook panel: shows view
- Dispatcher entry → NDJSON protocol: parses request
- Dispatcher entry → Operation router: dispatches request
- Operation router → Config and aliases: loads preferences
- Config and aliases → User config: reads and writes
- Operation router → Input preflight: preflights sources
- Operation router → Backend registry: selects backend
- Backend registry → Consumer CLI adapter: registers handler
- Backend registry → Browser handoff: registers handler
- Operation router → Consumer CLI adapter: dispatches CLI operation
- Consumer CLI adapter → notebooklm CLI: runs commands
- notebooklm CLI → NotebookLM service: accesses notebooks
- Operation router → Browser handoff: dispatches fallback
- Browser handoff → Browser and clipboard: opens notebook
- Browser handoff → Browser and clipboard: copies source
- Operation router → Receipt writer: records outcome
- Receipt writer → Receipt log: appends metadata
- Dispatcher entry → Results view: returns response
- Results view → Notebook panel: renders outcome