Help us improve
Share bugs, ideas, or general feedback.
From perplexity-pack
Installs OpenAI client and configures Perplexity Sonar API authentication for Node.js or Python. Provides env setup and verification scripts.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin perplexity-packHow this skill is triggered — by the user, by Claude, or both
Slash command
/perplexity-pack:perplexity-install-authThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Set up Perplexity Sonar API access using the OpenAI-compatible chat completions endpoint at `https://api.perplexity.ai`. Perplexity does not have a custom SDK -- you use the standard OpenAI client library pointed at Perplexity's base URL.
Implements Perplexity Sonar API patterns in TypeScript and Python using OpenAI client wrappers for typed singletons, search with citations, and response parsing.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
Set up Perplexity Sonar API access using the OpenAI-compatible chat completions endpoint at https://api.perplexity.ai. Perplexity does not have a custom SDK -- you use the standard OpenAI client library pointed at Perplexity's base URL.
set -euo pipefail
# Node.js / TypeScript
npm install openai
# Python
pip install openai
There is no @perplexity/sdk package. Perplexity uses the OpenAI wire format, so you use the official openai package with a custom baseURL.
# Set environment variable
export PERPLEXITY_API_KEY="pplx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# Or create .env file (add .env to .gitignore)
echo 'PERPLEXITY_API_KEY=pplx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' >> .env
API keys start with pplx- and are generated at perplexity.ai/settings/api. You must add credits to your account before making API calls.
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.PERPLEXITY_API_KEY,
baseURL: "https://api.perplexity.ai",
});
async function verify() {
const response = await client.chat.completions.create({
model: "sonar",
messages: [{ role: "user", content: "What is 2+2?" }],
max_tokens: 50,
});
console.log("Connected:", response.choices[0].message.content);
console.log("Model:", response.model);
console.log("Tokens used:", response.usage?.total_tokens);
}
verify().catch(console.error);
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["PERPLEXITY_API_KEY"],
base_url="https://api.perplexity.ai",
)
response = client.chat.completions.create(
model="sonar",
messages=[{"role": "user", "content": "What is 2+2?"}],
max_tokens=50,
)
print("Connected:", response.choices[0].message.content)
print("Model:", response.model)
print("Tokens:", response.usage.total_tokens)
| Model | Use Case | Input $/M tokens | Output $/M tokens |
|---|---|---|---|
sonar | Fast search, simple queries | $1 | $1 |
sonar-pro | Deep research, more citations | $3 | $15 |
sonar-reasoning-pro | Chain-of-thought with search | $3 | $15 |
sonar-deep-research | Multi-step research synthesis | $2 | $8 |
| Error | Cause | Solution |
|---|---|---|
401 Unauthorized | Invalid or missing API key | Verify key starts with pplx- and has credits |
403 Forbidden | Key lacks model access | Check key permissions at perplexity.ai/settings |
Module not found: openai | SDK not installed | Run npm install openai or pip install openai |
Connection refused | Wrong base URL | Ensure baseURL is https://api.perplexity.ai |
After successful auth, proceed to perplexity-hello-world for your first search query.