[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7144MFM1HWSGD9PHXR137VM":3,"skill-same:01M7144MFM1HWSGD9PHXR137VM":150},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":19,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":14,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M7144MFM1HWSGD9PHXR137VM","notebooklm",null,"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.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002FSKILL.md",[],[5,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"documentation","with","session","answer","gemini","source","google","2026","fresh","browser","query","unknown","documents","question","browser session","community","2026-11-10 10:12:30",false,"---\nname: notebooklm\ndescription: \"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.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# NotebookLM Research Assistant Skill\n\nInteract 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.\n\n## When to Use This Skill\n\nTrigger when user:\n- Mentions NotebookLM explicitly\n- Shares NotebookLM URL (`https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...`)\n- Asks to query their notebooks\u002Fdocumentation\n- Wants to add documentation to NotebookLM library\n- Uses phrases like \"ask my NotebookLM\", \"check my docs\", \"query my notebook\"\n\n## ⚠️ CRITICAL: Add Command - Smart Discovery\n\nWhen user wants to add a notebook without providing details:\n\n**SMART ADD (Recommended)**: Query the notebook first to discover its content:\n```bash\n# Step 1: Query the notebook about its content\npython scripts\u002Frun.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]\"\n\n# Step 2: Use the discovered information to add it\npython scripts\u002Frun.py notebook_manager.py add --url \"[URL]\" --name \"[Based on content]\" --description \"[Based on content]\" --topics \"[Based on content]\"\n```\n\n**MANUAL ADD**: If user provides all details:\n- `--url` - The NotebookLM URL\n- `--name` - A descriptive name\n- `--description` - What the notebook contains (REQUIRED!)\n- `--topics` - Comma-separated topics (REQUIRED!)\n\nNEVER guess or use generic descriptions! If details missing, use Smart Add to discover them.\n\n## Critical: Always Use run.py Wrapper\n\n**NEVER call scripts directly. ALWAYS use `python scripts\u002Frun.py [script]`:**\n\n```bash\n# ✅ CORRECT - Always use run.py:\npython scripts\u002Frun.py auth_manager.py status\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py ask_question.py --question \"...\"\n\n# ❌ WRONG - Never call directly:\npython scripts\u002Fauth_manager.py status  # Fails without venv!\n```\n\nThe `run.py` wrapper automatically:\n1. Creates `.venv` if needed\n2. Installs all dependencies\n3. Activates environment\n4. Executes script properly\n\n## Core Workflow\n\n### Step 1: Check Authentication Status\n```bash\npython scripts\u002Frun.py auth_manager.py status\n```\n\nIf not authenticated, proceed to setup.\n\n### Step 2: Authenticate (One-Time Setup)\n```bash\n# Browser MUST be visible for manual Google login\npython scripts\u002Frun.py auth_manager.py setup\n```\n\n**Important:**\n- Browser is VISIBLE for authentication\n- Browser window opens automatically\n- User must manually log in to Google\n- Tell user: \"A browser window will open for Google login\"\n\n### Step 3: Manage Notebook Library\n\n```bash\n# List all notebooks\npython scripts\u002Frun.py notebook_manager.py list\n\n# BEFORE ADDING: Ask user for metadata if unknown!\n# \"What does this notebook contain?\"\n# \"What topics should I tag it with?\"\n\n# Add notebook to library (ALL parameters are REQUIRED!)\npython scripts\u002Frun.py notebook_manager.py add \\\n  --url \"https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...\" \\\n  --name \"Descriptive Name\" \\\n  --description \"What this notebook contains\" \\  # REQUIRED - ASK USER IF UNKNOWN!\n  --topics \"topic1,topic2,topic3\"  # REQUIRED - ASK USER IF UNKNOWN!\n\n# Search notebooks by topic\npython scripts\u002Frun.py notebook_manager.py search --query \"keyword\"\n\n# Set active notebook\npython scripts\u002Frun.py notebook_manager.py activate --id notebook-id\n\n# Remove notebook\npython scripts\u002Frun.py notebook_manager.py remove --id notebook-id\n```\n\n### Quick Workflow\n1. Check library: `python scripts\u002Frun.py notebook_manager.py list`\n2. Ask question: `python scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id ID`\n\n### Step 4: Ask Questions\n\n```bash\n# Basic query (uses active notebook if set)\npython scripts\u002Frun.py ask_question.py --question \"Your question here\"\n\n# Query specific notebook\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id notebook-id\n\n# Query with notebook URL directly\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-url \"https:\u002F\u002F...\"\n\n# Show browser for debugging\npython scripts\u002Frun.py ask_question.py --question \"...\" --show-browser\n```\n\n## Follow-Up Mechanism (CRITICAL)\n\nEvery NotebookLM answer ends with: **\"EXTREMELY IMPORTANT: Is that ALL you need to know?\"**\n\n**Required Claude Behavior:**\n1. **STOP** - Do not immediately respond to user\n2. **ANALYZE** - Compare answer to user's original request\n3. **IDENTIFY GAPS** - Determine if more information needed\n4. **ASK FOLLOW-UP** - If gaps exist, immediately ask:\n   ```bash\n   python scripts\u002Frun.py ask_question.py --question \"Follow-up with context...\"\n   ```\n5. **REPEAT** - Continue until information is complete\n6. **SYNTHESIZE** - Combine all answers before responding to user\n\n## Script Reference\n\n### Authentication Management (`auth_manager.py`)\n```bash\npython scripts\u002Frun.py auth_manager.py setup    # Initial setup (browser visible)\npython scripts\u002Frun.py auth_manager.py status   # Check authentication\npython scripts\u002Frun.py auth_manager.py reauth   # Re-authenticate (browser visible)\npython scripts\u002Frun.py auth_manager.py clear    # Clear authentication\n```\n\n### Notebook Management (`notebook_manager.py`)\n```bash\npython scripts\u002Frun.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py notebook_manager.py search --query QUERY\npython scripts\u002Frun.py notebook_manager.py activate --id ID\npython scripts\u002Frun.py notebook_manager.py remove --id ID\npython scripts\u002Frun.py notebook_manager.py stats\n```\n\n### Question Interface (`ask_question.py`)\n```bash\npython scripts\u002Frun.py ask_question.py --question \"...\" [--notebook-id ID] [--notebook-url URL] [--show-browser]\n```\n\n### Data Cleanup (`cleanup_manager.py`)\n```bash\npython scripts\u002Frun.py cleanup_manager.py                    # Preview cleanup\npython scripts\u002Frun.py cleanup_manager.py --confirm          # Execute cleanup\npython scripts\u002Frun.py cleanup_manager.py --preserve-library # Keep notebooks\n```\n\n## Environment Management\n\nThe virtual environment is automatically managed:\n- First run creates `.venv` automatically\n- Dependencies install automatically\n- Chromium browser installs automatically\n- Everything isolated in skill directory\n\nManual setup (only if automatic fails):\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate  # Linux\u002FMac\npip install -r requirements.txt\npython -m patchright install chromium\n```\n\n## Data Storage\n\nAll data stored in `~\u002F.claude\u002Fskills\u002Fnotebooklm\u002Fdata\u002F`:\n- `library.json` - Notebook metadata\n- `auth_info.json` - Authentication status\n- `browser_state\u002F` - Browser cookies and session\n\n**Security:** Protected by `.gitignore`, never commit to git.\n\n## Configuration\n\nOptional `.env` file in skill directory:\n```env\nHEADLESS=false           # Browser visibility\nSHOW_BROWSER=false       # Default browser display\nSTEALTH_ENABLED=true     # Human-like behavior\nTYPING_WPM_MIN=160       # Typing speed\nTYPING_WPM_MAX=240\nDEFAULT_NOTEBOOK_ID=     # Default notebook\n```\n\n## Decision Flow\n\n```\nUser mentions NotebookLM\n    ↓\nCheck auth → python scripts\u002Frun.py auth_manager.py status\n    ↓\nIf not authenticated → python scripts\u002Frun.py auth_manager.py setup\n    ↓\nCheck\u002FAdd notebook → python scripts\u002Frun.py notebook_manager.py list\u002Fadd (with --description)\n    ↓\nActivate notebook → python scripts\u002Frun.py notebook_manager.py activate --id ID\n    ↓\nAsk question → python scripts\u002Frun.py ask_question.py --question \"...\"\n    ↓\nSee \"Is that ALL you need?\" → Ask follow-ups until complete\n    ↓\nSynthesize and respond to user\n```\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| ModuleNotFoundError | Use `run.py` wrapper |\n| Authentication fails | Browser must be visible for setup! --show-browser |\n| Rate limit (50\u002Fday) | Wait or switch Google account |\n| Browser crashes | `python scripts\u002Frun.py cleanup_manager.py --preserve-library` |\n| Notebook not found | Check with `notebook_manager.py list` |\n\n## Best Practices\n\n1. **Always use run.py** - Handles environment automatically\n2. **Check auth first** - Before any operations\n3. **Follow-up questions** - Don't stop at first answer\n4. **Browser visible for auth** - Required for manual login\n5. **Include context** - Each question is independent\n6. **Synthesize answers** - Combine multiple responses\n\n## Limitations\n\n- No session persistence (each question = new browser)\n- Rate limits on free Google accounts (50 queries\u002Fday)\n- Manual upload required (user must add docs to NotebookLM)\n- Browser overhead (few seconds per question)\n\n## Resources (Skill Structure)\n\n**Important directories and files:**\n\n- `scripts\u002F` - All automation scripts (ask_question.py, notebook_manager.py, etc.)\n- `data\u002F` - Local storage for authentication and notebook library\n- `references\u002F` - Extended documentation:\n  - `api_reference.md` - Detailed API documentation for all scripts\n  - `troubleshooting.md` - Common issues and solutions\n  - `usage_patterns.md` - Best practices and workflow examples\n- `.venv\u002F` - Isolated Python environment (auto-created on first run)\n- `.gitignore` - Protects sensitive data from being committed\n","# NotebookLM Research Assistant Skill\n\nInteract 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.\n\n## When to Use This Skill\n\nTrigger when user:\n- Mentions NotebookLM explicitly\n- Shares NotebookLM URL (`https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...`)\n- Asks to query their notebooks\u002Fdocumentation\n- Wants to add documentation to NotebookLM library\n- Uses phrases like \"ask my NotebookLM\", \"check my docs\", \"query my notebook\"\n\n## ⚠️ CRITICAL: Add Command - Smart Discovery\n\nWhen user wants to add a notebook without providing details:\n\n**SMART ADD (Recommended)**: Query the notebook first to discover its content:\n```bash\n# Step 1: Query the notebook about its content\npython scripts\u002Frun.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]\"\n\n# Step 2: Use the discovered information to add it\npython scripts\u002Frun.py notebook_manager.py add --url \"[URL]\" --name \"[Based on content]\" --description \"[Based on content]\" --topics \"[Based on content]\"\n```\n\n**MANUAL ADD**: If user provides all details:\n- `--url` - The NotebookLM URL\n- `--name` - A descriptive name\n- `--description` - What the notebook contains (REQUIRED!)\n- `--topics` - Comma-separated topics (REQUIRED!)\n\nNEVER guess or use generic descriptions! If details missing, use Smart Add to discover them.\n\n## Critical: Always Use run.py Wrapper\n\n**NEVER call scripts directly. ALWAYS use `python scripts\u002Frun.py [script]`:**\n\n```bash\n# ✅ CORRECT - Always use run.py:\npython scripts\u002Frun.py auth_manager.py status\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py ask_question.py --question \"...\"\n\n# ❌ WRONG - Never call directly:\npython scripts\u002Fauth_manager.py status  # Fails without venv!\n```\n\nThe `run.py` wrapper automatically:\n1. Creates `.venv` if needed\n2. Installs all dependencies\n3. Activates environment\n4. Executes script properly\n\n## Core Workflow\n\n### Step 1: Check Authentication Status\n```bash\npython scripts\u002Frun.py auth_manager.py status\n```\n\nIf not authenticated, proceed to setup.\n\n### Step 2: Authenticate (One-Time Setup)\n```bash\n# Browser MUST be visible for manual Google login\npython scripts\u002Frun.py auth_manager.py setup\n```\n\n**Important:**\n- Browser is VISIBLE for authentication\n- Browser window opens automatically\n- User must manually log in to Google\n- Tell user: \"A browser window will open for Google login\"\n\n### Step 3: Manage Notebook Library\n\n```bash\n# List all notebooks\npython scripts\u002Frun.py notebook_manager.py list\n\n# BEFORE ADDING: Ask user for metadata if unknown!\n# \"What does this notebook contain?\"\n# \"What topics should I tag it with?\"\n\n# Add notebook to library (ALL parameters are REQUIRED!)\npython scripts\u002Frun.py notebook_manager.py add \\\n  --url \"https:\u002F\u002Fnotebooklm.google.com\u002Fnotebook\u002F...\" \\\n  --name \"Descriptive Name\" \\\n  --description \"What this notebook contains\" \\  # REQUIRED - ASK USER IF UNKNOWN!\n  --topics \"topic1,topic2,topic3\"  # REQUIRED - ASK USER IF UNKNOWN!\n\n# Search notebooks by topic\npython scripts\u002Frun.py notebook_manager.py search --query \"keyword\"\n\n# Set active notebook\npython scripts\u002Frun.py notebook_manager.py activate --id notebook-id\n\n# Remove notebook\npython scripts\u002Frun.py notebook_manager.py remove --id notebook-id\n```\n\n### Quick Workflow\n1. Check library: `python scripts\u002Frun.py notebook_manager.py list`\n2. Ask question: `python scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id ID`\n\n### Step 4: Ask Questions\n\n```bash\n# Basic query (uses active notebook if set)\npython scripts\u002Frun.py ask_question.py --question \"Your question here\"\n\n# Query specific notebook\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-id notebook-id\n\n# Query with notebook URL directly\npython scripts\u002Frun.py ask_question.py --question \"...\" --notebook-url \"https:\u002F\u002F...\"\n\n# Show browser for debugging\npython scripts\u002Frun.py ask_question.py --question \"...\" --show-browser\n```\n\n## Follow-Up Mechanism (CRITICAL)\n\nEvery NotebookLM answer ends with: **\"EXTREMELY IMPORTANT: Is that ALL you need to know?\"**\n\n**Required Claude Behavior:**\n1. **STOP** - Do not immediately respond to user\n2. **ANALYZE** - Compare answer to user's original request\n3. **IDENTIFY GAPS** - Determine if more information needed\n4. **ASK FOLLOW-UP** - If gaps exist, immediately ask:\n   ```bash\n   python scripts\u002Frun.py ask_question.py --question \"Follow-up with context...\"\n   ```\n5. **REPEAT** - Continue until information is complete\n6. **SYNTHESIZE** - Combine all answers before responding to user\n\n## Script Reference\n\n### Authentication Management (`auth_manager.py`)\n```bash\npython scripts\u002Frun.py auth_manager.py setup    # Initial setup (browser visible)\npython scripts\u002Frun.py auth_manager.py status   # Check authentication\npython scripts\u002Frun.py auth_manager.py reauth   # Re-authenticate (browser visible)\npython scripts\u002Frun.py auth_manager.py clear    # Clear authentication\n```\n\n### Notebook Management (`notebook_manager.py`)\n```bash\npython scripts\u002Frun.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS\npython scripts\u002Frun.py notebook_manager.py list\npython scripts\u002Frun.py notebook_manager.py search --query QUERY\npython scripts\u002Frun.py notebook_manager.py activate --id ID\npython scripts\u002Frun.py notebook_manager.py remove --id ID\npython scripts\u002Frun.py notebook_manager.py stats\n```\n\n### Question Interface (`ask_question.py`)\n```bash\npython scripts\u002Frun.py ask_question.py --question \"...\" [--notebook-id ID] [--notebook-url URL] [--show-browser]\n```\n\n### Data Cleanup (`cleanup_manager.py`)\n```bash\npython scripts\u002Frun.py cleanup_manager.py                    # Preview cleanup\npython scripts\u002Frun.py cleanup_manager.py --confirm          # Execute cleanup\npython scripts\u002Frun.py cleanup_manager.py --preserve-library # Keep notebooks\n```\n\n## Environment Management\n\nThe virtual environment is automatically managed:\n- First run creates `.venv` automatically\n- Dependencies install automatically\n- Chromium browser installs automatically\n- Everything isolated in skill directory\n\nManual setup (only if automatic fails):\n```bash\npython -m venv .venv\nsource .venv\u002Fbin\u002Factivate  # Linux\u002FMac\npip install -r requirements.txt\npython -m patchright install chromium\n```\n\n## Data Storage\n\nAll data stored in `~\u002F.claude\u002Fskills\u002Fnotebooklm\u002Fdata\u002F`:\n- `library.json` - Notebook metadata\n- `auth_info.json` - Authentication status\n- `browser_state\u002F` - Browser cookies and session\n\n**Security:** Protected by `.gitignore`, never commit to git.\n\n## Configuration\n\nOptional `.env` file in skill directory:\n```env\nHEADLESS=false           # Browser visibility\nSHOW_BROWSER=false       # Default browser display\nSTEALTH_ENABLED=true     # Human-like behavior\nTYPING_WPM_MIN=160       # Typing speed\nTYPING_WPM_MAX=240\nDEFAULT_NOTEBOOK_ID=     # Default notebook\n```\n\n## Decision Flow\n\n```\nUser mentions NotebookLM\n    ↓\nCheck auth → python scripts\u002Frun.py auth_manager.py status\n    ↓\nIf not authenticated → python scripts\u002Frun.py auth_manager.py setup\n    ↓\nCheck\u002FAdd notebook → python scripts\u002Frun.py notebook_manager.py list\u002Fadd (with --description)\n    ↓\nActivate notebook → python scripts\u002Frun.py notebook_manager.py activate --id ID\n    ↓\nAsk question → python scripts\u002Frun.py ask_question.py --question \"...\"\n    ↓\nSee \"Is that ALL you need?\" → Ask follow-ups until complete\n    ↓\nSynthesize and respond to user\n```\n\n## Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| ModuleNotFoundError | Use `run.py` wrapper |\n| Authentication fails | Browser must be visible for setup! --show-browser |\n| Rate limit (50\u002Fday) | Wait or switch Google account |\n| Browser crashes | `python scripts\u002Frun.py cleanup_manager.py --preserve-library` |\n| Notebook not found | Check with `notebook_manager.py list` |\n\n## Best Practices\n\n1. **Always use run.py** - Handles environment automatically\n2. **Check auth first** - Before any operations\n3. **Follow-up questions** - Don't stop at first answer\n4. **Browser visible for auth** - Required for manual login\n5. **Include context** - Each question is independent\n6. **Synthesize answers** - Combine multiple responses\n\n## Limitations\n\n- No session persistence (each question = new browser)\n- Rate limits on free Google accounts (50 queries\u002Fday)\n- Manual upload required (user must add docs to NotebookLM)\n- Browser overhead (few seconds per question)\n\n## Resources (Skill Structure)\n\n**Important directories and files:**\n\n- `scripts\u002F` - All automation scripts (ask_question.py, notebook_manager.py, etc.)\n- `data\u002F` - Local storage for authentication and notebook library\n- `references\u002F` - Extended documentation:\n  - `api_reference.md` - Detailed API documentation for all scripts\n  - `troubleshooting.md` - Common issues and solutions\n  - `usage_patterns.md` - Best practices and workflow examples\n- `.venv\u002F` - Isolated Python environment (auto-created on first run)\n- `.gitignore` - Protects sensitive data from being committed\n",{"name":5,"risk":31,"source":35,"date_added":41,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fnotebooklm","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill notebooklm",{"tool":54,"command":55},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill notebooklm",{"tool":57,"command":58},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill notebooklm","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002FSKILL.md",true,[62,68,74,78,84,88,92,96,100,104,108,114,118,122,126,130,134,138,142,146],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},".gitignore","OTHER","其他",723,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002F.gitignore",{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"AUTHENTICATION.md","REFERENCE","参考文档",5729,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002FAUTHENTICATION.md",{"path":75,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":76,"sourceHtmlUrl":77},"CHANGELOG.md",1774,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002FCHANGELOG.md",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"images\u002Fexample_notebookchat.png","ASSET","资产文件",137552,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fimages\u002Fexample_notebookchat.png",{"path":85,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":16},"LICENSE","许可证",1072,{"path":89,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":90,"sourceHtmlUrl":91},"README.md",15901,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002FREADME.md",{"path":93,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fapi_reference.md",7630,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Freferences\u002Fapi_reference.md",{"path":97,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Ftroubleshooting.md",8994,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Freferences\u002Ftroubleshooting.md",{"path":101,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Fusage_patterns.md",9574,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Freferences\u002Fusage_patterns.md",{"path":105,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":106,"sourceHtmlUrl":107},"requirements.txt",325,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Frequirements.txt",{"path":109,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":112,"sourceHtmlUrl":113},"scripts\u002F__init__.py","SCRIPT","脚本",2627,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002F__init__.py",{"path":115,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":116,"sourceHtmlUrl":117},"scripts\u002Fask_question.py",8196,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fask_question.py",{"path":119,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":120,"sourceHtmlUrl":121},"scripts\u002Fauth_manager.py",11903,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fauth_manager.py",{"path":123,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":124,"sourceHtmlUrl":125},"scripts\u002Fbrowser_session.py",8969,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fbrowser_session.py",{"path":127,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":128,"sourceHtmlUrl":129},"scripts\u002Fbrowser_utils.py",3491,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fbrowser_utils.py",{"path":131,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":132,"sourceHtmlUrl":133},"scripts\u002Fcleanup_manager.py",9777,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fcleanup_manager.py",{"path":135,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":136,"sourceHtmlUrl":137},"scripts\u002Fconfig.py",1228,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fconfig.py",{"path":139,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":140,"sourceHtmlUrl":141},"scripts\u002Fnotebook_manager.py",13843,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fnotebook_manager.py",{"path":143,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":144,"sourceHtmlUrl":145},"scripts\u002Frun.py",2967,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Frun.py",{"path":147,"resourceType":110,"resourceTypeDesc":111,"sizeBytes":148,"sourceHtmlUrl":149},"scripts\u002Fsetup_environment.py",7168,"https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fnotebooklm\u002Fscripts\u002Fsetup_environment.py",[151,174,199,209,222,241],{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":162,"publishedAt":36},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[157],{"categoryNo":158,"categoryName":159,"taxonomyType":160,"taxonomyTypeDesc":161},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[163,164,165,166,167,168,169,170,171,172,173,21],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":36},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[181,182,183,184,185,186,165,187,188,189,190,191,192,193,194,26,195,196,197,198],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","install","read","across","api",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":205,"publishedAt":36},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[206,207,181,192,193,194,26,185,165,196,208,197,198,191,189,188,187,195,186,184],"trend radar","radar","pulse",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":215,"publishedAt":36},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[216,217,218,219,220,221],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":223,"name":224,"nameZh":6,"description":225,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":233,"publishedAt":36},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[228],{"categoryNo":229,"categoryName":230,"taxonomyType":231,"taxonomyTypeDesc":232},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[224,171,234,235,236,21,192,237,238,239,183,240,195],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":242,"name":243,"nameZh":6,"description":244,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":245,"categories":246,"keywords":247,"publishedAt":36},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[243,248,249,250,195,251,238,252,253,254,255,256],"status","play","go","latest","github","discover","control","cmd","volume"]