tavily-ai/tavily-power/migrate-to-tavily
Claude Code and agent skill by tavily-ai/tavily-power
- community
Checking that the SKILL.md file is still in the repository.
Migrate an existing integration from a competing web-search/research API — Exa, Firecrawl, Perplexity, or Parallel — over to Tavily, preserving behavior while swapping calls, imports, environment variables, and error handling. Use this skill when the user has working code against a competitor's SDK and wants to switch providers, or says "migrate this to Tavily", "switch from Exa/Firecrawl/Perplexity/Parallel to Tavily", "replace this competitor API with Tavily", or "port this integration over". Do NOT use this for greenfield Tavily integrations with no existing competitor code — start with tavily-best-practices instead.
Install
npx vskill@latest install tavily-ai/tavily-power/migrate-to-tavilySKILL.md
migrate to tavily
Convert an existing integration against a competitor's search/extract/research API into an equivalent Tavily integration.
When to use
- There's existing code calling Exa, Firecrawl, Perplexity, or Parallel
- The user wants the same behavior, just backed by Tavily instead
Not this skill:
- No existing competitor code to migrate → start with tavily-best-practices for a fresh integration
Process
- Find what's actually used. Grep the codebase for the competitor's SDK import, client construction, and each method call site — don't assume every method the SDK offers is in use.
- Map each call site using the tables below.
- Rewrite imports, client construction, method calls, and response field access.
- Update dependencies (
package.json/requirements.txt) and environment variables (.env, config, CI secrets references — flag secret rotation as the user's responsibility, don't invent new key values). - Update error handling to match Tavily's exceptions/response shape (see tavily-best-practices/references/sdk.md).
- Flag anything with no clean equivalent rather than silently dropping functionality — call it out to the user explicitly.
Mapping tables
From Exa
| Exa | Tavily | Notes | |
|---|---|---|---|
exa.search(query, ...) | client.search(query, ...) → tavily-search | Exa's neural/keyword type param has no direct Tavily equivalent — Tavily's search_depth (basic/advanced) is the closest lever | |
exa.get_contents(urls) | client.extract(urls) → tavily-extract | ||
exa.find_similar(url) | No direct equivalent | Approximate with client.search() using the source page's title/topic as the query | |
exa.search_and_contents(...) | client.search(..., include_raw_content=True) | One-call combined pattern, same idea |
From Firecrawl
| Firecrawl | Tavily | Notes | |
|---|---|---|---|
firecrawl.scrape_url(url) | client.extract(urls=[url]) → tavily-extract | ||
firecrawl.crawl_url(url, ...) | client.crawl(url, ...) → tavily-crawl | Firecrawl's limit/maxDepth map to Tavily's limit/max_depth | |
firecrawl.map_url(url) | client.map(url) → tavily-map | ||
| Firecrawl's markdown/structured extraction modes | Tavily's extract_depth="advanced" + format="markdown" |
From Perplexity
| Perplexity | Tavily | Notes | |
|---|---|---|---|
sonar/sonar-pro chat-completions call used for research | client.research(input, model="mini"/"pro") → tavily-research | Perplexity returns research as a chat completion; Tavily's research() is purpose-built, async, and supports output_schema for structured results | |
| Inline citations in the completion text | response["sources"] + citation_format | Tavily returns citations as structured data rather than inline markers — update any citation-parsing code accordingly |
From Parallel
| Parallel | Tavily | Notes | |
|---|---|---|---|
parallel-web-search | client.search(...) → tavily-search | ||
parallel-web-extract | client.extract(...) → tavily-extract | ||
parallel-deep-research | client.research(..., model="pro") → tavily-research | ||
parallel-findall | build-entity-list | Same underlying idea — structured list of matching entities | |
parallel-data-enrichment | fill-missing-fields | Same underlying idea — fill in fields on an existing list | |
parallel-monitor | watch-for-changes | Parallel's is a hosted platform feature; Tavily's equivalent is orchestration-based (see that skill's notes) — call this difference out to the user rather than promising an identical hosted experience | |
status / result (run ID lookup) | client.get_research(request_id) / tvly research status/poll | Built into tavily-research rather than separate calls | |
parallel-memory | past-research-search | Tavily has no hosted memory store — this is a local logging convention, say so |
Tips
- Preserve response shape at the boundary if the rest of the app depends on it. If a wholesale rewrite is risky, write a thin adapter function that calls Tavily internally but returns the old shape, rather than touching every call site.
- Don't invent parity that doesn't exist. Where Tavily has no equivalent (e.g., Exa's
find_similar), say so plainly rather than approximating silently and letting behavior quietly change. - Check rate limits and pricing separately — this skill migrates code, not commercial terms; flag that the user should confirm their Tavily plan covers their call volume.
- Test against real data before removing the old integration. Run both side-by-side on a few known cases and compare outputs.
See also
- tavily-best-practices — full SDK reference for the target Tavily integration
- fill-missing-fields, build-entity-list, watch-for-changes, past-research-search — Tavily-side equivalents for Parallel's higher-level skills
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/migrate-to-tavily/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/tavily-ai/tavily-power/migrate-to-tavily)