web-search
Skill969 starsChanged 6 months agoMITView on GitHub
Real-time web search using Playwright-controlled browser. Use this skill when you need current information, latest documentation, recent news, or any data beyond your knowledge cutoff (January 2025).
- Installs packages
- Sends data out
81 other projects use a version of this, 2 of them edited.
Adopted by
Most recently taken up by
- Suge8/friedbuntheir own version, first seen Nov 8, 2026
- Kianzzz/Zhouxing-skill-publictheir own version, first seen Nov 8, 2026
- alibaba-damo-academy/ScholarSeedtheir own version, first seen Nov 8, 2026
- delorenj/skillstheir own version, first seen Nov 7, 2026
- FishRaposo/aria-agenttheir own version, first seen Nov 1, 2026
- usestring/string-claude-plugintheir own version, first seen Nov 1, 2026
Used with
Projects with it also use Video Generation, VLM and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
huang-x-hSkillVideo Generation
Implement AI-powered video generation capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to generate videos from text prompts or images, create video content programmatically, or build applications that produce video outputs. Supports asynchronous task management with status polling and result retrieval.
Also in 6 projects that use this
huang-x-hSkillVLM
Implement vision-based AI chat capabilities using the z-ai-web-dev-sdk. Use this skill when the user needs to analyze images, describe visual content, or create applications that combine image understanding with conversational AI. Supports image URLs and base64 encoded images for multimodal interactions.
Also in 6 projects that use this
dav-niu474Skillgift-evaluator
The PRIMARY tool for Spring Festival gift analysis and social interaction generation. Use this skill when users upload photos of gifts (alcohol, tea, supplements, etc.) to inquire about their value, authenticity, or how to respond socially. Integrates visual perception, market valuation, and HTML card generation.
Also in 5 projects that use this
dav-niu474SkillPodcast Generate
Generate podcast episodes from user-provided content or by searching the web for specified topics. If user uploads a text file/article, creates a dual-host dialogue podcast (or single-host upon request). If no content is provided, searches the web for information about the user-specified topic and generates a podcast. Duration scales with content size (3-20 minutes, ~240 chars/min). Uses z-ai-web-dev-sdk for LLM script generation and TTS audio synthesis. Outputs both a podcast script (Markdown) and a complete audio file (WAV).
Also in 5 projects that use this
- +1 more from huang-x-h
- +7 more from dav-niu474
Other versions81 projects use a version of this.
Word for word · 0
None found.
Edited · 2
- netease-youdao/LobsterAI★ 6.2k100% same
- rongxinzy/RongxinAI★ 16294% same
Wrote their own version · 79
- jjyaoao/HelloAgents★ 3.2ksame name
- digitalinnovationone/dio-agent★ 2.8ksame name
- Xxiii8322766509/NagaAgent★ 1.5ksame name
- RTGS2017/NagaAgent★ 1.5ksame name
- fastclaw-ai/fastclaw★ 1.4ksame name
- bear2u/my-skills★ 931same name
- OpenMinis/MinisSkills★ 602same name
- tmustier/pi-for-excel★ 444same name
- claude-office-skills/skills★ 433same name
- pasky/pi-amplike★ 235same name
69 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository28 other files it gives its agents.
- AGENTS.mdAGENTS.md
- article-writerSkill
- canvas-designSkill
- content-plannerSkill
- create-planSkill
- daily-trendingSkill
- develop-web-gameSkill
- docxSkill
- films-searchSkill
- frontend-designSkill
- imap-smtp-emailSkill
- local-toolsSkill
- music-searchSkill
- pdfSkill
- playwrightSkill
- pptxSkill
- remotion-best-practicesSkill
- seedanceSkill
- seedreamSkill
- skill-creatorSkill
- skill-vetterSkill
- stock-analyzerSkill
- stock-announcementsSkill
- stock-explorerSkill
- technology-searchSkill
- weatherSkill
- xlsxSkill
- youdaonoteSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. 0 are common, 16 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 64 edited versions we read keep these.
16
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Use the web-search skill when you need:
- Distinctive: line 17
Fact verification: - Check current status of projects, companies, or technologies
- Distinctive: line 20
Troubleshooting: - Search for specific error messages or solutions
- Very specific: line 52
IMPORTANT: Always use the $SKILLS_ROOT environment variable to locate the skill scripts.
- Distinctive: line 183
Don't request more than needed (faster + less noise)
- Distinctive: line 187
If search fails, verify the server is running:
- Very specific: line 256
If manual start needed: bash SKILLs/web-search/scripts/start-server.sh
- Distinctive: line 298
Verify page loads manually at bing.com
- Distinctive: line 356
Batch searches: - If multiple searches needed, do them consecutively to reuse connection
- Distinctive: line 364
No network exposure: - Not accessible from other machines
- Distinctive: line 366
Visible operations: - All browser actions shown in visible window (transparent)
- Distinctive: line 371
Search queries go through Google and/or Bing depending on availability
- Distinctive: line 373
No local storage of search history by the skill
- Distinctive: line 380
No CAPTCHA handling: - If Google or Bing shows CAPTCHA, user must solve manually
- Distinctive: line 424
If all else fails, full reset:
- Distinctive: line 510
Parse results carefully: - Don't just copy-paste, synthesize information
- Distinctive: line 513
Explain limitations: - If search doesn't find good results, tell user
- Distinctive: line 515
Check result dates: - Prefer recent articles for current info
- Very specific: line 553
Check .server.log for errors
- Very specific: line 554
Run basic test: node SKILLs/web-search/scripts/test-basic.js
“Common” is measured: kept by at least 6 in 10 of the 64 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Web Search Skill
When to Use This Skill
Use the web-search skill when you need:
- Current information - Events, news, or data after January 2025
- Latest documentation - Up-to-date framework/library docs (React 19, Next.js 15, etc.)
- Real-time data - Stock prices, weather, sports scores, etc.
- Fact verification - Check current status of projects, companies, or technologies
- Recent discussions - Community opinions, GitHub issues, Stack Overflow answers
- Product comparisons - Latest reviews and comparisons
- Troubleshooting - Search for specific error messages or solutions
Examples of when to use:
- User: "What are the new features in React 19?"
- User: "Search for the latest Next.js App Router documentation"
- User: "What's the current status of the Rust async project?"
- User: "Find recent discussions about Vue 3 performance"
How It Works
┌──────────┐ Bash ┌─────────┐ HTTP ┌──────────────┐ CDP ┌────────┐
│ Claude │───────────▶│ CLI.sh │───────────▶│ Bridge Server│──────────▶│ Chrome │
│ │ │ │ │ (localhost) │ Playwright│ │
└──────────┘ └─────────┘ └──────────────┘ └────────┘
│
▼
Google/Bing Search
Extract ResultsArchitecture:
- CLI Script - Simple bash interface for Claude
- Bridge Server - Express HTTP API (auto-started by Electron)
- Playwright Manager - Browser connection and session management
- Search Engine Layer - Google primary, Bing fallback
- Chrome Browser - Visible browser window (all operations transparent)
Basic Usage
Simple Search (Recommended)
IMPORTANT: Always use the $SKILLS_ROOT environment variable to locate the skill scripts. This ensures the skill works in both development and production environments.
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "search query" [max_results]For non-ASCII queries (Chinese/Japanese/etc.), prefer UTF-8 file input to avoid shell encoding issues on Windows:
cat > /tmp/web-query.txt <<'TXT'
苹果 Siri AI 2026 发布计划
TXT
bash "$SKILLS_ROOT/web-search/scripts/search.sh" @/tmp/web-query.txt 10Examples:
# Search with default 10 results
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "TypeScript 5.0 new features"
# Limit to 5 results
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "React Server Components guide" 5
# Search for recent news
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "AI news January 2026" 10Output Format:
The script returns Markdown-formatted results:
# Search Results: TypeScript 5.0 new features
**Query:** TypeScript 5.0 new features
**Results:** 5
**Time:** 834ms
---
## TypeScript 5.0 Release Notes
**URL:** [https://www.typescriptlang.org/docs/...]
TypeScript 5.0 introduces decorators, const type parameters...
---
## (More results...)Workflow Example
# 1. Search for topic
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "Next.js 14 features" 5
# 2. Analyze results and answer user
# 3. Follow-up search if needed
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "Next.js Server Actions tutorial" 3Advanced Usage
Server Management
The Bridge Server is automatically managed by Electron. You typically don't need to start/stop it manually.
However, for manual control:
# Start server (if not already running)
bash "$SKILLS_ROOT/web-search/scripts/start-server.sh"
# Stop server
bash "$SKILLS_ROOT/web-search/scripts/stop-server.sh"
# Check health (start script will print endpoint status)
bash "$SKILLS_ROOT/web-search/scripts/start-server.sh"Direct API Calls
For advanced use cases, you can call the HTTP API directly:
# Get or create connection
CONNECTION_ID=$(curl -s -X POST http://127.0.0.1:8923/api/browser/connect \
-H "Content-Type: application/json" \
-d '{}' | grep -o '"connectionId":"[^"]*"' | cut -d'"' -f4)
# Perform search
curl -X POST http://127.0.0.1:8923/api/search \
-H "Content-Type: application/json" \
-d "{
\"connectionId\": \"$CONNECTION_ID\",
\"query\": \"Playwright tutorial\",
\"maxResults\": 5
}"
# Navigate to specific URL
curl -X POST http://127.0.0.1:8923/api/page/navigate \
-H "Content-Type: application/json" \
-d "{
\"connectionId\": \"$CONNECTION_ID\",
\"url\": \"https://example.com\"
}"
# Take screenshot
curl -X POST http://127.0.0.1:8923/api/page/screenshot \
-H "Content-Type: application/json" \
-d "{
\"connectionId\": \"$CONNECTION_ID\",
\"format\": \"png\"
}"Best Practices
1. Use Specific Queries
❌ Bad: bash scripts/search.sh "react"
✅ Good: bash scripts/search.sh "React 19 new features and breaking changes"
2. Limit Results Appropriately
- Quick lookup: 3-5 results
- Comprehensive research: 10 results
- Don't request more than needed (faster + less noise)
3. Check Server Status First
If search fails, verify the server is running:
bash "$SKILLS_ROOT/web-search/scripts/start-server.sh" || echo "Server not running"4. Reuse Connections
The CLI script automatically caches connections. Multiple searches in the same session will reuse the same browser connection for better performance.
5. Clean Output
Parse the Markdown output to extract key information for the user. Don't just dump all results - synthesize and summarize.
Common Patterns
Pattern 1: Latest Documentation
# User asks about latest framework features
bash SKILLs/web-search/scripts/search.sh "Next.js 15 documentation" 5
# Parse results, find official docs, summarize featuresPattern 2: Troubleshooting
# User reports an error
bash SKILLs/web-search/scripts/search.sh "TypeError: Cannot read property of undefined React" 5
# Find Stack Overflow answers and GitHub issues, provide solutionPattern 3: Current Events
# User asks about recent news
bash SKILLs/web-search/scripts/search.sh "AI developments January 2026" 10
# Summarize key news items from resultsPattern 4: Comparison Research
# User wants to compare technologies
bash SKILLs/web-search/scripts/search.sh "Vue 3 vs React 18 performance 2026" 5
# Synthesize comparison from multiple sourcesPattern 5: API/Library Usage
# User needs specific API documentation
bash SKILLs/web-search/scripts/search.sh "Playwright page.evaluate examples" 5
# Extract code examples and usage patternsError Handling
Server Not Running
Error: ✗ Bridge Server is not running
Solution:
- The server should auto-start with Electron
- If manual start needed:
bash SKILLs/web-search/scripts/start-server.sh - Check logs:
cat SKILLs/web-search/.server.log
Browser Launch Failed
Error: Failed to launch browser
Cause: Chrome not installed or not found
Solution:
- macOS: Install from https://www.google.com/chrome/
- Linux:
sudo apt install chromium-browser - Windows: Install from https://www.google.com/chrome/
Connection Timeout
Error: CDP port not ready or Connection timeout
Solution:
# Stop server
bash SKILLs/web-search/scripts/stop-server.sh
# Clear cache
rm SKILLs/web-search/.connection
# Restart
bash SKILLs/web-search/scripts/start-server.shNo Search Results
Error: Found 0 results
Possible causes:
- Query too specific or unusual
- Bing changed page structure (rare)
- Network issues
Solution:
- Try broader query
- Check internet connection
- Verify page loads manually at bing.com
Search Timeout
Error: Search failed: timeout
Solution:
- Check internet connection
- Reduce max results
- Try again (might be temporary network issue)
Understanding Results
Result Structure
Each search result contains:
## [Title of Result]
**URL:** [https://example.com/page]
[Snippet/description from search results]Fields:
- Title - Page/article title
- URL - Direct link (may include Bing tracking)
- Snippet - Preview text from the page
Parsing Results
The search output is Markdown. Extract:
- Total results count
- Search duration
- Individual result titles and URLs
- Snippets for context
Result Quality
- Official docs - Usually appear in top 3 results
- Stack Overflow - Appears for technical questions
- Recent articles - Bing prioritizes recent content
- Chinese content - Bing works well in China, includes Chinese sources
Performance Considerations
Typical Latencies
- Server startup: ~2 seconds (one-time, auto-started)
- Browser launch: ~3 seconds (one-time, persists across searches)
- First search: ~2-3 seconds (includes browser connection setup)
- Subsequent searches: ~1 second (browser and connection reused)
Optimization Tips
- Browser persistence - The browser stays alive across searches by default. Connections and pages are reused automatically. Set
WEB_SEARCH_CLEANUP=1to close the browser after each search if needed. - Limit results - Request only what you need (5-10 is usually enough)
- Batch searches - If multiple searches needed, do them consecutively to reuse connection
- Specific queries - More specific = faster and better results
Security and Privacy
Security Measures
- Localhost only - Bridge Server binds to 127.0.0.1 (no external access)
- No network exposure - Not accessible from other machines
- Isolated browser - Uses separate Chrome profile, won't affect user's main browser
- Visible operations - All browser actions shown in visible window (transparent)
- No credentials - Skill never handles passwords or sensitive data
Privacy Considerations
- Search queries go through Google and/or Bing depending on availability
- Google/Bing may track searches (their standard privacy policies apply)
- No local storage of search history by the skill
- User can observe all browser activity in real-time
Limitations
Current Limitations
- No CAPTCHA handling - If Google or Bing shows CAPTCHA, user must solve manually
- Engine availability varies by network/region - Auto mode falls back between Google and Bing
- English/Chinese focus - Optimized for English and Chinese results
- Basic extraction - Extracts titles and snippets, not full page content
- No authentication - Cannot search pages requiring login
Not Suitable For
- Searches requiring authentication
- Filling out forms or submitting data
- Actions requiring CAPTCHA solving (unless user manually solves)
- Mass scraping or automated bulk searches
- Accessing pages behind paywalls
Troubleshooting Guide
Quick Diagnostics
# 1. Check server health
curl http://127.0.0.1:8923/api/health
# 2. Check server logs
cat SKILLs/web-search/.server.log | tail -50
# 3. Test basic search
bash SKILLs/web-search/scripts/search.sh "test" 1
# 4. Check Chrome installation
which google-chrome || which chromium || which chromium-browserCommon Issues
| Issue | Symptom | Solution |
| Server down | Connection refused | Start server or restart Electron |
| Browser missing | Chrome not found | Install Chrome/Chromium |
| Port conflict | Address already in use | Stop conflicting process on port 8923 |
| Stale connection | Connection not found | Remove .connection cache file |
| Network issue | Search timeout | Check internet connection |
Reset Everything
If all else fails, full reset:
cd SKILLs/web-search
# Stop server
bash scripts/stop-server.sh
# Clean cache and state
rm -f .connection .server.pid .server.log
# Rebuild
npm run build
# Restart
bash scripts/start-server.sh
# Test
bash scripts/search.sh "test" 1Examples for Claude
Example 1: User Asks About Latest Framework
User: "What are the new features in Next.js 15?"
Claude's approach:
# Search for Next.js 15 features
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "Next.js 15 new features" 5Then: Parse results, identify official Next.js blog/docs, summarize key features for user.
Example 2: Troubleshooting Error
User: "I'm getting 'Cannot find module' error in TypeScript"
Claude's approach:
# Search for the specific error
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "TypeScript Cannot find module error solution" 5Then: Extract solutions from Stack Overflow results, provide step-by-step fix.
Example 3: Current Events
User: "What happened in AI this month?"
Claude's approach:
# Search for recent AI news
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "AI news January 2026" 10Then: Synthesize news from multiple sources, provide summary of key events.
Example 4: Documentation Lookup
User: "How do I use React Server Components?"
Claude's approach:
# Search for RSC documentation and tutorials
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "React Server Components guide tutorial" 5Then: Find official React docs and good tutorials, explain with examples.
Example 5: Comparison Research
User: "Should I use Vite or webpack in 2026?"
Claude's approach:
# Search for recent comparisons
bash "$SKILLS_ROOT/web-search/scripts/search.sh" "Vite vs webpack 2026 comparison" 5Then: Analyze multiple perspectives, provide balanced recommendation.
Tips for Effective Use
- Be specific in queries - Include version numbers, dates, or specific aspects
- Parse results carefully - Don't just copy-paste, synthesize information
- Verify with multiple sources - Cross-check important information
- Cite sources - Tell user which sources you're using
- Explain limitations - If search doesn't find good results, tell user
- Use follow-up searches - One search might not be enough, do multiple if needed
- Check result dates - Prefer recent articles for current info
- Look for official sources - Prioritize official docs and authoritative sources
Technical Details
Technologies Used
- Playwright Core - Browser automation framework
- Chrome DevTools Protocol - Low-level browser control
- Express.js - HTTP API server
- Google + Bing Search - Multi-engine fallback search strategy
- Bash Scripts - Simple CLI interface
System Requirements
- Node.js 18+
- Google Chrome or Chromium installed
- Internet connection for searches
- ~100MB RAM for Bridge Server
- ~200MB RAM for Chrome instance
File Locations
- Server:
SKILLs/web-search/dist/server/index.js - Logs:
SKILLs/web-search/.server.log - PID:
SKILLs/web-search/.server.pid - Connection cache:
SKILLs/web-search/.connection
Additional Resources
- Full documentation:
SKILLs/web-search/README.md - Usage examples:
SKILLs/web-search/examples/basic-search.md - API reference: See README.md for complete API documentation
- Troubleshooting: See examples/basic-search.md
Support
For issues:
- Check
.server.logfor errors - Run basic test:
node SKILLs/web-search/scripts/test-basic.js - Verify Chrome installation
- Check internet connection
- Review troubleshooting section above
Remember: This skill provides real-time access to current information. Use it whenever users need information beyond your knowledge cutoff or when accuracy of current data is important.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

