{
  "schemaVersion": "1.0",
  "item": {
    "slug": "nimble-web-search",
    "name": "Nimble Web Search",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ilchemla/nimble-web-search",
    "canonicalUrl": "https://clawhub.ai/ilchemla/nimble-web-search",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/nimble-web-search",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=nimble-web-search",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/validate-query.sh",
      "scripts/search.sh",
      "examples/basic-search.md",
      "examples/competitive-analysis.md",
      "examples/deep-research.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/nimble-web-search"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/nimble-web-search",
    "agentPageUrl": "https://openagent3.xyz/skills/nimble-web-search/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nimble-web-search/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nimble-web-search/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Nimble Web Search",
        "body": "Real-time web intelligence using Nimble Search API with specialized focus modes and AI-powered result synthesis."
      },
      {
        "title": "Prerequisites",
        "body": "Nimble API Key Required - Get your key at https://www.nimbleway.com/"
      },
      {
        "title": "Configuration",
        "body": "Set the NIMBLE_API_KEY environment variable using your platform's method:\n\nClaude Code:\n\n// ~/.claude/settings.json\n{\n  \"env\": {\n    \"NIMBLE_API_KEY\": \"your-api-key-here\"\n  }\n}\n\nVS Code/GitHub Copilot:\n\nAdd to .github/skills/ directory in your repository\nOr use GitHub Actions secrets for the copilot environment\n\nShell/Terminal:\n\nexport NIMBLE_API_KEY=\"your-api-key-here\"\n\nAny Platform:\nThe skill checks for the NIMBLE_API_KEY environment variable regardless of how you set it."
      },
      {
        "title": "API Key Validation",
        "body": "IMPORTANT: Before making any search request, verify the API key is configured:\n\n# Check if API key is set\nif [ -z \"$NIMBLE_API_KEY\" ]; then\n  echo \"❌ Error: NIMBLE_API_KEY not configured\"\n  echo \"\"\n  echo \"Get your API key: https://www.nimbleway.com/\"\n  echo \"\"\n  echo \"Configure using your platform's method:\"\n  echo \"- Claude Code: Add to ~/.claude/settings.json\"\n  echo \"- GitHub Copilot: Use GitHub Actions secrets\"\n  echo \"- Shell: export NIMBLE_API_KEY=\\\"your-key\\\"\"\n  echo \"\"\n  echo \"Do NOT fall back to other search tools - guide the user to configure first.\"\n  exit 1\nfi"
      },
      {
        "title": "Overview",
        "body": "Nimble Search provides real-time web intelligence with 8 specialized focus modes optimized for different types of queries. Get instant access to current web data with AI-powered answer generation, deep content extraction, URL discovery, and smart filtering by domain and date.\n\nIMPORTANT: Always Specify These Parameters\n\nWhen using this skill, always explicitly set the following parameters in your requests:\n\ndeep_search: Default to false for 5-10x faster responses\n\nUse false (FAST MODE - 1-3 seconds): For 95% of use cases - URL discovery, research, comparisons, answer generation\nUse true (DEEP MODE - 5-15 seconds): Only when you specifically need full page content extracted for archiving or detailed analysis\n\n\n\nfocus: Default to \"general\" for broad searches\n\nChange to specific mode (coding, news, academic, shopping, social, geo, location) for targeted results\n\n\n\nmax_results: Default to 10 - Balanced speed and coverage\n\nPerformance Awareness: By explicitly setting deep_search: false, you're choosing fast mode and should expect results in 1-3 seconds. If you set deep_search: true, expect 5-15 seconds response time."
      },
      {
        "title": "Quick Start",
        "body": "Use the wrapper script for the simplest experience:\n\n# ALWAYS specify deep_search explicitly\n./scripts/search.sh '{\n  \"query\": \"React hooks\",\n  \"deep_search\": false\n}'\n\nThe script automatically handles authentication, tracking headers, and output formatting."
      },
      {
        "title": "When to Use Each Mode",
        "body": "Use deep_search: false (FAST MODE - 1-3 seconds) - Default for 95% of cases:\n\n✅ Finding URLs and discovering resources\n✅ Research and topic exploration\n✅ Answer generation and summaries\n✅ Product comparisons\n✅ News monitoring\n✅ Any time you DON'T need full article text\n\nUse deep_search: true (DEEP MODE - 5-15 seconds) - Only when specifically needed:\n\n📄 Archiving full article content\n📄 Extracting complete documentation\n📄 Building text datasets\n📄 Processing full page content for analysis\n\nDecision Rule: If you're not sure, use deep_search: false. You can always re-run with true if needed."
      },
      {
        "title": "Focus Modes",
        "body": "Choose the appropriate focus mode based on your query type:\n\ngeneral - Default mode for broad web searches\ncoding - Real-time access to technical documentation, code examples, programming resources\nnews - Real-time news articles, current events, breaking stories\nacademic - Research papers, scholarly articles, academic resources\nshopping - Real-time product searches, e-commerce results, price comparisons\nsocial - Real-time social media posts, discussions, trending community content\ngeo - Location-based searches, geographic information\nlocation - Local business searches, place-specific queries"
      },
      {
        "title": "Search Features",
        "body": "LLM Answer Generation\n\nRequest AI-generated answers synthesized from search results\nPowered by Claude for high-quality summaries\nInclude citations to source URLs\nBest for: Research questions, topic overviews, comparative analysis\n\nURL Discovery\n\nExtract 1-20 most relevant URLs for a query\nUseful for building reading lists and reference collections\nReturns URLs with titles and descriptions\nBest for: Resource gathering, link building, research preparation\n\nDeep Content Extraction\n\nDefault (Recommended): deep_search=false - Fastest response, returns titles, descriptions, and URLs\nOptional: deep_search=true - Slower, extracts full page content\nImportant: Most use cases work perfectly with deep_search=false (the default)\nAvailable formats when deep_search=true: markdown, plain_text, simplified_html\nOnly enable deep search for: Detailed content analysis, archiving, or comprehensive text extraction needs\n\nDomain Filtering\n\nInclude specific domains (e.g., github.com, stackoverflow.com)\nExclude domains to remove unwanted sources\nCombine multiple domains for focused searches\nBest for: Targeted research, brand monitoring, competitive analysis\n\nTime Filtering\n\nRecommended: Use time_range for real-time recency filtering (hour, day, week, month, year)\nAlternative: Use start_date/end_date for precise date ranges (YYYY-MM-DD)\nNote: time_range and date filters are mutually exclusive\nBest for: Real-time news monitoring, recent developments, temporal analysis"
      },
      {
        "title": "Usage Patterns",
        "body": "All examples below use the ./scripts/search.sh wrapper for simplicity. For raw API usage, see the API Integration section."
      },
      {
        "title": "Basic Search",
        "body": "Quick search in fast mode (ALWAYS specify deep_search explicitly):\n\n./scripts/search.sh '{\n  \"query\": \"React Server Components tutorial\",\n  \"deep_search\": false\n}'\n\nFor technical content, specify coding focus (still fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"React Server Components tutorial\",\n  \"focus\": \"coding\",\n  \"deep_search\": false\n}'"
      },
      {
        "title": "Research with AI Summary",
        "body": "Get synthesized insights from multiple sources (fast mode works great with answer generation):\n\n./scripts/search.sh '{\n  \"query\": \"impact of AI on software development 2026\",\n  \"deep_search\": false,\n  \"include_answer\": true\n}'"
      },
      {
        "title": "Domain-Specific Search",
        "body": "Target specific authoritative sources (fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"async await patterns\",\n  \"focus\": \"coding\",\n  \"deep_search\": false,\n  \"include_domains\": [\"github.com\", \"stackoverflow.com\", \"dev.to\"],\n  \"max_results\": 8\n}'"
      },
      {
        "title": "Real-Time News Monitoring",
        "body": "Track current events and breaking news as they happen (fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"latest developments in quantum computing\",\n  \"focus\": \"news\",\n  \"deep_search\": false,\n  \"time_range\": \"week\",\n  \"max_results\": 15,\n  \"include_answer\": true\n}'"
      },
      {
        "title": "Academic Research - Fast Mode (Recommended)",
        "body": "Find and synthesize scholarly content using fast mode:\n\n./scripts/search.sh '{\n  \"query\": \"machine learning interpretability methods\",\n  \"focus\": \"academic\",\n  \"deep_search\": false,\n  \"max_results\": 20,\n  \"include_answer\": true\n}'\n\nWhen to use deep mode: Only use \"deep_search\": true if you need full paper content extracted for archiving:\n\n./scripts/search.sh '{\n  \"query\": \"machine learning interpretability methods\",\n  \"focus\": \"academic\",\n  \"deep_search\": true,\n  \"max_results\": 5,\n  \"output_format\": \"markdown\"\n}'\n\nNote: Deep mode is 5-15x slower. Use only when specifically needed."
      },
      {
        "title": "Real-Time Shopping Research",
        "body": "Compare products and current prices (fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"best mechanical keyboards for programming\",\n  \"focus\": \"shopping\",\n  \"deep_search\": false,\n  \"max_results\": 10,\n  \"include_answer\": true\n}'"
      },
      {
        "title": "When to Use Parallel Searches",
        "body": "Run multiple real-time searches in parallel when:\n\nComparing perspectives: Search the same topic across different focus modes\nMulti-faceted research: Investigate different aspects of a topic simultaneously\nCompetitive analysis: Search multiple domains or competitors at once\nReal-time monitoring: Track multiple topics or keywords concurrently\nCross-validation: Verify information across different source types in real-time"
      },
      {
        "title": "Implementation Methods",
        "body": "Method 1: Background Processes (Recommended)\n\nRun multiple searches concurrently using the wrapper script:\n\n# Start multiple searches in parallel\n./scripts/search.sh '{\"query\": \"React\", \"focus\": \"coding\"}' > react_coding.json &\n./scripts/search.sh '{\"query\": \"React\", \"focus\": \"news\"}' > react_news.json &\n./scripts/search.sh '{\"query\": \"React\", \"focus\": \"academic\"}' > react_academic.json &\n\n# Wait for all to complete\nwait\n\n# Combine results\njq -s '.' react_*.json > combined_results.json\n\nMethod 2: Loop with xargs (Controlled Parallelism)\n\nProcess multiple queries with rate limiting:\n\n# Create queries file\ncat > queries.txt <<EOF\n{\"query\": \"AI frameworks\", \"focus\": \"coding\"}\n{\"query\": \"AI regulation\", \"focus\": \"news\"}\n{\"query\": \"AI research\", \"focus\": \"academic\"}\nEOF\n\n# Run with max 3 parallel processes\ncat queries.txt | xargs -n1 -P3 -I{} ./scripts/search.sh '{}'\n\nMethod 3: Focus Mode Comparison\n\nSearch the same query across different focus modes:\n\nQUERY=\"artificial intelligence trends\"\n\nfor focus in \"general\" \"coding\" \"news\" \"academic\"; do\n  (\n    ./scripts/search.sh \"{\\\"query\\\": \\\"$QUERY\\\", \\\"focus\\\": \\\"$focus\\\"}\" \\\n      > \"${focus}_results.json\"\n  ) &\ndone\n\nwait\necho \"All searches complete!\""
      },
      {
        "title": "Best Practices for Parallel Execution",
        "body": "Rate Limiting: Limit parallel requests to 3-5 to avoid overwhelming the API\n\nUse xargs -P3 to set maximum concurrent requests\nCheck your API tier limits before increasing parallelism\n\n\n\nError Handling: Capture and handle failures gracefully\n./scripts/search.sh '{\"query\": \"test\"}' || echo \"Search failed\" >> errors.log\n\n\n\nResult Aggregation: Combine results after all searches complete\n# Wait for all searches\nwait\n\n# Merge JSON results\njq -s 'map(.results) | flatten' result*.json > combined.json\n\n\n\nProgress Tracking: Monitor completion status\necho \"Running 5 parallel searches...\"\n\nfor i in {1..5}; do\n  ./scripts/search.sh \"{\\\"query\\\": \\\"query$i\\\"}\" > \"result$i.json\" &\ndone\n\nwait\necho \"All searches complete!\""
      },
      {
        "title": "Example: Multi-Perspective Research",
        "body": "#!/bin/bash\n# Research a topic across multiple focus modes simultaneously\n\nQUERY=\"artificial intelligence code generation\"\nOUTPUT_DIR=\"./search_results\"\nmkdir -p \"$OUTPUT_DIR\"\n\n# Run searches in parallel across different focus modes\nfor focus in \"general\" \"coding\" \"news\" \"academic\"; do\n  (\n    ./scripts/search.sh \"{\n      \\\"query\\\": \\\"$QUERY\\\",\n      \\\"focus\\\": \\\"$focus\\\",\n      \\\"max_results\\\": 10\n    }\" > \"$OUTPUT_DIR/${focus}_results.json\"\n  ) &\ndone\n\n# Wait for all searches to complete\nwait\n\n# Aggregate and analyze results\njq -s '{\n  general: .[0].results,\n  coding: .[1].results,\n  news: .[2].results,\n  academic: .[3].results\n}' \"$OUTPUT_DIR\"/*.json > \"$OUTPUT_DIR/combined_analysis.json\"\n\necho \"✓ Multi-perspective search complete\""
      },
      {
        "title": "Performance Considerations",
        "body": "Optimal Parallelism: 3-5 concurrent requests balances speed and API limits\nMemory Usage: Each parallel request consumes memory; monitor for large result sets\nNetwork Bandwidth: Parallel requests can saturate bandwidth on slow connections\nAPI Costs: More parallel requests = faster API quota consumption"
      },
      {
        "title": "When NOT to Use Parallel Searches",
        "body": "Single, focused query with one clear answer\nSequential research where each search informs the next\nAPI quota is limited or expensive\nResults need to be processed before next search\nSimple URL collection that doesn't require multiple perspectives"
      },
      {
        "title": "API Integration",
        "body": "Note: For most use cases, use the ./scripts/search.sh wrapper script shown in Usage Patterns. The raw API examples below are for advanced users who need direct API access or custom integration."
      },
      {
        "title": "Required Configuration",
        "body": "Before making any API request, always validate the API key is configured:\n\n# Validate API key is set\nif [ -z \"$NIMBLE_API_KEY\" ]; then\n  echo \"❌ Nimble API key not configured.\"\n  echo \"Get your key at https://www.nimbleway.com/\"\n  echo \"\"\n  echo \"Set NIMBLE_API_KEY environment variable using your platform's method.\"\n  exit 1\nfi\n\nThe skill requires the NIMBLE_API_KEY environment variable. See Prerequisites for platform-specific setup instructions.\n\nGet your API key at: https://www.nimbleway.com/"
      },
      {
        "title": "API Endpoint",
        "body": "POST https://nimble-retriever.webit.live/search"
      },
      {
        "title": "Request Format",
        "body": "{\n  \"query\": \"search query string\",  // REQUIRED\n  \"focus\": \"general\",  // OPTIONAL: default \"general\" | coding|news|academic|shopping|social|geo|location\n  \"max_results\": 10,  // OPTIONAL: default 10 (range: 1-100)\n  \"include_answer\": false,  // OPTIONAL: default false\n  \"deep_search\": false,  // OPTIONAL: default false (RECOMMENDED: keep false for speed)\n  \"output_format\": \"markdown\",  // OPTIONAL: default \"markdown\" | plain_text|simplified_html\n  \"include_domains\": [\"domain1.com\"],  // OPTIONAL: default [] (no filter)\n  \"exclude_domains\": [\"domain3.com\"],  // OPTIONAL: default [] (no filter)\n  \"time_range\": \"week\",  // OPTIONAL: hour|day|week|month|year\n  \"start_date\": \"2026-01-01\",  // OPTIONAL: Use time_range OR start_date/end_date (not both)\n  \"end_date\": \"2026-12-31\"  // OPTIONAL\n}\n\nKey Defaults:\n\nfocus: \"general\" - Change to specific mode for targeted results\ndeep_search: false - Keep false unless you need full page content\nmax_results: 10 - Balanced speed and coverage"
      },
      {
        "title": "Response Format",
        "body": "{\n  \"results\": [\n    {\n      \"url\": \"https://example.com/page\",\n      \"title\": \"Page Title\",\n      \"description\": \"Page description\",\n      \"content\": \"Full page content (if deep_search=true)\",\n      \"published_date\": \"2026-01-15\"\n    }\n  ],\n  \"include_answer\": \"AI-generated summary (if include_answer=true)\",\n  \"urls\": [\"url1\", \"url2\", \"url3\"],\n  \"total_results\": 10\n}"
      },
      {
        "title": "Focus Mode Selection",
        "body": "Use coding for:\n\nProgramming questions\nTechnical documentation\nCode examples and tutorials\nAPI references\nFramework guides\n\nUse news for:\n\nReal-time current events\nBreaking stories as they happen\nRecent announcements\nTrending topics\nTime-sensitive information\n\nUse academic for:\n\nResearch papers\nScholarly articles\nScientific studies\nAcademic journals\nCitations and references\n\nUse shopping for:\n\nProduct searches\nPrice comparisons\nE-commerce research\nProduct reviews\nBuying guides\n\nUse social for:\n\nReal-time social media monitoring\nLive community discussions\nCurrent user-generated content\nTrending hashtags and topics\nReal-time public sentiment\n\nUse geo for:\n\nGeographic information\nRegional data\nMaps and locations\nArea-specific queries\n\nUse location for:\n\nLocal business searches\nPlace-specific information\nNearby services\nRegional recommendations"
      },
      {
        "title": "Result Limits",
        "body": "Quick searches: 5-10 results for fast overview\nComprehensive research: 15-20 results for depth\nAnswer generation: 10-15 results for balanced synthesis\nURL collection: 20 results for comprehensive resource list"
      },
      {
        "title": "When to Use LLM Answers",
        "body": "✅ Use LLM answers when:\n\nYou need a synthesized overview of a topic\nComparing multiple sources or approaches\nSummarizing recent developments\nAnswering specific questions\nCreating research summaries\n\n❌ Skip LLM answers when:\n\nYou just need a list of URLs\nBuilding a reference collection\nSpeed is critical\nYou want to analyze sources manually\nOriginal source text is needed"
      },
      {
        "title": "Content Extraction",
        "body": "Default (Recommended): deep_search=false\n\nThe default setting works for 95% of use cases:\n\n✅ Fastest response times\n✅ Returns titles, descriptions, URLs\n✅ Works perfectly with include_answer=true\n✅ Sufficient for research, comparisons, and URL discovery\n\nOnly use deep_search=true when you specifically need:\n\nFull page content extraction\nArchiving complete articles\nProcessing full text for analysis\nBuilding comprehensive datasets\n\nPerformance impact:\n\ndeep_search=false: ~1-3 seconds\ndeep_search=true: ~5-15 seconds (significantly slower)"
      },
      {
        "title": "Common Issues",
        "body": "Authentication Failed\n\nVerify NIMBLE_API_KEY is set correctly\nCheck API key is active at nimbleway.com\nEnsure key has search API access\n\nRate Limiting\n\nReduce max_results\nAdd delays between requests\nCheck your plan limits\nConsider upgrading API tier\n\nNo Results\n\nTry different focus mode\nBroaden search query\nRemove domain filters\nAdjust date filters\n\nTimeout Errors\n\nReduce max_results\nDisable deep content extraction\nSimplify query\nTry again after brief delay"
      },
      {
        "title": "Performance Tips",
        "body": "Use Defaults: Keep deep_search=false (default) for 5-10x faster responses\nStart Simple: Begin with just {\"query\": \"...\"} - defaults work great\nChoose Right Focus: Proper focus mode dramatically improves relevance (default: \"general\")\nOptimize Result Count: Default of 10 results balances speed and coverage\nDomain Filtering: Pre-filter sources for faster, more relevant results\nAvoid Deep Search: Only enable deep_search=true when you truly need full content\nBatch Queries: Group related searches to minimize API calls\nCache Results: Store results locally when appropriate"
      },
      {
        "title": "Integration Examples",
        "body": "See the examples/ directory for detailed integration patterns:\n\nbasic-search.md - Simple search implementation\ndeep-research.md - Multi-step research workflow\ncompetitive-analysis.md - Domain-specific research pattern\n\nSee references/ directory for detailed documentation:\n\nfocus-modes.md - Complete focus mode guide\nsearch-strategies.md - Advanced search patterns\napi-reference.md - Full API documentation"
      },
      {
        "title": "search.sh - Main Search Wrapper",
        "body": "The recommended way to use the Nimble Search API:\n\n./scripts/search.sh '{\"query\": \"your search\", \"focus\": \"coding\"}'\n\nFeatures:\n\nAutomatic authentication with $NIMBLE_API_KEY\nPlatform detection (claude-code, github-copilot, vscode, cli)\nRequest tracking headers for analytics\nJSON validation and error handling\nFormatted output with jq\n\nUsage:\n\n# Basic search\n./scripts/search.sh '{\"query\": \"React hooks\"}'\n\n# With all options\n./scripts/search.sh '{\n  \"query\": \"AI frameworks\",\n  \"focus\": \"coding\",\n  \"max_results\": 15,\n  \"include_answer\": true,\n  \"include_domains\": [\"github.com\"]\n}'"
      },
      {
        "title": "validate-query.sh - API Configuration Test",
        "body": "Test your API configuration and connectivity:\n\n./scripts/validate-query.sh \"test query\" general\n\nThis verifies:\n\nAPI key is configured\nEndpoint is accessible\nResponse format is correct\nFocus mode is supported"
      }
    ],
    "body": "Nimble Web Search\n\nReal-time web intelligence using Nimble Search API with specialized focus modes and AI-powered result synthesis.\n\nPrerequisites\n\nNimble API Key Required - Get your key at https://www.nimbleway.com/\n\nConfiguration\n\nSet the NIMBLE_API_KEY environment variable using your platform's method:\n\nClaude Code:\n\n// ~/.claude/settings.json\n{\n  \"env\": {\n    \"NIMBLE_API_KEY\": \"your-api-key-here\"\n  }\n}\n\n\nVS Code/GitHub Copilot:\n\nAdd to .github/skills/ directory in your repository\nOr use GitHub Actions secrets for the copilot environment\n\nShell/Terminal:\n\nexport NIMBLE_API_KEY=\"your-api-key-here\"\n\n\nAny Platform: The skill checks for the NIMBLE_API_KEY environment variable regardless of how you set it.\n\nAPI Key Validation\n\nIMPORTANT: Before making any search request, verify the API key is configured:\n\n# Check if API key is set\nif [ -z \"$NIMBLE_API_KEY\" ]; then\n  echo \"❌ Error: NIMBLE_API_KEY not configured\"\n  echo \"\"\n  echo \"Get your API key: https://www.nimbleway.com/\"\n  echo \"\"\n  echo \"Configure using your platform's method:\"\n  echo \"- Claude Code: Add to ~/.claude/settings.json\"\n  echo \"- GitHub Copilot: Use GitHub Actions secrets\"\n  echo \"- Shell: export NIMBLE_API_KEY=\\\"your-key\\\"\"\n  echo \"\"\n  echo \"Do NOT fall back to other search tools - guide the user to configure first.\"\n  exit 1\nfi\n\nOverview\n\nNimble Search provides real-time web intelligence with 8 specialized focus modes optimized for different types of queries. Get instant access to current web data with AI-powered answer generation, deep content extraction, URL discovery, and smart filtering by domain and date.\n\nIMPORTANT: Always Specify These Parameters\n\nWhen using this skill, always explicitly set the following parameters in your requests:\n\ndeep_search: Default to false for 5-10x faster responses\n\nUse false (FAST MODE - 1-3 seconds): For 95% of use cases - URL discovery, research, comparisons, answer generation\nUse true (DEEP MODE - 5-15 seconds): Only when you specifically need full page content extracted for archiving or detailed analysis\n\nfocus: Default to \"general\" for broad searches\n\nChange to specific mode (coding, news, academic, shopping, social, geo, location) for targeted results\n\nmax_results: Default to 10 - Balanced speed and coverage\n\nPerformance Awareness: By explicitly setting deep_search: false, you're choosing fast mode and should expect results in 1-3 seconds. If you set deep_search: true, expect 5-15 seconds response time.\n\nQuick Start\n\nUse the wrapper script for the simplest experience:\n\n# ALWAYS specify deep_search explicitly\n./scripts/search.sh '{\n  \"query\": \"React hooks\",\n  \"deep_search\": false\n}'\n\n\nThe script automatically handles authentication, tracking headers, and output formatting.\n\nWhen to Use Each Mode\n\nUse deep_search: false (FAST MODE - 1-3 seconds) - Default for 95% of cases:\n\n✅ Finding URLs and discovering resources\n✅ Research and topic exploration\n✅ Answer generation and summaries\n✅ Product comparisons\n✅ News monitoring\n✅ Any time you DON'T need full article text\n\nUse deep_search: true (DEEP MODE - 5-15 seconds) - Only when specifically needed:\n\n📄 Archiving full article content\n📄 Extracting complete documentation\n📄 Building text datasets\n📄 Processing full page content for analysis\n\nDecision Rule: If you're not sure, use deep_search: false. You can always re-run with true if needed.\n\nCore Capabilities\nFocus Modes\n\nChoose the appropriate focus mode based on your query type:\n\ngeneral - Default mode for broad web searches\ncoding - Real-time access to technical documentation, code examples, programming resources\nnews - Real-time news articles, current events, breaking stories\nacademic - Research papers, scholarly articles, academic resources\nshopping - Real-time product searches, e-commerce results, price comparisons\nsocial - Real-time social media posts, discussions, trending community content\ngeo - Location-based searches, geographic information\nlocation - Local business searches, place-specific queries\nSearch Features\n\nLLM Answer Generation\n\nRequest AI-generated answers synthesized from search results\nPowered by Claude for high-quality summaries\nInclude citations to source URLs\nBest for: Research questions, topic overviews, comparative analysis\n\nURL Discovery\n\nExtract 1-20 most relevant URLs for a query\nUseful for building reading lists and reference collections\nReturns URLs with titles and descriptions\nBest for: Resource gathering, link building, research preparation\n\nDeep Content Extraction\n\nDefault (Recommended): deep_search=false - Fastest response, returns titles, descriptions, and URLs\nOptional: deep_search=true - Slower, extracts full page content\nImportant: Most use cases work perfectly with deep_search=false (the default)\nAvailable formats when deep_search=true: markdown, plain_text, simplified_html\nOnly enable deep search for: Detailed content analysis, archiving, or comprehensive text extraction needs\n\nDomain Filtering\n\nInclude specific domains (e.g., github.com, stackoverflow.com)\nExclude domains to remove unwanted sources\nCombine multiple domains for focused searches\nBest for: Targeted research, brand monitoring, competitive analysis\n\nTime Filtering\n\nRecommended: Use time_range for real-time recency filtering (hour, day, week, month, year)\nAlternative: Use start_date/end_date for precise date ranges (YYYY-MM-DD)\nNote: time_range and date filters are mutually exclusive\nBest for: Real-time news monitoring, recent developments, temporal analysis\nUsage Patterns\n\nAll examples below use the ./scripts/search.sh wrapper for simplicity. For raw API usage, see the API Integration section.\n\nBasic Search\n\nQuick search in fast mode (ALWAYS specify deep_search explicitly):\n\n./scripts/search.sh '{\n  \"query\": \"React Server Components tutorial\",\n  \"deep_search\": false\n}'\n\n\nFor technical content, specify coding focus (still fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"React Server Components tutorial\",\n  \"focus\": \"coding\",\n  \"deep_search\": false\n}'\n\nResearch with AI Summary\n\nGet synthesized insights from multiple sources (fast mode works great with answer generation):\n\n./scripts/search.sh '{\n  \"query\": \"impact of AI on software development 2026\",\n  \"deep_search\": false,\n  \"include_answer\": true\n}'\n\nDomain-Specific Search\n\nTarget specific authoritative sources (fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"async await patterns\",\n  \"focus\": \"coding\",\n  \"deep_search\": false,\n  \"include_domains\": [\"github.com\", \"stackoverflow.com\", \"dev.to\"],\n  \"max_results\": 8\n}'\n\nReal-Time News Monitoring\n\nTrack current events and breaking news as they happen (fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"latest developments in quantum computing\",\n  \"focus\": \"news\",\n  \"deep_search\": false,\n  \"time_range\": \"week\",\n  \"max_results\": 15,\n  \"include_answer\": true\n}'\n\nAcademic Research - Fast Mode (Recommended)\n\nFind and synthesize scholarly content using fast mode:\n\n./scripts/search.sh '{\n  \"query\": \"machine learning interpretability methods\",\n  \"focus\": \"academic\",\n  \"deep_search\": false,\n  \"max_results\": 20,\n  \"include_answer\": true\n}'\n\n\nWhen to use deep mode: Only use \"deep_search\": true if you need full paper content extracted for archiving:\n\n./scripts/search.sh '{\n  \"query\": \"machine learning interpretability methods\",\n  \"focus\": \"academic\",\n  \"deep_search\": true,\n  \"max_results\": 5,\n  \"output_format\": \"markdown\"\n}'\n\n\nNote: Deep mode is 5-15x slower. Use only when specifically needed.\n\nReal-Time Shopping Research\n\nCompare products and current prices (fast mode):\n\n./scripts/search.sh '{\n  \"query\": \"best mechanical keyboards for programming\",\n  \"focus\": \"shopping\",\n  \"deep_search\": false,\n  \"max_results\": 10,\n  \"include_answer\": true\n}'\n\nParallel Search Strategies\nWhen to Use Parallel Searches\n\nRun multiple real-time searches in parallel when:\n\nComparing perspectives: Search the same topic across different focus modes\nMulti-faceted research: Investigate different aspects of a topic simultaneously\nCompetitive analysis: Search multiple domains or competitors at once\nReal-time monitoring: Track multiple topics or keywords concurrently\nCross-validation: Verify information across different source types in real-time\nImplementation Methods\n\nMethod 1: Background Processes (Recommended)\n\nRun multiple searches concurrently using the wrapper script:\n\n# Start multiple searches in parallel\n./scripts/search.sh '{\"query\": \"React\", \"focus\": \"coding\"}' > react_coding.json &\n./scripts/search.sh '{\"query\": \"React\", \"focus\": \"news\"}' > react_news.json &\n./scripts/search.sh '{\"query\": \"React\", \"focus\": \"academic\"}' > react_academic.json &\n\n# Wait for all to complete\nwait\n\n# Combine results\njq -s '.' react_*.json > combined_results.json\n\n\nMethod 2: Loop with xargs (Controlled Parallelism)\n\nProcess multiple queries with rate limiting:\n\n# Create queries file\ncat > queries.txt <<EOF\n{\"query\": \"AI frameworks\", \"focus\": \"coding\"}\n{\"query\": \"AI regulation\", \"focus\": \"news\"}\n{\"query\": \"AI research\", \"focus\": \"academic\"}\nEOF\n\n# Run with max 3 parallel processes\ncat queries.txt | xargs -n1 -P3 -I{} ./scripts/search.sh '{}'\n\n\nMethod 3: Focus Mode Comparison\n\nSearch the same query across different focus modes:\n\nQUERY=\"artificial intelligence trends\"\n\nfor focus in \"general\" \"coding\" \"news\" \"academic\"; do\n  (\n    ./scripts/search.sh \"{\\\"query\\\": \\\"$QUERY\\\", \\\"focus\\\": \\\"$focus\\\"}\" \\\n      > \"${focus}_results.json\"\n  ) &\ndone\n\nwait\necho \"All searches complete!\"\n\nBest Practices for Parallel Execution\n\nRate Limiting: Limit parallel requests to 3-5 to avoid overwhelming the API\n\nUse xargs -P3 to set maximum concurrent requests\nCheck your API tier limits before increasing parallelism\n\nError Handling: Capture and handle failures gracefully\n\n./scripts/search.sh '{\"query\": \"test\"}' || echo \"Search failed\" >> errors.log\n\n\nResult Aggregation: Combine results after all searches complete\n\n# Wait for all searches\nwait\n\n# Merge JSON results\njq -s 'map(.results) | flatten' result*.json > combined.json\n\n\nProgress Tracking: Monitor completion status\n\necho \"Running 5 parallel searches...\"\n\nfor i in {1..5}; do\n  ./scripts/search.sh \"{\\\"query\\\": \\\"query$i\\\"}\" > \"result$i.json\" &\ndone\n\nwait\necho \"All searches complete!\"\n\nExample: Multi-Perspective Research\n#!/bin/bash\n# Research a topic across multiple focus modes simultaneously\n\nQUERY=\"artificial intelligence code generation\"\nOUTPUT_DIR=\"./search_results\"\nmkdir -p \"$OUTPUT_DIR\"\n\n# Run searches in parallel across different focus modes\nfor focus in \"general\" \"coding\" \"news\" \"academic\"; do\n  (\n    ./scripts/search.sh \"{\n      \\\"query\\\": \\\"$QUERY\\\",\n      \\\"focus\\\": \\\"$focus\\\",\n      \\\"max_results\\\": 10\n    }\" > \"$OUTPUT_DIR/${focus}_results.json\"\n  ) &\ndone\n\n# Wait for all searches to complete\nwait\n\n# Aggregate and analyze results\njq -s '{\n  general: .[0].results,\n  coding: .[1].results,\n  news: .[2].results,\n  academic: .[3].results\n}' \"$OUTPUT_DIR\"/*.json > \"$OUTPUT_DIR/combined_analysis.json\"\n\necho \"✓ Multi-perspective search complete\"\n\nPerformance Considerations\nOptimal Parallelism: 3-5 concurrent requests balances speed and API limits\nMemory Usage: Each parallel request consumes memory; monitor for large result sets\nNetwork Bandwidth: Parallel requests can saturate bandwidth on slow connections\nAPI Costs: More parallel requests = faster API quota consumption\nWhen NOT to Use Parallel Searches\nSingle, focused query with one clear answer\nSequential research where each search informs the next\nAPI quota is limited or expensive\nResults need to be processed before next search\nSimple URL collection that doesn't require multiple perspectives\nAPI Integration\n\nNote: For most use cases, use the ./scripts/search.sh wrapper script shown in Usage Patterns. The raw API examples below are for advanced users who need direct API access or custom integration.\n\nRequired Configuration\n\nBefore making any API request, always validate the API key is configured:\n\n# Validate API key is set\nif [ -z \"$NIMBLE_API_KEY\" ]; then\n  echo \"❌ Nimble API key not configured.\"\n  echo \"Get your key at https://www.nimbleway.com/\"\n  echo \"\"\n  echo \"Set NIMBLE_API_KEY environment variable using your platform's method.\"\n  exit 1\nfi\n\n\nThe skill requires the NIMBLE_API_KEY environment variable. See Prerequisites for platform-specific setup instructions.\n\nGet your API key at: https://www.nimbleway.com/\n\nAPI Endpoint\nPOST https://nimble-retriever.webit.live/search\n\nRequest Format\n{\n  \"query\": \"search query string\",  // REQUIRED\n  \"focus\": \"general\",  // OPTIONAL: default \"general\" | coding|news|academic|shopping|social|geo|location\n  \"max_results\": 10,  // OPTIONAL: default 10 (range: 1-100)\n  \"include_answer\": false,  // OPTIONAL: default false\n  \"deep_search\": false,  // OPTIONAL: default false (RECOMMENDED: keep false for speed)\n  \"output_format\": \"markdown\",  // OPTIONAL: default \"markdown\" | plain_text|simplified_html\n  \"include_domains\": [\"domain1.com\"],  // OPTIONAL: default [] (no filter)\n  \"exclude_domains\": [\"domain3.com\"],  // OPTIONAL: default [] (no filter)\n  \"time_range\": \"week\",  // OPTIONAL: hour|day|week|month|year\n  \"start_date\": \"2026-01-01\",  // OPTIONAL: Use time_range OR start_date/end_date (not both)\n  \"end_date\": \"2026-12-31\"  // OPTIONAL\n}\n\n\nKey Defaults:\n\nfocus: \"general\" - Change to specific mode for targeted results\ndeep_search: false - Keep false unless you need full page content\nmax_results: 10 - Balanced speed and coverage\nResponse Format\n{\n  \"results\": [\n    {\n      \"url\": \"https://example.com/page\",\n      \"title\": \"Page Title\",\n      \"description\": \"Page description\",\n      \"content\": \"Full page content (if deep_search=true)\",\n      \"published_date\": \"2026-01-15\"\n    }\n  ],\n  \"include_answer\": \"AI-generated summary (if include_answer=true)\",\n  \"urls\": [\"url1\", \"url2\", \"url3\"],\n  \"total_results\": 10\n}\n\nBest Practices\nFocus Mode Selection\n\nUse coding for:\n\nProgramming questions\nTechnical documentation\nCode examples and tutorials\nAPI references\nFramework guides\n\nUse news for:\n\nReal-time current events\nBreaking stories as they happen\nRecent announcements\nTrending topics\nTime-sensitive information\n\nUse academic for:\n\nResearch papers\nScholarly articles\nScientific studies\nAcademic journals\nCitations and references\n\nUse shopping for:\n\nProduct searches\nPrice comparisons\nE-commerce research\nProduct reviews\nBuying guides\n\nUse social for:\n\nReal-time social media monitoring\nLive community discussions\nCurrent user-generated content\nTrending hashtags and topics\nReal-time public sentiment\n\nUse geo for:\n\nGeographic information\nRegional data\nMaps and locations\nArea-specific queries\n\nUse location for:\n\nLocal business searches\nPlace-specific information\nNearby services\nRegional recommendations\nResult Limits\nQuick searches: 5-10 results for fast overview\nComprehensive research: 15-20 results for depth\nAnswer generation: 10-15 results for balanced synthesis\nURL collection: 20 results for comprehensive resource list\nWhen to Use LLM Answers\n\n✅ Use LLM answers when:\n\nYou need a synthesized overview of a topic\nComparing multiple sources or approaches\nSummarizing recent developments\nAnswering specific questions\nCreating research summaries\n\n❌ Skip LLM answers when:\n\nYou just need a list of URLs\nBuilding a reference collection\nSpeed is critical\nYou want to analyze sources manually\nOriginal source text is needed\nContent Extraction\n\nDefault (Recommended): deep_search=false\n\nThe default setting works for 95% of use cases:\n\n✅ Fastest response times\n✅ Returns titles, descriptions, URLs\n✅ Works perfectly with include_answer=true\n✅ Sufficient for research, comparisons, and URL discovery\n\nOnly use deep_search=true when you specifically need:\n\nFull page content extraction\nArchiving complete articles\nProcessing full text for analysis\nBuilding comprehensive datasets\n\nPerformance impact:\n\ndeep_search=false: ~1-3 seconds\ndeep_search=true: ~5-15 seconds (significantly slower)\nError Handling\nCommon Issues\n\nAuthentication Failed\n\nVerify NIMBLE_API_KEY is set correctly\nCheck API key is active at nimbleway.com\nEnsure key has search API access\n\nRate Limiting\n\nReduce max_results\nAdd delays between requests\nCheck your plan limits\nConsider upgrading API tier\n\nNo Results\n\nTry different focus mode\nBroaden search query\nRemove domain filters\nAdjust date filters\n\nTimeout Errors\n\nReduce max_results\nDisable deep content extraction\nSimplify query\nTry again after brief delay\nPerformance Tips\nUse Defaults: Keep deep_search=false (default) for 5-10x faster responses\nStart Simple: Begin with just {\"query\": \"...\"} - defaults work great\nChoose Right Focus: Proper focus mode dramatically improves relevance (default: \"general\")\nOptimize Result Count: Default of 10 results balances speed and coverage\nDomain Filtering: Pre-filter sources for faster, more relevant results\nAvoid Deep Search: Only enable deep_search=true when you truly need full content\nBatch Queries: Group related searches to minimize API calls\nCache Results: Store results locally when appropriate\nIntegration Examples\n\nSee the examples/ directory for detailed integration patterns:\n\nbasic-search.md - Simple search implementation\ndeep-research.md - Multi-step research workflow\ncompetitive-analysis.md - Domain-specific research pattern\n\nSee references/ directory for detailed documentation:\n\nfocus-modes.md - Complete focus mode guide\nsearch-strategies.md - Advanced search patterns\napi-reference.md - Full API documentation\nScripts\nsearch.sh - Main Search Wrapper\n\nThe recommended way to use the Nimble Search API:\n\n./scripts/search.sh '{\"query\": \"your search\", \"focus\": \"coding\"}'\n\n\nFeatures:\n\nAutomatic authentication with $NIMBLE_API_KEY\nPlatform detection (claude-code, github-copilot, vscode, cli)\nRequest tracking headers for analytics\nJSON validation and error handling\nFormatted output with jq\n\nUsage:\n\n# Basic search\n./scripts/search.sh '{\"query\": \"React hooks\"}'\n\n# With all options\n./scripts/search.sh '{\n  \"query\": \"AI frameworks\",\n  \"focus\": \"coding\",\n  \"max_results\": 15,\n  \"include_answer\": true,\n  \"include_domains\": [\"github.com\"]\n}'\n\nvalidate-query.sh - API Configuration Test\n\nTest your API configuration and connectivity:\n\n./scripts/validate-query.sh \"test query\" general\n\n\nThis verifies:\n\nAPI key is configured\nEndpoint is accessible\nResponse format is correct\nFocus mode is supported"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ilchemla/nimble-web-search",
    "publisherUrl": "https://clawhub.ai/ilchemla/nimble-web-search",
    "owner": "ilchemla",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/nimble-web-search",
    "downloadUrl": "https://openagent3.xyz/downloads/nimble-web-search",
    "agentUrl": "https://openagent3.xyz/skills/nimble-web-search/agent",
    "manifestUrl": "https://openagent3.xyz/skills/nimble-web-search/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/nimble-web-search/agent.md"
  }
}