Install
openclaw skills install nimble-web-searchReal-time web intelligence powered by Nimble Search API. Perform intelligent web searches with 8 specialized focus modes (general, coding, news, academic, shopping, social, geo, location). This skill provides real-time search results when you need to search the web, find current information, discover URLs, research topics, or gather up-to-date data. Use when: searching for information, finding recent news, looking up academic papers, searching for coding examples, finding shopping results, discovering social media posts, researching topics, or getting latest real-time data.
openclaw skills install nimble-web-searchReal-time web intelligence using Nimble Search API with specialized focus modes and AI-powered result synthesis.
Nimble API Key Required - Get your key at https://www.nimbleway.com/
Set the NIMBLE_API_KEY environment variable using your platform's method:
Claude Code:
// ~/.claude/settings.json
{
"env": {
"NIMBLE_API_KEY": "your-api-key-here"
}
}
VS Code/GitHub Copilot:
.github/skills/ directory in your repositoryShell/Terminal:
export NIMBLE_API_KEY="your-api-key-here"
Any Platform:
The skill checks for the NIMBLE_API_KEY environment variable regardless of how you set it.
IMPORTANT: Before making any search request, verify the API key is configured:
# Check if API key is set
if [ -z "$NIMBLE_API_KEY" ]; then
echo "❌ Error: NIMBLE_API_KEY not configured"
echo ""
echo "Get your API key: https://www.nimbleway.com/"
echo ""
echo "Configure using your platform's method:"
echo "- Claude Code: Add to ~/.claude/settings.json"
echo "- GitHub Copilot: Use GitHub Actions secrets"
echo "- Shell: export NIMBLE_API_KEY=\"your-key\""
echo ""
echo "Do NOT fall back to other search tools - guide the user to configure first."
exit 1
fi
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.
IMPORTANT: Always Specify These Parameters
When using this skill, always explicitly set the following parameters in your requests:
deep_search: Default to false for 5-10x faster responses
false (FAST MODE - 1-3 seconds): For 95% of use cases - URL discovery, research, comparisons, answer generationtrue (DEEP MODE - 5-15 seconds): Only when you specifically need full page content extracted for archiving or detailed analysisfocus: Default to "general" for broad searches
coding, news, academic, shopping, social, geo, location) for targeted resultsmax_results: Default to 10 - Balanced speed and coverage
Performance 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.
Use the wrapper script for the simplest experience:
# ALWAYS specify deep_search explicitly
./scripts/search.sh '{
"query": "React hooks",
"deep_search": false
}'
The script automatically handles authentication, tracking headers, and output formatting.
Use deep_search: false (FAST MODE - 1-3 seconds) - Default for 95% of cases:
Use deep_search: true (DEEP MODE - 5-15 seconds) - Only when specifically needed:
Decision Rule: If you're not sure, use deep_search: false. You can always re-run with true if needed.
Choose the appropriate focus mode based on your query type:
LLM Answer Generation
URL Discovery
Deep Content Extraction
deep_search=false - Fastest response, returns titles, descriptions, and URLsdeep_search=true - Slower, extracts full page contentdeep_search=false (the default)Domain Filtering
Time Filtering
time_range for real-time recency filtering (hour, day, week, month, year)start_date/end_date for precise date ranges (YYYY-MM-DD)time_range and date filters are mutually exclusiveAll examples below use the ./scripts/search.sh wrapper for simplicity. For raw API usage, see the API Integration section.
Quick search in fast mode (ALWAYS specify deep_search explicitly):
./scripts/search.sh '{
"query": "React Server Components tutorial",
"deep_search": false
}'
For technical content, specify coding focus (still fast mode):
./scripts/search.sh '{
"query": "React Server Components tutorial",
"focus": "coding",
"deep_search": false
}'
Get synthesized insights from multiple sources (fast mode works great with answer generation):
./scripts/search.sh '{
"query": "impact of AI on software development 2026",
"deep_search": false,
"include_answer": true
}'
Target specific authoritative sources (fast mode):
./scripts/search.sh '{
"query": "async await patterns",
"focus": "coding",
"deep_search": false,
"include_domains": ["github.com", "stackoverflow.com", "dev.to"],
"max_results": 8
}'
Track current events and breaking news as they happen (fast mode):
./scripts/search.sh '{
"query": "latest developments in quantum computing",
"focus": "news",
"deep_search": false,
"time_range": "week",
"max_results": 15,
"include_answer": true
}'
Find and synthesize scholarly content using fast mode:
./scripts/search.sh '{
"query": "machine learning interpretability methods",
"focus": "academic",
"deep_search": false,
"max_results": 20,
"include_answer": true
}'
When to use deep mode: Only use "deep_search": true if you need full paper content extracted for archiving:
./scripts/search.sh '{
"query": "machine learning interpretability methods",
"focus": "academic",
"deep_search": true,
"max_results": 5,
"output_format": "markdown"
}'
Note: Deep mode is 5-15x slower. Use only when specifically needed.
Compare products and current prices (fast mode):
./scripts/search.sh '{
"query": "best mechanical keyboards for programming",
"focus": "shopping",
"deep_search": false,
"max_results": 10,
"include_answer": true
}'
Run multiple real-time searches in parallel when:
Method 1: Background Processes (Recommended)
Run multiple searches concurrently using the wrapper script:
# Start multiple searches in parallel
./scripts/search.sh '{"query": "React", "focus": "coding"}' > react_coding.json &
./scripts/search.sh '{"query": "React", "focus": "news"}' > react_news.json &
./scripts/search.sh '{"query": "React", "focus": "academic"}' > react_academic.json &
# Wait for all to complete
wait
# Combine results
jq -s '.' react_*.json > combined_results.json
Method 2: Loop with xargs (Controlled Parallelism)
Process multiple queries with rate limiting:
# Create queries file
cat > queries.txt <<EOF
{"query": "AI frameworks", "focus": "coding"}
{"query": "AI regulation", "focus": "news"}
{"query": "AI research", "focus": "academic"}
EOF
# Run with max 3 parallel processes
cat queries.txt | xargs -n1 -P3 -I{} ./scripts/search.sh '{}'
Method 3: Focus Mode Comparison
Search the same query across different focus modes:
QUERY="artificial intelligence trends"
for focus in "general" "coding" "news" "academic"; do
(
./scripts/search.sh "{\"query\": \"$QUERY\", \"focus\": \"$focus\"}" \
> "${focus}_results.json"
) &
done
wait
echo "All searches complete!"
Rate Limiting: Limit parallel requests to 3-5 to avoid overwhelming the API
xargs -P3 to set maximum concurrent requestsError Handling: Capture and handle failures gracefully
./scripts/search.sh '{"query": "test"}' || echo "Search failed" >> errors.log
Result Aggregation: Combine results after all searches complete
# Wait for all searches
wait
# Merge JSON results
jq -s 'map(.results) | flatten' result*.json > combined.json
Progress Tracking: Monitor completion status
echo "Running 5 parallel searches..."
for i in {1..5}; do
./scripts/search.sh "{\"query\": \"query$i\"}" > "result$i.json" &
done
wait
echo "All searches complete!"
#!/bin/bash
# Research a topic across multiple focus modes simultaneously
QUERY="artificial intelligence code generation"
OUTPUT_DIR="./search_results"
mkdir -p "$OUTPUT_DIR"
# Run searches in parallel across different focus modes
for focus in "general" "coding" "news" "academic"; do
(
./scripts/search.sh "{
\"query\": \"$QUERY\",
\"focus\": \"$focus\",
\"max_results\": 10
}" > "$OUTPUT_DIR/${focus}_results.json"
) &
done
# Wait for all searches to complete
wait
# Aggregate and analyze results
jq -s '{
general: .[0].results,
coding: .[1].results,
news: .[2].results,
academic: .[3].results
}' "$OUTPUT_DIR"/*.json > "$OUTPUT_DIR/combined_analysis.json"
echo "✓ Multi-perspective search complete"
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.
Before making any API request, always validate the API key is configured:
# Validate API key is set
if [ -z "$NIMBLE_API_KEY" ]; then
echo "❌ Nimble API key not configured."
echo "Get your key at https://www.nimbleway.com/"
echo ""
echo "Set NIMBLE_API_KEY environment variable using your platform's method."
exit 1
fi
The skill requires the NIMBLE_API_KEY environment variable. See Prerequisites for platform-specific setup instructions.
Get your API key at: https://www.nimbleway.com/
POST https://nimble-retriever.webit.live/search
{
"query": "search query string", // REQUIRED
"focus": "general", // OPTIONAL: default "general" | coding|news|academic|shopping|social|geo|location
"max_results": 10, // OPTIONAL: default 10 (range: 1-100)
"include_answer": false, // OPTIONAL: default false
"deep_search": false, // OPTIONAL: default false (RECOMMENDED: keep false for speed)
"output_format": "markdown", // OPTIONAL: default "markdown" | plain_text|simplified_html
"include_domains": ["domain1.com"], // OPTIONAL: default [] (no filter)
"exclude_domains": ["domain3.com"], // OPTIONAL: default [] (no filter)
"time_range": "week", // OPTIONAL: hour|day|week|month|year
"start_date": "2026-01-01", // OPTIONAL: Use time_range OR start_date/end_date (not both)
"end_date": "2026-12-31" // OPTIONAL
}
Key Defaults:
focus: "general" - Change to specific mode for targeted resultsdeep_search: false - Keep false unless you need full page contentmax_results: 10 - Balanced speed and coverage{
"results": [
{
"url": "https://example.com/page",
"title": "Page Title",
"description": "Page description",
"content": "Full page content (if deep_search=true)",
"published_date": "2026-01-15"
}
],
"include_answer": "AI-generated summary (if include_answer=true)",
"urls": ["url1", "url2", "url3"],
"total_results": 10
}
Use coding for:
Use news for:
Use academic for:
Use shopping for:
Use social for:
Use geo for:
Use location for:
✅ Use LLM answers when:
❌ Skip LLM answers when:
Default (Recommended): deep_search=false
The default setting works for 95% of use cases:
include_answer=trueOnly use deep_search=true when you specifically need:
Performance impact:
deep_search=false: ~1-3 secondsdeep_search=true: ~5-15 seconds (significantly slower)Authentication Failed
Rate Limiting
No Results
Timeout Errors
deep_search=false (default) for 5-10x faster responses{"query": "..."} - defaults work greatdeep_search=true when you truly need full contentSee the examples/ directory for detailed integration patterns:
basic-search.md - Simple search implementationdeep-research.md - Multi-step research workflowcompetitive-analysis.md - Domain-specific research patternSee references/ directory for detailed documentation:
focus-modes.md - Complete focus mode guidesearch-strategies.md - Advanced search patternsapi-reference.md - Full API documentationThe recommended way to use the Nimble Search API:
./scripts/search.sh '{"query": "your search", "focus": "coding"}'
Features:
$NIMBLE_API_KEYjqUsage:
# Basic search
./scripts/search.sh '{"query": "React hooks"}'
# With all options
./scripts/search.sh '{
"query": "AI frameworks",
"focus": "coding",
"max_results": 15,
"include_answer": true,
"include_domains": ["github.com"]
}'
Test your API configuration and connectivity:
./scripts/validate-query.sh "test query" general
This verifies: