mcpField
P
pplx-cli

pplx-cli

github.com/perplexityai生产力8364 次安装2 周前更新
代码仓库

关于 pplx-cli

pplx-cli 是用于安装、认证和调用 Perplexity `pplx` 命令行工具的技能,适合 Agent 和命令行用户。它可执行网页搜索并从指定页面提取相关片段,以 JSON 输出。

主要功能

  1. 01通过命令行搜索网页
  2. 02提取 URL 页面片段
  3. 03将完整 JSON 结果保存到文件
  4. 04设置搜索范围和令牌限制

适用场景

  1. 01搜索最新技术信息
  2. 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 都会输出完整的标志文档,以及输入格式、标准输出格式、保存文件架构和示例;请查阅帮助,而不要猜测标志。

常见陷阱

  1. pplx auth login 仅支持 TTY(会显示隐藏的交互式提示),并会明确拒绝非交互式使用——作为 Agent,请改用 PERPLEXITY_API_KEY 环境变量。auth logout 和 auth login <key> 并不存在。
  2. 未指定保存目录时,--stdout-preview 不起作用。 只有在使用 --output-dir DIR 或 $PPLX_OUTPUT_DIR 保存结果时,它才会截断较长的字符串字段(并添加 ...<truncated> 标记);单独使用时会输出完整内容——而每条命中结果可能有数 KB,因此默认搜索可能会返回数十 KB 内容。
  3. search web 的额外位置参数查询是对同一搜索的改写(用于提高同一个问题的召回率),而非单独的搜索。N 个不同主题 = 调用 N 次。对于 content snippets,额外的位置参数表示更多 URL,而不是改写查询。
  4. 所有失败都会以 1 退出,stdout 为空,并在 stderr 上输出且仅输出一个 JSON 错误对象({"error":{"code","message","command","hint"?}})——失败时应解析 stderr,而非 stdout。错误代码包括 AUTHENTICATION、UNKNOWN_ARGUMENT、ARGUMENT_ERROR、BAD_REQUEST(并非全部;请根据 error.code 分支处理)。
  5. 日期标志使用 MM/DD/YYYY 格式,而非 ISO 日期格式(例如,--published-after-date 07/01/2026)。
  6. 不要将 --recency-filter 与日期范围组合使用。 服务会拒绝同时使用 --recency-filter 和 --published-after/before-date,并返回 BAD_REQUEST(“recency cannot be used together with published_after or published_before”)——这会浪费一次往返请求,客户端不会提前捕获此情况。
  7. content snippets 以 0 退出并不意味着每个 URL 都成功。 单个 URL 的失败会随成功响应返回,显示在 results[i].error 中;使用 text 前,请检查每个结果中的该字段。

评论

支持 Markdown