Perplexity AI Search - security-hardened version (bash-based)

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: perplexity-safe Version: 1.0.1 The `scripts/perplexity_search.sh` script is well-hardened against command injection and API key exposure, validating inputs and securely handling credentials as claimed in `SKILL.md`. However, the `_claude/settings.local.json` file grants `WebFetch` permissions to `github.com`, `raw.githubusercontent.com`, and `api.github.com`. These permissions are not utilized by the provided script, which only interacts with `api.perplexity.ai`. This over-permissioning represents a vulnerability, as it grants capabilities beyond the skill's stated purpose, making the bundle suspicious.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

The key can authorize billable Perplexity API usage, so misuse or overuse could create charges.

Why it was flagged

The script retrieves a Perplexity API key from local configuration or an environment variable and uses it as a bearer token for API requests.

Skill content
if [[ -n "${PERPLEXITY_API_KEY:-}" ]]; then ... echo "$PERPLEXITY_API_KEY" ... -H "Authorization: Bearer $API_KEY"
Recommendation

Use a dedicated Perplexity API key, monitor usage and spending, and store the key securely.

What this means

Search queries leave the local environment and are processed by Perplexity, which may matter for private or sensitive questions.

Why it was flagged

User queries, and any optional system prompt, are sent to the Perplexity API as part of the intended search workflow.

Skill content
PERPLEXITY_API_URL="https://api.perplexity.ai/chat/completions" ... messages.append({"role": "user", "content": query}) ... curl -s -X POST "$PERPLEXITY_API_URL"
Recommendation

Avoid sending secrets, confidential documents, or sensitive personal data in queries unless Perplexity’s terms and privacy handling are acceptable.

What this means

A user may not realize before reading SKILL.md that the skill needs bash, curl, python3, and a Perplexity API key.

Why it was flagged

The registry metadata does not declare the practical dependencies and credential setup that the skill documentation describes.

Skill content
Required binaries (all must exist): none ... Required env vars: none ... Primary credential: none
Recommendation

Update metadata to declare the external API credential and runtime dependencies so installation expectations are clear.

What this means

This may grant extra web-fetch permissions unrelated to the skill’s documented Perplexity workflow.

Why it was flagged

The package includes a local permission settings file for GitHub WebFetch domains, which is not explained by the Perplexity API search purpose.

Skill content
"allow": ["WebFetch(domain:github.com)", "WebFetch(domain:raw.githubusercontent.com)", "WebFetch(domain:api.github.com)"]
Recommendation

Remove the .claude/settings.local.json file from the published skill unless GitHub WebFetch access is intentionally required and documented.