Tavily Web Search
allenpeng0705/EnvoyMesh
Searches the web through the Tavily API with LLM-friendly output: clean structured results, optional AI-written answers, domain filters, news mode, images and raw content.
Searches the live web with citations through perplexity-mcp v2 tools or a bundled Python REST client, with focused ask, deep research and detached tasks.
$ npx skills add escapeWu/perplexity-ai --skill perplexity-search -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install escapeWu/perplexity-ai perplexity-search --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/escapeWu/perplexity-ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/perplexity-search .claude/skills/perplexity-search && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "perplexity-search" agent skill from https://github.com/escapeWu/perplexity-ai/tree/main/.agents/skills/perplexity-search into .claude/skills/perplexity-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perplexity-search", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/escapeWu/perplexity-ai/tree/main/.agents/skills/perplexity-searchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add escapeWu/perplexity-ai --skill perplexity-search -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install escapeWu/perplexity-ai perplexity-search --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/escapeWu/perplexity-ai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/perplexity-search .agents/skills/perplexity-search && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "perplexity-search" agent skill from https://github.com/escapeWu/perplexity-ai/tree/main/.agents/skills/perplexity-search into .agents/skills/perplexity-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perplexity-search", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add escapeWu/perplexity-ai --skill perplexity-search -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install escapeWu/perplexity-ai perplexity-search --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/escapeWu/perplexity-ai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/perplexity-search .cursor/skills/perplexity-search && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "perplexity-search" agent skill from https://github.com/escapeWu/perplexity-ai/tree/main/.agents/skills/perplexity-search into .cursor/skills/perplexity-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perplexity-search", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/escapeWu/perplexity-ai.git --path .agents/skills/perplexity-search--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add escapeWu/perplexity-ai --skill perplexity-search -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install escapeWu/perplexity-ai perplexity-search --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/escapeWu/perplexity-ai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/perplexity-search .gemini/skills/perplexity-search && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "perplexity-search" agent skill from https://github.com/escapeWu/perplexity-ai/tree/main/.agents/skills/perplexity-search into .gemini/skills/perplexity-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perplexity-search", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install escapeWu/perplexity-ai perplexity-searchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add escapeWu/perplexity-ai --skill perplexity-search -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/escapeWu/perplexity-ai.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/perplexity-search .github/skills/perplexity-search && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "perplexity-search" agent skill from https://github.com/escapeWu/perplexity-ai/tree/main/.agents/skills/perplexity-search into .github/skills/perplexity-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perplexity-search", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add escapeWu/perplexity-ai --skill perplexity-search -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install escapeWu/perplexity-ai perplexity-search --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/escapeWu/perplexity-ai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/perplexity-search .opencode/skills/perplexity-search && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "perplexity-search" agent skill from https://github.com/escapeWu/perplexity-ai/tree/main/.agents/skills/perplexity-search into .opencode/skills/perplexity-search/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "perplexity-search", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
perplexity-searchSearches the live web with citations through perplexity-mcp v2 tools or a bundled Python REST client, with focused ask, deep research and detached tasks.
This skill gives one workflow over two transports: a connected perplexity-mcp server that exposes the tools directly, or a standard-library Python client in the scripts folder that offers matching methods over REST. Operations are the same either way: a focused ask for current facts and cited answers, a deep research call for broad multi-source reports, and tasks that can be submitted, checked and cancelled.
REST configuration comes from PPLX_BASE_URL, which defaults to a local address on port 8000, and a bearer token in MCP_TOKEN or PPLX_API_KEY, with config.json as a fallback. Credentials must never be printed, quoted, logged or committed. A model can be named when asking, and a thinking option selects its paired variant. The older MCP tools called search, research and perplexity_search are deprecated and should not be used.
Read from SKILL.md and the folder at commit a39a13f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
MCP_TOKENPPLX_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Perplexity Search loads about 1.8k tokens when it runs. Until then it costs about 102 tokens; SKILL.md has 583 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from escapeWu/perplexity-ai at commit a39a13f, republished under its MIT licence (© escapeWu). 583 words, ~1,814 tokens.
.claude/skills/perplexity-search/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Use one workflow regardless of transport. A connected perplexity-mcp server exposes tools directly; the bundled scripts/client.py exposes matching Python methods over REST.
| Operation | MCP tool | Python REST method |
|---|---|---|
| Focused search or cited answer | perplexity_ask_v2 | client.perplexity_ask_v2(...) |
| Broad Deep Research | perplexity_research_v2 | client.perplexity_research_v2(...) |
| Submit detached work | perplexity_task_submit | client.perplexity_task_submit(...) |
| Observe detached work | perplexity_task_status | client.perplexity_task_status(...) |
| Cancel detached work | perplexity_task_cancel | client.perplexity_task_cancel(...) |
Choose the available transport, then keep the same operation names, arguments, session rules, and output handling. Do not switch to legacy MCP tools such as search, research, or perplexity_search; they are deprecated.
The client uses only the Python standard library. Load it from this skill's scripts directory:
import sys
from pathlib import Path
skill_dir = Path(".agents/skills/perplexity-search").resolve()
sys.path.insert(0, str(skill_dir / "scripts"))
from client import PerplexityRestClient
client = PerplexityRestClient.from_config(skill_dir / "config.json")
result = client.perplexity_ask_v2(
"What changed in Python packaging this month? Cite primary sources."
)Configuration is shared by every REST method:
PPLX_BASE_URL: service root, with or without /v1; defaults to http://127.0.0.1:8000.MCP_TOKEN or PPLX_API_KEY: bearer token; MCP_TOKEN takes precedence.config.json: fallback configuration when environment variables are absent.Never print, quote, log, or commit real credentials.
Use perplexity_ask_v2 for current facts, news, comparisons, source-backed analysis, and ordinary searches.
MCP arguments and Python arguments are identical:
{
"query": "Compare the latest Python packaging changes and cite primary sources.",
"model": "gpt-5-6-terra",
"thinking": true,
"session_id": null,
"files": null
}result = client.perplexity_ask_v2(
query="Compare the latest Python packaging changes and cite primary sources.",
model="gpt-5-6-terra",
thinking=True,
)Omit model to use perplexity-search. When selecting a model, pass the exact OAI model ID exposed by the server. Set thinking=True to select its paired thinking variant. Do not pass perplexity-deepsearch to Ask.
Use perplexity_research_v2 for broad investigations with several subtopics, many sources, or report-like synthesis.
result = client.perplexity_research_v2(
query=(
"Research the 2026 enterprise AI agent market. Compare adoption, pricing, "
"security constraints, and primary-source evidence."
)
)This operation always selects perplexity-deepsearch; it does not accept model or thinking.
Both transports return the same success shape for Ask and Research:
{
"status": "ok",
"session_id": "sess_...",
"job_id": "job_...",
"model": "perplexity-search",
"data": {
"answer": "...",
"sources": []
}
}Check status before using a result. Read the answer from data.answer, preserve direct URLs from data.sources, and distinguish sourced facts from your synthesis.
Failures use the same top-level convention:
{
"status": "error",
"error_type": "...",
"message": "..."
}Report the non-secret error type and message. Do not silently change models, replace sessions, or treat incomplete task output as success.
Omit session_id to create a native session. For a same-topic follow-up, call the same operation with the returned ID and only the latest instruction:
follow_up = client.perplexity_ask_v2(
query="Add exact release dates and one primary source per claim.",
session_id=result["session_id"],
)Keep the session ID with its operation family. Start a new session when the topic changes. A session is permanently bound to its first account and supports at most one unfinished task; it does not fail over or accept concurrent turns.
Pass attachments through files on either Ask, Research, or task submission.
For MCP, files follows the server tool schema. For Python REST, use either a filename-to-content mapping or an iterable of local paths:
client.perplexity_ask_v2(
"Summarize the attached evidence and verify current claims on the web.",
files=["reports/evidence.pdf"],
)
client.perplexity_ask_v2(
"Review this note.",
files={"note.txt": "local text content"},
)The REST client reads local paths and sends base64 input_file content, so the remote server does not need access to the client's filesystem. Respect server limits: at most 10 files, 20 MiB per file, 100 MiB per request, and allowed extensions.
Use detached tasks only when work must survive caller disconnects, is expected to run for a long time, or consists of independent concurrent conversations.
MCP users should call get_skill_index and read get_tasks_use before the task tools. Python users call the same task operations through REST:
accepted = client.perplexity_task_submit(
query="Research WebAssembly component model adoption with primary sources.",
model="perplexity-deepsearch",
idempotency_key="wasm-adoption-1",
)
status = client.perplexity_task_status(
accepted["job_id"],
wait_seconds=20,
include_output=False,
)A successful submission means admission, not completion. Retain both job_id and session_id. Only state == "completed" is complete. Fetch output with include_output=True; the answer is in snapshot.answer. Treat failed, timed_out, cancelled, and interrupted as non-success even when a draft exists.
Reuse an idempotency_key only to recover the same submission after a lost receipt. Use a different session for each concurrent task. Cancel explicitly when the task is no longer needed:
client.perplexity_task_cancel(accepted["job_id"])Cancellation cannot undo upstream work already accepted.
The CLI uses the exact MCP tool names:
python3 "$SKILL_DIR/scripts/client.py" perplexity_ask_v2 \
"What changed this week? Cite primary sources."
python3 "$SKILL_DIR/scripts/client.py" perplexity_research_v2 \
"Research current enterprise AI agent adoption."
python3 "$SKILL_DIR/scripts/client.py" perplexity_task_status job_... \
--wait-seconds 20cli.py remains a compatibility entry point and dispatches to the same client. Use client.py for new integrations.
© escapeWu, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts) in .agents/skills/perplexity-search of escapeWu/perplexity-ai.
Open the folder on GitHubat commit a39a13f
Perplexity Search next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Perplexity Search this skillescapeWu/perplexity-ai | 170 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Tavily Web Searchallenpeng0705/EnvoyMesh | 3.1k | 3 repos | ~2.5k | Automated safety check: Notes | None | |
| Perplexity Search and Researchartwist-polyakov/polyakov-claude-skills | 206 | — | ~2.5k | Automated safety check: Notes | MIT | |
| Exa Neural Search via MCPaffaan-m/ECC | 276k | 4 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Argo Search and Verificationtaxueseek/argo | 186 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Weekly Signal DiffNateBJones-Projects/OB1 | 4.7k | — | ~1.7k | Automated safety check: Pass | Custom licence |
allenpeng0705/EnvoyMesh
Searches the web through the Tavily API with LLM-friendly output: clean structured results, optional AI-written answers, domain filters, news mode, images and raw content.
artwist-polyakov/polyakov-claude-skills
Shell scripts for web search and research through the Perplexity API: raw results, cited answers, background deep research and page fetching, with results cached on disk.
affaan-m/ECC
Searches the web, code, companies and people through the Exa MCP server, with notes on setup, the web_search_exa tool and treating results as untrusted data.
taxueseek/argo
Unified web search, page fetching and evidence checking across hundreds of sources, with result verification, a research-dossier mode and vertical search engines.
NateBJones-Projects/OB1
Turns a noisy week of AI or software market news into a short list of structural changes, weighted by what the user already tracks in Open Brain memory.
Johell1NS/browser-search
Multi-engine web search (SearXNG) + browsing/scraping (Camofox, CloakBrowser).
escapeWu/perplexity-ai
Bumps a project version, updates both changelogs, builds the frontend, then commits, tags and pushes the release.
escapeWu/perplexity-ai
Deploys the perplexity-ai project to its production server by pushing main, fast-forwarding the server checkout, rebuilding the image there and verifying health.
Works with
Searches the live web with citations through perplexity-mcp v2 tools or a bundled Python REST client, with focused ask, deep research and detached tasks. This skill gives one workflow over two transports: a connected perplexity-mcp server that exposes the tools directly, or a standard-library Python client in the scripts folder that offers matching methods over REST. Operations are the same either way: a focused ask for current facts and cited answers, a deep research call for broad multi-source reports, and tasks that can be submitted, checked and cancelled.
Perplexity Search fits situations like: looking up recent news or facts with source citations; running a broad deep research query on a topic; fact-checking a claim against current web sources; starting a long search as a detached task and checking on it later.
Run `npx skills add escapeWu/perplexity-ai --skill perplexity-search -a claude-code`. Or copy the skill folder (.agents/skills/perplexity-search in escapeWu/perplexity-ai) into .claude/skills/perplexity-search in your project. Claude Code loads it when a task matches its description.
Run `npx skills add escapeWu/perplexity-ai --skill perplexity-search -a codex`. Or copy the skill folder (.agents/skills/perplexity-search in escapeWu/perplexity-ai) into .agents/skills/perplexity-search in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add escapeWu/perplexity-ai --skill perplexity-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/perplexity-search, .gemini/skills/perplexity-search, .github/skills/perplexity-search and .opencode/skills/perplexity-search in your project.
Going by SKILL.md and its folder, Perplexity Search needs Python for the scripts in its folder, the command-line tools its instructions call (python3) and credentials named MCP_TOKEN and PPLX_API_KEY. Our summary lists: A running perplexity-mcp server or a reachable REST service at PPLX_BASE_URL; A token in MCP_TOKEN or PPLX_API_KEY; Python 3 for the bundled REST client.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Perplexity Search is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Perplexity Search: Tavily Web Search (allenpeng0705/EnvoyMesh, 3.1k stars), Perplexity Search and Research (artwist-polyakov/polyakov-claude-skills, 206 stars), Exa Neural Search via MCP (affaan-m/ECC, 276k stars) and Argo Search and Verification (taxueseek/argo, 186 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
escapeWu (a GitHub user) maintains it in escapeWu/perplexity-ai, which has 170 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 27, 2026.
Source: escapeWu/perplexity-ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.