Perplexity has released pplx
, an official command line client for its Search API. The tool returns grounded search results and extracted page text, all as JSON. According to its docs, it targets humans and coding agents equally. It is not a chat client. There is no conversational mode, no model selection and no synthesized answer.
Two surfaces, one output contract
The tool exposes exactly two working surfaces. pplx search web
runs a live web search. pplx content fetch
pulls a URL and returns cleaned page text.
The contract around them is the interesting part. Per the official pplx-cli Agent Skill, success means exit code 0 and exactly one JSON object on stdout. Search returns
{hits: [{url, title, domain, snippet, ...}], total, saved_to?}
.Every failure exits 1 with an empty stdout. One JSON error object goes to stderr, shaped {"error":{"code","message","command","hint"?}}
. Documented codes include AUTHENTICATION
, UNKNOWN_ARGUMENT
, ARGUMENT_ERROR
and BAD_REQUEST
. The skill notes that list is not exhaustive, so callers should branch on error.code
.
Install path and platform support
Installation is a single shell command that pipes a script into sh
:
curl -fsSL https://github.com/perplexityai/perplexity-cli/releases/latest/download/install.sh | sh
Reading install.sh shows what it actually does. It downloads
manifest.json
from the latest release and extracts the tag and version. It then pins every remaining download to that tag, explicitly to avoid racing a concurrent publish.It fetches SHA256SUMS
and the platform binary, verifies the checksum, and installs to ~/.local/bin/pplx
. No sudo is required. A receipt is written to ~/.config/pplx/pplx-receipt.json
, but only after the installed binary runs successfully.
Platform coverage is limited to three targets: macOS on Apple Silicon, Linux x86_64 and Linux arm64. Anything else exits with an error. There is no Windows build and no Intel macOS build.
Context-window economics are a first-class design concern
The most agent-specific feature is token budgeting. --output-dir
writes the full result set to a JSON file. --stdout-preview[=<CHARS>]
truncates long string fields in stdout, adding ...<truncated>
markers.
The skill is blunt about the trap: --stdout-preview
is a no-op without a save directory. It truncates only when the result is also saved via --output-dir
or $PPLX_OUTPUT_DIR
. Used alone it returns full-size output, and hits can be multiple KB each.
Saved search results land at {dir}/web/{rand}.json
and fetches at {dir}/fetch/{rand}.json
. Files are written only after a successful request. PPLX_OUTPUT_DIR
sets a workspace default so the flag need not be repeated.
For content fetch, the skill adds a correctness check rather than a cost one. Verify error
and is_paywall
in the output before trusting content
. --html
adds a raw_html
field fetched live via crawler, and --no-cache
forces a live fetch.
Key Takeaways
pplx
is a single verified binary exposing two commands:pplx search web
andpplx content fetch
.- Success is exit 0 plus one JSON object on stdout; failures put one JSON error object on stderr.
pplx auth login
is TTY-only, so agents and CI must exportPERPLEXITY_API_KEY
.--stdout-preview
only truncates when paired with--output-dir
or$PPLX_OUTPUT_DIR
.- Search API billing is $5.00 per 1,000 requests, capped at 50 QPS on every usage tier.
Sources: perplexityai/perplexity-cli, pplx-cli SKILL.md, api-platform-developers, Perplexity API pricing, Rate limits and usage tiers, and Search API quickstart
Michal Sutter is a data science professional with a Master of Science in Data Science from the University of Padova. With a solid foundation in statistical analysis, machine learning, and data engineering, Michal excels at transforming complex datasets into actionable insights.