Install
$ agentstack add skill-dianel555-dskills-exa ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Exa Search
High-precision semantic search via Exa API. Standalone CLI only (no MCP dependency).
Execution Method
# Prerequisites: pip install httpx tenacity
# Environment: EXA_API_KEY (required), EXA_API_URL (optional, default: https://api.exa.ai)
# All examples assume cwd == skills/exa/. The shim auto-chdirs if you launch
# it from elsewhere (e.g., the repo root).
cd skills/exa
python scripts/exa_cli.py --help
Available Tools
# Basic semantic search (highlights always on; supports inline category:)
python scripts/exa_cli.py web_search_exa --query "TypeScript design patterns" [--num-results 10]
python scripts/exa_cli.py web_search_exa --query "category:company Anthropic AI safety"
# Batch URL fetch (urls is a repeatable flag; payload field is upstream `ids`)
python scripts/exa_cli.py web_fetch_exa \
--urls "https://a.com" --urls "https://b.com" \
[--max-chars 3000] [--out content.json]
# Advanced filtered search (list params are repeatable flags, no comma syntax)
python scripts/exa_cli.py web_search_advanced_exa --query "transformer" \
[--type auto|fast|instant] [--category research\ paper] \
[--include-domains arxiv.org --include-domains papers.nips.cc] \
[--exclude-domains medium.com] \
[--include-text "attention"] [--exclude-text "tutorial"] \
[--start-date 2024-01-01] [--end-date 2024-12-31] \
[--num-results 10] [--max-age-hours 168] \
[--text] [--highlights] [--summary] \
[--max-chars 5000] # only effective when --text is set; emits stderr warning otherwise
[--out results.json]
# Configuration / connectivity probe (omit --no-test to run a numResults=1 ping)
python scripts/exa_cli.py get_config_info [--no-test]
Tool Capability Matrix
| Tool | Required | Optional | Output | |------|----------|----------|--------| | web_search_exa | --query | --num-results (1-100) | Search results JSON (highlights always present) | | web_fetch_exa | --urls (repeatable, ≥1) | --max-chars (default 3000), --out | /contents response JSON | | web_search_advanced_exa | --query | --type, --category, repeatable --include-domains/--exclude-domains/--include-text/--exclude-text, --start-date, --end-date, --num-results, --max-age-hours, --text, --highlights, --summary, --max-chars, --out | Filtered search results JSON | | get_config_info | – | --no-test | Config + (default) connection_test |
Global Options
Place before the subcommand:
| Option | Purpose | |--------|---------| | --api-url | Override EXA_API_URL (does not write to os.environ) | | --api-key | Override EXA_API_KEY | | --debug | Enable JSON debug events on stderr (EXA_DEBUG=true) — never logs auth values | | --max-retry-wait | Cap (seconds) for single retry wait + exponential backoff (default 60, env: EXA_MAX_RETRY_WAIT) | | --auth-scheme | Authentication scheme: x-api-key (default) or bearer for third-party endpoints (env: EXA_AUTH_SCHEME) |
Tool Routing Guide
| Use Case | Recommended Tool | |----------|------------------| | Real-time news, current events | grok-search | | Semantic/conceptual research | exa (web_search_exa) | | Domain or date-bounded research | exa (web_search_advanced_exa) | | Read full content of one or more URLs | exa (web_fetch_exa) | | Academic papers, technical docs | exa (web_search_advanced_exa --include-domains arxiv.org ...) |
Workflow Patterns
Pattern 1: Quick Semantic Search
python scripts/exa_cli.py web_search_exa --query "best practices for React hooks" --num-results 5
Pattern 2: Filtered Research (repeatable flags)
python scripts/exa_cli.py web_search_advanced_exa --query "transformer architecture" \
--include-domains arxiv.org --include-domains papers.nips.cc \
--start-date 2023-01-01 --text --summary
Pattern 3: Batch URL Read
python scripts/exa_cli.py web_fetch_exa \
--urls "https://example.com/a" --urls "https://example.com/b" \
--max-chars 4000 --out batch.json
Pattern 4: Third-Party Endpoint (Bearer Auth)
# Connect to exa-pool or other Exa-compatible proxy
export EXA_API_URL=https://pool.example.com
export EXA_AUTH_SCHEME=bearer
export EXA_API_KEY=your-bearer-token
python scripts/exa_cli.py web_search_exa --query "AI agents" --num-results 5
# Or use CLI flags for one-off requests
python scripts/exa_cli.py --auth-scheme bearer --api-url https://pool.example.com \
web_search_exa --query "AI agents"
References
The references/ directory carries 11 prompt-engineering guides. Open them on demand when crafting queries:
| File | When to read | |------|--------------| | searching.md | Crafting web_search_exa queries (semantic phrasing, category usage) | | extraction.md | Choosing between highlights / text / summary on advanced search | | filtering.md | Building include/exclude domain & date filters | | synthesis.md | Aggregating multiple result sets into a coherent answer | | source-quality.md | Vetting source credibility | | patterns-code.md | Code/library research recipes | | patterns-companies.md | Company research recipes | | patterns-news.md | Current-events research recipes | | patterns-papers.md | Academic paper recipes | | patterns-people.md | People search recipes | | patterns-relationships.md | Multi-entity relationship research |
Error Handling
| Error | Recovery | |-------|----------| | EXA_API_KEY not configured | Set environment variable or pass --api-key | | HTTP 408/429/5xx | Automatic retry with exponential backoff (max 4 attempts, capped by --max-retry-wait) | | HTTP 401 | Verify API key | | Timeout | Reduce --num-results or retry |
Output Format
All commands print JSON (ensure_ascii=False, indent 2) to stdout. With --out , the response JSON is written to that path and stdout becomes {"status":"ok","file":""}. Errors go to stderr as {"error":""} with non-zero exit.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Dianel555
- Source: Dianel555/DSkills
- License: MIT
- Homepage: https://github.com/Dianel555/DSkills
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.