bobo-ai-cli 2.1.0 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (260) hide show
  1. package/README.md +52 -9
  2. package/bundled-skills/CORE_SKILLS.txt +18 -0
  3. package/dist/agent.js +91 -51
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agents/catalog.d.ts +40 -0
  6. package/dist/agents/catalog.js +172 -0
  7. package/dist/agents/catalog.js.map +1 -0
  8. package/dist/agents/index.d.ts +6 -0
  9. package/dist/agents/index.js +4 -0
  10. package/dist/agents/index.js.map +1 -0
  11. package/dist/agents/router.d.ts +43 -0
  12. package/dist/agents/router.js +87 -0
  13. package/dist/agents/router.js.map +1 -0
  14. package/dist/agents/spawn.d.ts +46 -0
  15. package/dist/agents/spawn.js +91 -0
  16. package/dist/agents/spawn.js.map +1 -0
  17. package/dist/autonomous.js +41 -1
  18. package/dist/autonomous.js.map +1 -1
  19. package/dist/cli.d.ts +8 -0
  20. package/dist/cli.js +669 -0
  21. package/dist/cli.js.map +1 -0
  22. package/dist/compactor.d.ts +49 -4
  23. package/dist/compactor.js +164 -17
  24. package/dist/compactor.js.map +1 -1
  25. package/dist/completer.js +2 -0
  26. package/dist/completer.js.map +1 -1
  27. package/dist/config.js +3 -2
  28. package/dist/config.js.map +1 -1
  29. package/dist/cost-tracker.js +36 -2
  30. package/dist/cost-tracker.js.map +1 -1
  31. package/dist/dream.d.ts +42 -0
  32. package/dist/dream.js +324 -0
  33. package/dist/dream.js.map +1 -0
  34. package/dist/hooks.d.ts +1 -1
  35. package/dist/hooks.js +7 -2
  36. package/dist/hooks.js.map +1 -1
  37. package/dist/index.js +10 -1136
  38. package/dist/index.js.map +1 -1
  39. package/dist/insight.js +4 -11
  40. package/dist/insight.js.map +1 -1
  41. package/dist/knowledge.d.ts +13 -0
  42. package/dist/knowledge.js +16 -4
  43. package/dist/knowledge.js.map +1 -1
  44. package/dist/mcp-client.js +59 -41
  45. package/dist/mcp-client.js.map +1 -1
  46. package/dist/memory.d.ts +4 -0
  47. package/dist/memory.js +30 -18
  48. package/dist/memory.js.map +1 -1
  49. package/dist/project.js +2 -1
  50. package/dist/project.js.map +1 -1
  51. package/dist/providers.js +1 -1
  52. package/dist/providers.js.map +1 -1
  53. package/dist/repl.d.ts +16 -0
  54. package/dist/repl.js +704 -0
  55. package/dist/repl.js.map +1 -0
  56. package/dist/sessions.js +59 -3
  57. package/dist/sessions.js.map +1 -1
  58. package/dist/skill-router.js +2 -2
  59. package/dist/skill-router.js.map +1 -1
  60. package/dist/skills/composer.d.ts +18 -0
  61. package/dist/skills/composer.js +59 -0
  62. package/dist/skills/composer.js.map +1 -0
  63. package/dist/skills/index.d.ts +3 -0
  64. package/dist/skills/index.js +3 -0
  65. package/dist/skills/index.js.map +1 -0
  66. package/dist/skills/loader.d.ts +12 -0
  67. package/dist/skills/loader.js +150 -0
  68. package/dist/skills/loader.js.map +1 -0
  69. package/dist/skills/types.d.ts +28 -0
  70. package/dist/skills/types.js +9 -0
  71. package/dist/skills/types.js.map +1 -0
  72. package/dist/skills.d.ts +1 -0
  73. package/dist/skills.js +10 -8
  74. package/dist/skills.js.map +1 -1
  75. package/dist/state/artifacts.d.ts +71 -0
  76. package/dist/state/artifacts.js +133 -0
  77. package/dist/state/artifacts.js.map +1 -0
  78. package/dist/state/index.d.ts +9 -0
  79. package/dist/state/index.js +7 -0
  80. package/dist/state/index.js.map +1 -0
  81. package/dist/state/manager.d.ts +89 -0
  82. package/dist/state/manager.js +132 -0
  83. package/dist/state/manager.js.map +1 -0
  84. package/dist/state/project-memory.d.ts +24 -0
  85. package/dist/state/project-memory.js +83 -0
  86. package/dist/state/project-memory.js.map +1 -0
  87. package/dist/state/recovery.d.ts +24 -0
  88. package/dist/state/recovery.js +95 -0
  89. package/dist/state/recovery.js.map +1 -0
  90. package/dist/statusbar.d.ts +1 -0
  91. package/dist/statusbar.js +12 -1
  92. package/dist/statusbar.js.map +1 -1
  93. package/dist/structured/loader.js +4 -2
  94. package/dist/structured/loader.js.map +1 -1
  95. package/dist/sub-agent-runner.d.ts +1 -0
  96. package/dist/sub-agent-runner.js +32 -5
  97. package/dist/sub-agent-runner.js.map +1 -1
  98. package/dist/sub-agents.d.ts +19 -1
  99. package/dist/sub-agents.js +142 -5
  100. package/dist/sub-agents.js.map +1 -1
  101. package/dist/tool-governance.d.ts +77 -0
  102. package/dist/tool-governance.js +366 -0
  103. package/dist/tool-governance.js.map +1 -0
  104. package/dist/tools/advanced.js +3 -2
  105. package/dist/tools/advanced.js.map +1 -1
  106. package/dist/tools/browser.js +2 -2
  107. package/dist/tools/browser.js.map +1 -1
  108. package/dist/tools/claude-code.js +2 -2
  109. package/dist/tools/claude-code.js.map +1 -1
  110. package/dist/tools/index.js +36 -12
  111. package/dist/tools/index.js.map +1 -1
  112. package/dist/tools/process-manager.js +2 -2
  113. package/dist/tools/process-manager.js.map +1 -1
  114. package/dist/ui/hud.d.ts +25 -0
  115. package/dist/ui/hud.js +67 -0
  116. package/dist/ui/hud.js.map +1 -0
  117. package/dist/verification-agent.d.ts +46 -0
  118. package/dist/verification-agent.js +533 -0
  119. package/dist/verification-agent.js.map +1 -0
  120. package/dist/watcher.js +2 -2
  121. package/dist/watcher.js.map +1 -1
  122. package/dist/web.js +1 -1
  123. package/dist/web.js.map +1 -1
  124. package/dist/workflows/ask.d.ts +13 -0
  125. package/dist/workflows/ask.js +66 -0
  126. package/dist/workflows/ask.js.map +1 -0
  127. package/dist/workflows/index.d.ts +5 -0
  128. package/dist/workflows/index.js +6 -0
  129. package/dist/workflows/index.js.map +1 -0
  130. package/dist/workflows/interview.d.ts +11 -0
  131. package/dist/workflows/interview.js +36 -0
  132. package/dist/workflows/interview.js.map +1 -0
  133. package/dist/workflows/plan.d.ts +13 -0
  134. package/dist/workflows/plan.js +34 -0
  135. package/dist/workflows/plan.js.map +1 -0
  136. package/dist/workflows/team.d.ts +17 -0
  137. package/dist/workflows/team.js +86 -0
  138. package/dist/workflows/team.js.map +1 -0
  139. package/dist/workflows/verify.d.ts +11 -0
  140. package/dist/workflows/verify.js +21 -0
  141. package/dist/workflows/verify.js.map +1 -0
  142. package/package.json +18 -5
  143. package/bundled-skills/Skill_Seekers/SKILL.md +0 -1722
  144. package/bundled-skills/ab-test-setup/SKILL.md +0 -557
  145. package/bundled-skills/adversarial-verification/SKILL.md +0 -95
  146. package/bundled-skills/agent-sdk-dev/SKILL.md +0 -238
  147. package/bundled-skills/agent-tools/SKILL.md +0 -136
  148. package/bundled-skills/analytics-tracking/SKILL.md +0 -597
  149. package/bundled-skills/artifacts-builder/SKILL.md +0 -89
  150. package/bundled-skills/asana/SKILL.md +0 -13
  151. package/bundled-skills/brand-voice/SKILL.md +0 -481
  152. package/bundled-skills/browser-use/SKILL.md +0 -419
  153. package/bundled-skills/cache-optimization-skill/SKILL.md +0 -179
  154. package/bundled-skills/canvas-design/SKILL.md +0 -147
  155. package/bundled-skills/citation-validator/SKILL.md +0 -203
  156. package/bundled-skills/clangd-lsp/SKILL.md +0 -52
  157. package/bundled-skills/code-simplifier/SKILL.md +0 -13
  158. package/bundled-skills/commit-commands/SKILL.md +0 -258
  159. package/bundled-skills/competitor-alternatives/SKILL.md +0 -795
  160. package/bundled-skills/content-atomizer/SKILL.md +0 -910
  161. package/bundled-skills/content-research-writer/SKILL.md +0 -605
  162. package/bundled-skills/context7/SKILL.md +0 -13
  163. package/bundled-skills/copy-editing/SKILL.md +0 -494
  164. package/bundled-skills/copywriting/SKILL.md +0 -510
  165. package/bundled-skills/csharp-lsp/SKILL.md +0 -40
  166. package/bundled-skills/decision-making-framework/SKILL.md +0 -154
  167. package/bundled-skills/deep-research/SKILL.md +0 -236
  168. package/bundled-skills/developer-growth-analysis/SKILL.md +0 -335
  169. package/bundled-skills/direct-response-copy/SKILL.md +0 -2336
  170. package/bundled-skills/docker-expert/SKILL.md +0 -229
  171. package/bundled-skills/document-skills/SKILL.md +0 -13
  172. package/bundled-skills/documentation-expert/SKILL.md +0 -126
  173. package/bundled-skills/email-sequence/SKILL.md +0 -1061
  174. package/bundled-skills/email-sequences/SKILL.md +0 -910
  175. package/bundled-skills/example-plugin/SKILL.md +0 -72
  176. package/bundled-skills/explanatory-output-style/SKILL.md +0 -82
  177. package/bundled-skills/feature-dev/SKILL.md +0 -458
  178. package/bundled-skills/file-organizer/SKILL.md +0 -466
  179. package/bundled-skills/firebase.disabled/SKILL.md +0 -13
  180. package/bundled-skills/form-cro/SKILL.md +0 -488
  181. package/bundled-skills/free-tool-strategy/SKILL.md +0 -636
  182. package/bundled-skills/frontend-design/SKILL.md +0 -41
  183. package/bundled-skills/frontend-design-offical/SKILL.md +0 -55
  184. package/bundled-skills/gitlab/SKILL.md +0 -13
  185. package/bundled-skills/gopls-lsp/SKILL.md +0 -32
  186. package/bundled-skills/got-controller/SKILL.md +0 -218
  187. package/bundled-skills/greptile/SKILL.md +0 -72
  188. package/bundled-skills/hookify/SKILL.md +0 -376
  189. package/bundled-skills/image-editor/SKILL.md +0 -189
  190. package/bundled-skills/image-enhancer/SKILL.md +0 -109
  191. package/bundled-skills/jdtls-lsp/SKILL.md +0 -49
  192. package/bundled-skills/json-canvas/SKILL.md +0 -654
  193. package/bundled-skills/keyword-research/SKILL.md +0 -559
  194. package/bundled-skills/kotlin-lsp/SKILL.md +0 -28
  195. package/bundled-skills/laravel-boost/SKILL.md +0 -13
  196. package/bundled-skills/launch-strategy/SKILL.md +0 -394
  197. package/bundled-skills/lead-magnet/SKILL.md +0 -393
  198. package/bundled-skills/learning-output-style/SKILL.md +0 -106
  199. package/bundled-skills/linear/SKILL.md +0 -13
  200. package/bundled-skills/lua-lsp/SKILL.md +0 -47
  201. package/bundled-skills/marketing-ideas/SKILL.md +0 -720
  202. package/bundled-skills/marketing-psychology/SKILL.md +0 -534
  203. package/bundled-skills/mcp-builder/SKILL.md +0 -369
  204. package/bundled-skills/meeting-insights-analyzer/SKILL.md +0 -347
  205. package/bundled-skills/memory-evolution-system/SKILL.md +0 -172
  206. package/bundled-skills/multi-lens-thinking/SKILL.md +0 -407
  207. package/bundled-skills/nano-banana-pro/SKILL.md +0 -116
  208. package/bundled-skills/newsletter/SKILL.md +0 -736
  209. package/bundled-skills/notebooklm/SKILL.md +0 -296
  210. package/bundled-skills/obsidian-bases/SKILL.md +0 -634
  211. package/bundled-skills/obsidian-markdown/SKILL.md +0 -651
  212. package/bundled-skills/onboarding-cro/SKILL.md +0 -494
  213. package/bundled-skills/page-cro/SKILL.md +0 -379
  214. package/bundled-skills/paid-ads/SKILL.md +0 -624
  215. package/bundled-skills/paywall-upgrade-cro/SKILL.md +0 -651
  216. package/bundled-skills/php-lsp/SKILL.md +0 -36
  217. package/bundled-skills/playwright/SKILL.md +0 -13
  218. package/bundled-skills/plugin-dev/SKILL.md +0 -434
  219. package/bundled-skills/popup-cro/SKILL.md +0 -520
  220. package/bundled-skills/positioning-angles/SKILL.md +0 -330
  221. package/bundled-skills/pr-review-toolkit/SKILL.md +0 -359
  222. package/bundled-skills/pricing-strategy/SKILL.md +0 -777
  223. package/bundled-skills/proactive-self-improving/SKILL.md +0 -435
  224. package/bundled-skills/programmatic-seo/SKILL.md +0 -714
  225. package/bundled-skills/pyright-lsp/SKILL.md +0 -43
  226. package/bundled-skills/quality-assurance-framework/SKILL.md +0 -168
  227. package/bundled-skills/question-refiner/SKILL.md +0 -160
  228. package/bundled-skills/ralph-loop/SKILL.md +0 -205
  229. package/bundled-skills/refactoring-expert/SKILL.md +0 -103
  230. package/bundled-skills/referral-program/SKILL.md +0 -668
  231. package/bundled-skills/research-executor/SKILL.md +0 -164
  232. package/bundled-skills/review-with-security/SKILL.md +0 -12
  233. package/bundled-skills/rust-analyzer-lsp/SKILL.md +0 -50
  234. package/bundled-skills/schema-markup/SKILL.md +0 -647
  235. package/bundled-skills/security-audit-expert/SKILL.md +0 -124
  236. package/bundled-skills/security-expert/SKILL.md +0 -140
  237. package/bundled-skills/security-guidance/SKILL.md +0 -13
  238. package/bundled-skills/seedance-prompt/SKILL.md +0 -139
  239. package/bundled-skills/self-evolution/SKILL.md +0 -1160
  240. package/bundled-skills/seo-audit/SKILL.md +0 -432
  241. package/bundled-skills/seo-content/SKILL.md +0 -787
  242. package/bundled-skills/serena/SKILL.md +0 -13
  243. package/bundled-skills/signup-flow-cro/SKILL.md +0 -409
  244. package/bundled-skills/skill-manager/SKILL.md +0 -226
  245. package/bundled-skills/skill-share/SKILL.md +0 -98
  246. package/bundled-skills/slack/SKILL.md +0 -13
  247. package/bundled-skills/social-content/SKILL.md +0 -878
  248. package/bundled-skills/spec-flow-skill/SKILL.md +0 -124
  249. package/bundled-skills/stripe/SKILL.md +0 -13
  250. package/bundled-skills/supabase/SKILL.md +0 -13
  251. package/bundled-skills/swift-lsp/SKILL.md +0 -40
  252. package/bundled-skills/synthesizer/SKILL.md +0 -236
  253. package/bundled-skills/template-skill/SKILL.md +0 -16
  254. package/bundled-skills/theme-factory/SKILL.md +0 -72
  255. package/bundled-skills/tiktok-research/SKILL.md +0 -208
  256. package/bundled-skills/typescript-lsp/SKILL.md +0 -36
  257. package/bundled-skills/ui-ux-pro-max/SKILL.md +0 -247
  258. package/bundled-skills/visual-prompt-engineer/SKILL.md +0 -102
  259. package/bundled-skills/webapp-testing/SKILL.md +0 -111
  260. package/bundled-skills/wide-research/SKILL.md +0 -191
@@ -1,296 +0,0 @@
1
- ---
2
- id: "notebooklm"
3
- title: "NotebookLM Research Assistant Skill"
4
- category: "research"
5
- tags: ["when to use this skill", "core workflow", "list all notebooks", "search notebooks by topic", "set active notebook", "remove notebook", "query specific notebook", "show browser for debugging", "script reference", "environment management"]
6
- triggers: []
7
- dependencies: []
8
- source: "E:/Bobo's Coding cache/.claude/skills/notebooklm"
9
- ---
10
-
11
- ---
12
- name: notebooklm
13
- description: Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth. Drastically reduced hallucinations through document-only responses.
14
- ---
15
-
16
- # NotebookLM Research Assistant Skill
17
-
18
- Interact with Google NotebookLM to query documentation with Gemini's source-grounded answers. Each question opens a fresh browser session, retrieves the answer exclusively from your uploaded documents, and closes.
19
-
20
- ## When to Use This Skill
21
-
22
- Trigger when user:
23
-
24
- - Mentions NotebookLM explicitly
25
- - Shares NotebookLM URL (`https://notebooklm.google.com/notebook/...`)
26
- - Asks to query their notebooks/documentation
27
- - Wants to add documentation to NotebookLM library
28
- - Uses phrases like "ask my NotebookLM", "check my docs", "query my notebook"
29
-
30
- ## ⚠️ CRITICAL: Add Command - Smart Discovery
31
-
32
- When user wants to add a notebook without providing details:
33
-
34
- **SMART ADD (Recommended)**: Query the notebook first to discover its content:
35
-
36
- ```bash
37
- # Step 1: Query the notebook about its content
38
- python scripts/run.py ask_question.py --question "What is the content of this notebook? What topics are covered? Provide a complete overview briefly and concisely" --notebook-url "[URL]"
39
-
40
- # Step 2: Use the discovered information to add it
41
- python scripts/run.py notebook_manager.py add --url "[URL]" --name "[Based on content]" --description "[Based on content]" --topics "[Based on content]"
42
- ```
43
-
44
- **MANUAL ADD**: If user provides all details:
45
-
46
- - `--url` - The NotebookLM URL
47
- - `--name` - A descriptive name
48
- - `--description` - What the notebook contains (REQUIRED!)
49
- - `--topics` - Comma-separated topics (REQUIRED!)
50
-
51
- NEVER guess or use generic descriptions! If details missing, use Smart Add to discover them.
52
-
53
- ## Critical: Always Use run.py Wrapper
54
-
55
- **NEVER call scripts directly. ALWAYS use `python scripts/run.py [script]`:**
56
-
57
- ```bash
58
- # ✅ CORRECT - Always use run.py:
59
- python scripts/run.py auth_manager.py status
60
- python scripts/run.py notebook_manager.py list
61
- python scripts/run.py ask_question.py --question "..."
62
-
63
- # ❌ WRONG - Never call directly:
64
- python scripts/auth_manager.py status # Fails without venv!
65
- ```
66
-
67
- The `run.py` wrapper automatically:
68
-
69
- 1. Creates `.venv` if needed
70
- 2. Installs all dependencies
71
- 3. Activates environment
72
- 4. Executes script properly
73
-
74
- ## Core Workflow
75
-
76
- ### Step 1: Check Authentication Status
77
-
78
- ```bash
79
- python scripts/run.py auth_manager.py status
80
- ```
81
-
82
- If not authenticated, proceed to setup.
83
-
84
- ### Step 2: Authenticate (One-Time Setup)
85
-
86
- ```bash
87
- # Browser MUST be visible for manual Google login
88
- python scripts/run.py auth_manager.py setup
89
- ```
90
-
91
- **Important:**
92
-
93
- - Browser is VISIBLE for authentication
94
- - Browser window opens automatically
95
- - User must manually log in to Google
96
- - Tell user: "A browser window will open for Google login"
97
-
98
- ### Step 3: Manage Notebook Library
99
-
100
- ```bash
101
- # List all notebooks
102
- python scripts/run.py notebook_manager.py list
103
-
104
- # BEFORE ADDING: Ask user for metadata if unknown!
105
- # "What does this notebook contain?"
106
- # "What topics should I tag it with?"
107
-
108
- # Add notebook to library (ALL parameters are REQUIRED!)
109
- python scripts/run.py notebook_manager.py add \
110
- --url "https://notebooklm.google.com/notebook/..." \
111
- --name "Descriptive Name" \
112
- --description "What this notebook contains" \ # REQUIRED - ASK USER IF UNKNOWN!
113
- --topics "topic1,topic2,topic3" # REQUIRED - ASK USER IF UNKNOWN!
114
-
115
- # Search notebooks by topic
116
- python scripts/run.py notebook_manager.py search --query "keyword"
117
-
118
- # Set active notebook
119
- python scripts/run.py notebook_manager.py activate --id notebook-id
120
-
121
- # Remove notebook
122
- python scripts/run.py notebook_manager.py remove --id notebook-id
123
- ```
124
-
125
- ### Quick Workflow
126
-
127
- 1. Check library: `python scripts/run.py notebook_manager.py list`
128
- 2. Ask question: `python scripts/run.py ask_question.py --question "..." --notebook-id ID`
129
-
130
- ### Step 4: Ask Questions
131
-
132
- ```bash
133
- # Basic query (uses active notebook if set)
134
- python scripts/run.py ask_question.py --question "Your question here"
135
-
136
- # Query specific notebook
137
- python scripts/run.py ask_question.py --question "..." --notebook-id notebook-id
138
-
139
- # Query with notebook URL directly
140
- python scripts/run.py ask_question.py --question "..." --notebook-url "https://..."
141
-
142
- # Show browser for debugging
143
- python scripts/run.py ask_question.py --question "..." --show-browser
144
- ```
145
-
146
- ## Follow-Up Mechanism (CRITICAL)
147
-
148
- Every NotebookLM answer ends with: **"EXTREMELY IMPORTANT: Is that ALL you need to know?"**
149
-
150
- **Required Claude Behavior:**
151
-
152
- 1. **STOP** - Do not immediately respond to user
153
- 2. **ANALYZE** - Compare answer to user's original request
154
- 3. **IDENTIFY GAPS** - Determine if more information needed
155
- 4. **ASK FOLLOW-UP** - If gaps exist, immediately ask:
156
- ```bash
157
- python scripts/run.py ask_question.py --question "Follow-up with context..."
158
- ```
159
- 5. **REPEAT** - Continue until information is complete
160
- 6. **SYNTHESIZE** - Combine all answers before responding to user
161
-
162
- ## Script Reference
163
-
164
- ### Authentication Management (`auth_manager.py`)
165
-
166
- ```bash
167
- python scripts/run.py auth_manager.py setup # Initial setup (browser visible)
168
- python scripts/run.py auth_manager.py status # Check authentication
169
- python scripts/run.py auth_manager.py reauth # Re-authenticate (browser visible)
170
- python scripts/run.py auth_manager.py clear # Clear authentication
171
- ```
172
-
173
- ### Notebook Management (`notebook_manager.py`)
174
-
175
- ```bash
176
- python scripts/run.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS
177
- python scripts/run.py notebook_manager.py list
178
- python scripts/run.py notebook_manager.py search --query QUERY
179
- python scripts/run.py notebook_manager.py activate --id ID
180
- python scripts/run.py notebook_manager.py remove --id ID
181
- python scripts/run.py notebook_manager.py stats
182
- ```
183
-
184
- ### Question Interface (`ask_question.py`)
185
-
186
- ```bash
187
- python scripts/run.py ask_question.py --question "..." [--notebook-id ID] [--notebook-url URL] [--show-browser]
188
- ```
189
-
190
- ### Data Cleanup (`cleanup_manager.py`)
191
-
192
- ```bash
193
- python scripts/run.py cleanup_manager.py # Preview cleanup
194
- python scripts/run.py cleanup_manager.py --confirm # Execute cleanup
195
- python scripts/run.py cleanup_manager.py --preserve-library # Keep notebooks
196
- ```
197
-
198
- ## Environment Management
199
-
200
- The virtual environment is automatically managed:
201
-
202
- - First run creates `.venv` automatically
203
- - Dependencies install automatically
204
- - Chromium browser installs automatically
205
- - Everything isolated in skill directory
206
-
207
- Manual setup (only if automatic fails):
208
-
209
- ```bash
210
- python -m venv .venv
211
- source .venv/bin/activate # Linux/Mac
212
- pip install -r requirements.txt
213
- python -m patchright install chromium
214
- ```
215
-
216
- ## Data Storage
217
-
218
- All data stored in `~/.claude/skills/notebooklm/data/`:
219
-
220
- - `library.json` - Notebook metadata
221
- - `auth_info.json` - Authentication status
222
- - `browser_state/` - Browser cookies and session
223
-
224
- **Security:** Protected by `.gitignore`, never commit to git.
225
-
226
- ## Configuration
227
-
228
- Optional `.env` file in skill directory:
229
-
230
- ```env
231
- HEADLESS=false # Browser visibility
232
- SHOW_BROWSER=false # Default browser display
233
- STEALTH_ENABLED=true # Human-like behavior
234
- TYPING_WPM_MIN=160 # Typing speed
235
- TYPING_WPM_MAX=240
236
- DEFAULT_NOTEBOOK_ID= # Default notebook
237
- ```
238
-
239
- ## Decision Flow
240
-
241
- ```
242
- User mentions NotebookLM
243
-
244
- Check auth → python scripts/run.py auth_manager.py status
245
-
246
- If not authenticated → python scripts/run.py auth_manager.py setup
247
-
248
- Check/Add notebook → python scripts/run.py notebook_manager.py list/add (with --description)
249
-
250
- Activate notebook → python scripts/run.py notebook_manager.py activate --id ID
251
-
252
- Ask question → python scripts/run.py ask_question.py --question "..."
253
-
254
- See "Is that ALL you need?" → Ask follow-ups until complete
255
-
256
- Synthesize and respond to user
257
- ```
258
-
259
- ## Troubleshooting
260
-
261
- | Problem | Solution |
262
- | -------------------- | ------------------------------------------------------------- |
263
- | ModuleNotFoundError | Use `run.py` wrapper |
264
- | Authentication fails | Browser must be visible for setup! --show-browser |
265
- | Rate limit (50/day) | Wait or switch Google account |
266
- | Browser crashes | `python scripts/run.py cleanup_manager.py --preserve-library` |
267
- | Notebook not found | Check with `notebook_manager.py list` |
268
-
269
- ## Best Practices
270
-
271
- 1. **Always use run.py** - Handles environment automatically
272
- 2. **Check auth first** - Before any operations
273
- 3. **Follow-up questions** - Don't stop at first answer
274
- 4. **Browser visible for auth** - Required for manual login
275
- 5. **Include context** - Each question is independent
276
- 6. **Synthesize answers** - Combine multiple responses
277
-
278
- ## Limitations
279
-
280
- - No session persistence (each question = new browser)
281
- - Rate limits on free Google accounts (50 queries/day)
282
- - Manual upload required (user must add docs to NotebookLM)
283
- - Browser overhead (few seconds per question)
284
-
285
- ## Resources (Skill Structure)
286
-
287
- **Important directories and files:**
288
-
289
- - `scripts/` - All automation scripts (ask_question.py, notebook_manager.py, etc.)
290
- - `data/` - Local storage for authentication and notebook library
291
- - `references/` - Extended documentation:
292
- - `api_reference.md` - Detailed API documentation for all scripts
293
- - `troubleshooting.md` - Common issues and solutions
294
- - `usage_patterns.md` - Best practices and workflow examples
295
- - `.venv/` - Isolated Python environment (auto-created on first run)
296
- - `.gitignore` - Protects sensitive data from being committed