Skip to content

Commit 0204dbb

Browse files
muqiao215qiaoqiao147jackwener
authored
feat(notebooklm): add read commands and compatibility layer (#622)
* feat(notebooklm): add read commands and compatibility layer * review: trim notebooklm artifacts and sync docs --------- Co-authored-by: qiaoqiao147 <camtup044@gmail.com> Co-authored-by: jackwener <jakevingoo@gmail.com>
1 parent 1858eac commit 0204dbb

52 files changed

Lines changed: 4721 additions & 538 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ git clone git@github.com:jackwener/opencli.git && cd opencli && npm install && n
122122
| **tieba** | `hot` `posts` `search` `read` |
123123
| **twitter** | `trending` `search` `timeline` `bookmarks` `post` `download` `profile` `article` `like` `likes` `notifications` `reply` `reply-dm` `thread` `follow` `unfollow` `followers` `following` `block` `unblock` `bookmark` `unbookmark` `delete` `hide-reply` `accept` |
124124
| **reddit** | `hot` `frontpage` `popular` `search` `subreddit` `user` `user-posts` `user-comments` `read` `save` `saved` `subscribe` `upvote` `upvoted` `comment` |
125+
| **notebooklm** | `status` `list` `current` `get` `metadata` `bind-current` `use` `source-list` `source-get` `source-fulltext` `source-guide` `history` `note-list` `notes-list` `notes-get` `summary` |
125126
| **spotify** | `auth` `status` `play` `pause` `next` `prev` `volume` `search` `queue` `shuffle` `repeat` |
126127

127128
66+ adapters in total — **[→ see all supported sites & commands](./docs/adapters/index.md)**

README.zh-CN.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ npm install -g @jackwener/opencli@latest
175175
| **facebook** | `feed` `profile` `search` `friends` `groups` `events` `notifications` `memories` `add-friend` `join-group` | 浏览器 |
176176
| **google** | `news` `search` `suggest` `trends` | 公开 |
177177
| **spotify** | `auth` `status` `play` `pause` `next` `prev` `volume` `search` `queue` `shuffle` `repeat` | OAuth API |
178+
| **notebooklm** | `status` `list` `current` `get` `metadata` `bind-current` `use` `source-list` `source-get` `source-fulltext` `source-guide` `history` `note-list` `notes-list` `notes-get` `summary` | 浏览器 |
178179
| **36kr** | `news` `hot` `search` `article` | 公开 / 浏览器 |
179180
| **imdb** | `search` `title` `top` `trending` `person` `reviews` | 公开 |
180181
| **producthunt** | `posts` `today` `hot` `browse` | 公开 / 浏览器 |

docs/.vitepress/config.mts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export default defineConfig({
7272
{ text: 'Band', link: '/adapters/browser/band' },
7373
{ text: 'Chaoxing', link: '/adapters/browser/chaoxing' },
7474
{ text: 'Grok', link: '/adapters/browser/grok' },
75+
{ text: 'NotebookLM', link: '/adapters/browser/notebooklm' },
7576
{ text: 'WeRead', link: '/adapters/browser/weread' },
7677
{ text: 'Douban', link: '/adapters/browser/douban' },
7778
{ text: 'Sina Blog', link: '/adapters/browser/sinablog' },
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# NotebookLM
2+
3+
**Mode**: 🔐 Browser Bridge · **Domain**: `notebooklm.google.com`
4+
5+
## Commands
6+
7+
| Command | Description |
8+
|---------|-------------|
9+
| `opencli notebooklm status` | Check whether NotebookLM is reachable in the current Chrome session |
10+
| `opencli notebooklm list` | List notebooks visible from the NotebookLM home page |
11+
| `opencli notebooklm current` | Show metadata for the currently opened notebook tab |
12+
| `opencli notebooklm get` | Get richer metadata for the current notebook |
13+
| `opencli notebooklm source-list` | List sources in the current notebook |
14+
| `opencli notebooklm source-get <source>` | Resolve one source in the current notebook by id or title |
15+
| `opencli notebooklm source-fulltext <source>` | Fetch extracted source fulltext through NotebookLM RPC |
16+
| `opencli notebooklm source-guide <source>` | Fetch guide summary and keywords for one source |
17+
| `opencli notebooklm history` | List conversation history threads for the current notebook |
18+
| `opencli notebooklm note-list` | List Studio notes visible in the current notebook |
19+
| `opencli notebooklm notes-get <note>` | Read the currently visible Studio note by title |
20+
| `opencli notebooklm bind-current` | Bind the current active NotebookLM tab into the `site:notebooklm` workspace |
21+
| `opencli notebooklm summary` | Read the current notebook summary |
22+
23+
## Compatibility Aliases
24+
25+
| Alias | Canonical command |
26+
|-------|-------------------|
27+
| `opencli notebooklm metadata` | `opencli notebooklm get` |
28+
| `opencli notebooklm use` | `opencli notebooklm bind-current` |
29+
| `opencli notebooklm notes-list` | `opencli notebooklm note-list` |
30+
31+
## Positioning
32+
33+
This adapter reuses the existing OpenCLI Browser Bridge runtime:
34+
35+
- no custom NotebookLM extension
36+
- no exported cookie replay
37+
- requests and page state stay in the real Chrome session
38+
39+
The current milestone focuses on a stable NotebookLM read surface in desktop Chrome with an already logged-in Google account.
40+
41+
## Usage Examples
42+
43+
```bash
44+
opencli notebooklm status
45+
opencli notebooklm list -f json
46+
opencli notebooklm current -f json
47+
opencli notebooklm metadata -f json
48+
opencli notebooklm source-list -f json
49+
opencli notebooklm source-get "Quarterly report" -f json
50+
opencli notebooklm source-guide "Quarterly report" -f json
51+
opencli notebooklm source-fulltext "Quarterly report" -f json
52+
opencli notebooklm history -f json
53+
opencli notebooklm notes-list -f json
54+
opencli notebooklm notes-get "Draft note" -f json
55+
opencli notebooklm summary -f json
56+
opencli notebooklm use -f json
57+
```
58+
59+
## Prerequisites
60+
61+
- Chrome running and logged into Google / NotebookLM
62+
- [Browser Bridge extension](/guide/browser-bridge) installed
63+
- NotebookLM accessible in the current browser session
64+
65+
## Notes
66+
67+
- Notebook-oriented commands assume you already have the target notebook open in Chrome, or that `opencli notebooklm use` can bind an existing notebook tab into `site:notebooklm`.
68+
- `list`, `get`, `source-list`, `history`, `source-fulltext`, and `source-guide` prefer NotebookLM RPC paths and fall back only when the richer path is unavailable.
69+
- `notes-get` currently reads note content only from the visible Studio note editor; if the note is listed but not open, open it in NotebookLM first and then retry.

docs/adapters/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Run `opencli list` for the live registry.
2929
| **[linux-do](/adapters/browser/linux-do)** | `feed` `categories` `tags` `search` `topic` `user-topics` `user-posts` | 🔐 Browser |
3030
| **[chaoxing](/adapters/browser/chaoxing)** | `assignments` `exams` | 🔐 Browser |
3131
| **[grok](/adapters/browser/grok)** | `ask` | 🔐 Browser |
32+
| **[notebooklm](/adapters/browser/notebooklm)** | `status` `list` `current` `get` `metadata` `bind-current` `use` `source-list` `source-get` `source-fulltext` `source-guide` `history` `note-list` `notes-list` `notes-get` `summary` | 🔐 Browser |
3233
| **[doubao](/adapters/browser/doubao)** | `status` `new` `send` `read` `ask` `history` `detail` `meeting-summary` `meeting-transcript` | 🔐 Browser |
3334
| **[weread](/adapters/browser/weread)** | `shelf` `search` `book` `ranking` `notebooks` `highlights` `notes` | 🔐 Browser |
3435
| **[douban](/adapters/browser/douban)** | `search` `top250` `subject` `photos` `download` `marks` `reviews` `movie-hot` `book-hot` | 🔐 Browser |

0 commit comments

Comments
 (0)