56 results available
Sign in
Skills directory

pinecone-cli

pinecone-io

·

Last changed
Hardened

This skill has been hardened by Chainguard

Last changed

This version passed the hardening gate. Hardening applied 3 targeted changes and preserved all other text. Classified findings before hardening: 2. Classified findings closed: 0. Classified findings remaining: 2. Unclassified scanner findings remaining: 0. Review findings closed: 2. Review findings remaining: 14.


Open before hardening

2

Low
Open after hardening

2

Low

Expand
File
Group
Subtype
Severity
Status
SKILL.md

Malicious Code & Command Execution

—

Low
Open
SKILL.md

Supply Chain & Install-Time Trust

Install-time download and execute

Low
Open

2 findings


SKILL.md

Pinecone CLI (pc)

Manage Pinecone from the terminal. The CLI is especially valuable for vector operations across all index types — something the MCP currently can't do.

CLI vs MCP

CLIMCP

Index types

All (standard, integrated, sparse)

Integrated only

Vector ops (upsert, query, fetch, update, delete)

✅

❌

Text search on integrated indexes

✅

✅

Backups, namespaces, org/project mgmt

✅

❌

CI/CD / scripting

✅

❌


Setup

Install (macOS)

brew tap pinecone-io/tap
brew install pinecone-io/tap/pinecone

Other platforms (Linux, Windows) — download from GitHub Releases.

Authenticate

# Interactive (recommended for local dev)
pc login
pc target -o "my-org" -p "my-project"

# Service account (recommended for CI/CD)
pc auth configure --client-id "$PINECONE_CLIENT_ID" --client-secret "$PINECONE_CLIENT_SECRET"

# API key (quick testing)
pc config set-api-key $PINECONE_API_KEY

Check status: pc auth status · pc target --show

Authenticating the CLI does not set PINECONE_API_KEY

pc login authenticates the CLI tool itself — it does not set PINECONE_API_KEY in your environment. Python scripts, Node.js SDKs, and other tools that use the Pinecone SDK need PINECONE_API_KEY set separately.

Use the CLI to create a key and export it in one step:

KEY=$(pc api-key create --name agent-sdk-key --json | jq -r '.value')
export PINECONE_API_KEY="$KEY"

Common Commands

TaskCommand

List indexes

pc index list

Create serverless index

pc index create -n my-index -d 1536 -m cosine -c aws -r us-east-1

Index stats

pc index stats -n my-index

Upload vectors from file

pc index vector upsert -n my-index --file ./vectors.json

Query by vector

pc index vector query -n my-index --vector '[0.1, ...]' -k 10 --include-metadata

Query by vector ID

pc index vector query -n my-index --id "doc-123" -k 10

Fetch vectors by ID

pc index vector fetch -n my-index --ids '["vec1","vec2"]'

List vector IDs

pc index vector list -n my-index

Delete vectors by filter

pc index vector delete -n my-index --filter '{"genre":"classical"}'

List namespaces

pc index namespace list -n my-index

Create backup

pc backup create -i my-index -n "my-backup"

JSON output (for scripting)

Add -j to any command


Interesting Things You Can Do

Query with custom vectors (not just text)

Unlike the MCP, the CLI lets you query any index with raw vector values — useful when you generate embeddings externally (OpenAI, HuggingFace, etc.):

pc index vector query -n my-index \
  --vector '[0.1, 0.2, ..., 0.9]' \
  --filter '{"source":{"$eq":"docs"}}' \
  -k 20 --include-metadata

Pipe embeddings directly into queries

jq -c '.embedding' doc.json | pc index vector query -n my-index --vector - -k 10

Bulk metadata update with preview

# Preview first
pc index vector update -n my-index \
  --filter '{"env":{"$eq":"staging"}}' \
  --metadata '{"env":"production"}' \
  --dry-run

# Apply
pc index vector update -n my-index \
  --filter '{"env":{"$eq":"staging"}}' \
  --metadata '{"env":"production"}'

Backup and restore

# Snapshot before a migration
pc backup create -i my-index -n "pre-migration"

# Restore to a new index if something goes wrong
pc backup restore -i <backup-uuid> -n my-index-restored

Automate in CI/CD

pc auth configure --client-id "$PINECONE_CLIENT_ID" --client-secret "$PINECONE_CLIENT_SECRET"
pc index vector upsert -n my-index --file ./vectors.jsonl --batch-size 1000

Script against JSON output

# Get all index names as a list
pc index list -j | jq -r '.[] | .name'

# Check if an index exists before creating
if ! pc index describe -n my-index -j 2>/dev/null | jq -e '.name' > /dev/null; then
  pc index create -n my-index -d 1536 -m cosine -c aws -r us-east-1
fi

Reference Files

Documentation

Install

Install with chainctl
chainctl skill install public/pinecone-io/pinecone-cli:latest
Get started with chainctl
View source

Harden your own skills

Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.

Provenance

Upstream sourcehttps://github.com/pinecone-io/skills
Upstream commit1bbb7b27ea01b9a08f0b4796e07cf7938f73ebca
OCI reference

skills.cgr.dev/public/github.com/pinecone-io/skills/pinecone-cli:latest

License

MIT

Files

HARDENING.md

LICENSE

SKILL.md

references/command-reference.md

references/troubleshooting.md


The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.