关于 pplx-cli
pplx-cli 是用于安装、认证和调用 Perplexity `pplx` 命令行工具的技能,适合 Agent 和命令行用户。它可执行网页搜索并从指定页面提取相关片段,以 JSON 输出。
主要功能
- 01通过命令行搜索网页
- 02提取 URL 页面片段
- 03将完整 JSON 结果保存到文件
- 04设置搜索范围和令牌限制
适用场景
- 01搜索最新技术信息
- 02从指定页面提取相关内容
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ perplexityai/ api-platform-developers --skill pplx-cli安装后在 Claude Code 中输入/pplx-cli确认已加载。
详细介绍
pplx - Perplexity 的网页搜索和页面摘要 CLI
此技能的功能
安装、验证身份并调用 Perplexity 的公开 pplx CLI:使用 pplx search web 进行实时网页搜索,使用 pplx content snippets 获取与查询相关的页面摘录。
输出约定:成功时,退出码为 0,且标准输出中恰好包含一个 JSON 对象;失败情况见陷阱 4。
安装
如果 pplx --version 已经可以正常运行(会输出类似 2026.07.30.1785394496+1b7382b 的 calver),则跳过。
curl -fsSL https://github.com/perplexityai/perplexity-cli/releases/latest/download/install.sh | sh
通过 SHA-256 校验,无需 sudo,安装到 ~/.local/bin/pplx(可通过 PPLX_INSTALL_PATH 覆盖);确保 ~/.local/bin 位于 PATH 中。
仅支持以下平台:macOS arm64、Linux x86_64、Linux arm64。
使用 pplx update 更新(就地替换并校验校验和,无需 API 密钥);pplx update --check 只会报告是否存在更新版本。
身份验证
如果尚未完成身份验证,请运行:pplx auth login(交互式操作,需要终端;密钥位于 https://www.perplexity.ai/account/api)。
在非交互式会话(Agent、CI)中,请改为导出 PERPLEXITY_API_KEY——auth login 会拒绝管道输入(陷阱 1)。
环境变量的优先级高于交互式 pplx auth login 保存的密钥(<config>/perplexity/credentials.json;macOS 上为 ~/Library/Application Support,Linux 上为 $XDG_CONFIG_HOME 或 ~/.config)。
未配置密钥时,首次执行实际命令会返回 AUTHENTICATION 错误。
所有 CLI 输出都会隐藏密钥;CLI 会与 https://api.perplexity.ai 通信。
搜索
pplx search web "kubernetes pod OOMKilled causes"
标准输出:{hits: [{url, title, domain, snippet?, ...}], total, saved_to?}。
为减少 token 用量,请保存并预览——此处额外的位置参数是对同一问题的改写(陷阱 3):
pplx search web "kubernetes pod OOMKilled causes" "why does k8s keep killing my pod with OOMKilled" \
-n 5 --output-dir out --stdout-preview=200
这样标准输出就只有几 KB,其中包含 saved_to(当字段实际被截断时,还会包含 truncated);完整 JSON 位于 out/web/{rand}.json(仅在请求成功后写入)。如果预览内容不够,请读取该文件。
将 PPLX_OUTPUT_DIR 设置为适合工作区的路径,即可为每条命令设置默认保存目录,无需重复指定 --output-dir。
更多范围限定标志(--domains、日期范围、--recency-filter、--country、token 预算),请参阅 pplx search web --help。
摘录
pplx content snippets "<query>" <url>... [--max-tokens N] [--max-tokens-per-page N]
支持 1-50 个 http(s) URL;此处额外的位置参数是要摘录的额外页面,而不是对查询的改写(与 search web 相反,陷阱 3)。
标准输出:{results: [{url, text?, tokens_count?, error?}], saved_to?}——每个 URL 对应一条结果。
在信任 text 之前,请检查每条结果中的 error——退出码为 0 只表示请求成功,不代表每个 URL 都成功(陷阱 7);失败的 URL 会设置 error,且不包含 text。
text 中省略的部分会用 … 标记。
Token 预算:--max-tokens = 所有摘录的总 token 数,范围为 1-16384,默认为 4096;--max-tokens-per-page = 每页的 token 数,范围为 1-4096,必须 <= --max-tokens,默认为 min(1024, max_tokens)。
保存的文件:{dir}/snippets/{rand}.json。
查询只能作为位置参数传入:此处的 -q/--query 和 --no-cache 会导致 UNKNOWN_ARGUMENT 解析错误。
v0.2.2 及更早版本的二进制文件会在执行 content snippets 时返回未知命令错误——请先运行 pplx update。
content fetch 已移除;请使用 content snippets。
不确定时
每个子命令的 --help 都会输出完整的标志文档,以及输入格式、标准输出格式、保存文件架构和示例;请查阅帮助,而不要猜测标志。
常见陷阱
pplx auth login仅支持 TTY(会显示隐藏的交互式提示),并会明确拒绝非交互式使用——作为 Agent,请改用PERPLEXITY_API_KEY环境变量。auth logout和auth login <key>并不存在。- 未指定保存目录时,
--stdout-preview不起作用。 只有在使用--output-dir DIR或$PPLX_OUTPUT_DIR保存结果时,它才会截断较长的字符串字段(并添加...<truncated>标记);单独使用时会输出完整内容——而每条命中结果可能有数 KB,因此默认搜索可能会返回数十 KB 内容。 search web的额外位置参数查询是对同一搜索的改写(用于提高同一个问题的召回率),而非单独的搜索。N 个不同主题 = 调用 N 次。对于content snippets,额外的位置参数表示更多 URL,而不是改写查询。- 所有失败都会以 1 退出,stdout 为空,并在 stderr 上输出且仅输出一个 JSON 错误对象(
{"error":{"code","message","command","hint"?}})——失败时应解析 stderr,而非 stdout。错误代码包括AUTHENTICATION、UNKNOWN_ARGUMENT、ARGUMENT_ERROR、BAD_REQUEST(并非全部;请根据error.code分支处理)。 - 日期标志使用 MM/DD/YYYY 格式,而非 ISO 日期格式(例如,
--published-after-date 07/01/2026)。 - 不要将
--recency-filter与日期范围组合使用。 服务会拒绝同时使用--recency-filter和--published-after/before-date,并返回BAD_REQUEST(“recency cannot be used together with published_after or published_before”)——这会浪费一次往返请求,客户端不会提前捕获此情况。 content snippets以 0 退出并不意味着每个 URL 都成功。 单个 URL 的失败会随成功响应返回,显示在results[i].error中;使用text前,请检查每个结果中的该字段。