Pinecone Assistant
PineconeOfficialPublished by Pinecone
- Skill
- Tool integration
- Data and AI
- MIT
- Low risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Pinecone Assistant is a managed RAG service that enables users to upload documents and perform natural language queries with citations. This skill provides a set of scripts to automate the lifecycle of these assistants, including creation, file management, document synchronization, conversational Q&A, and raw context retrieval. It simplifies the integration by handling the underlying infrastructure, allowing users to focus on querying their data.
What it does
- Create and configure new Pinecone Assistants.
- Upload and index documents for knowledge base population.
- Synchronize local files with the assistant's knowledge base.
- Perform conversational Q&A with cited responses.
- Retrieve raw context snippets for debugging or custom workflows.
- List and manage existing assistants.
When to use it
- When you need to build a RAG-enabled assistant without managing embedding pipelines.
- When you want to query specific documentation or local files using natural language.
- When you need to verify the relevance of indexed content through raw context retrieval.
- When you want to automate the synchronization of local document folders with a cloud assistant.
Advantages
- Fully managed infrastructure eliminates the need for manual embedding pipelines.
- Provides cited answers for improved transparency and verification.
- Supports incremental synchronization to keep knowledge bases up to date.
- Enables both conversational chat and raw data retrieval for flexible use cases.
Usage examples
- “Create an assistant called docs-bot and upload my ./docs folder.”
- The agent initializes a new Pinecone Assistant named docs-bot and indexes all files found in the specified local directory.
- “Ask my assistant about the main features of the project.”
- The agent sends the query to the active assistant and returns a conversational response with relevant citations.
- “Find context about authentication in my assistant.”
- The agent retrieves and displays raw text snippets related to authentication from the assistant's knowledge base.
- “Sync my docs with the assistant.”
- The agent performs an incremental update, ensuring the assistant's knowledge base reflects the current state of the local files.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/pinecone-io/pinecone-assistant/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip pinecone-assistant.zip -d .agents/skills
Documentation by Pinecone
Pinecone Assistant
Pinecone Assistant is a fully managed RAG service. Upload documents, ask questions, get cited answers. No embedding pipelines or infrastructure required.
All scripts are in
scripts/relative to this skill directory. Run with:uv run scripts/script_name.py [arguments]
<<clarify_style>>
Operations
| What to do | Script | Key args |
|---|---|---|
| Create an assistant | scripts/create.py | --name --instructions --region |
| Upload files | scripts/upload.py | --assistant --source --patterns |
| Sync files (incremental) | scripts/sync.py | --assistant --source --delete-missing --dry-run |
| Chat / ask a question | scripts/chat.py | --assistant --message |
| Get context snippets | scripts/context.py | --assistant --query --top-k |
| List assistants | scripts/list.py | --files --json |
For full workflow details on any operation, read the relevant file in references/.
Natural Language Recognition
Proactively handle these patterns without requiring explicit commands:
Create: "create an assistant", "make an assistant called X", "set up an assistant for my docs" → See references/create.md
Upload: "upload my docs", "add files to my assistant", "index my documentation" → See references/upload.md
Sync: "sync my docs", "update my assistant", "keep assistant in sync", "refresh from ./docs" → See references/sync.md
Chat: "ask my assistant about X", "what does my assistant know about X", "chat with X" → See references/chat.md
Context: "search my assistant for X", "find context about X" → See references/context.md
List: "show my assistants", "what assistants do I have"
→ Run uv run scripts/list.py
Conversation Memory
Track the last assistant used within the conversation:
When a user creates or first uses an assistant, remember its name
If user says "my assistant", "it", or "the assistant" → use the last one
Briefly confirm which assistant you're using: "Asking docs-bot..."
If ambiguous and multiple exist → ask the user to clarify
Multi-Step Requests
Handle chained requests naturally. Example:
"Create an assistant called docs-bot, upload my ./docs folder, and ask what the main features are"
uv run scripts/create.py --name docs-botuv run scripts/upload.py --assistant docs-bot --source ./docsuv run scripts/chat.py --assistant docs-bot --message "what are the main features?"
Prerequisites
PINECONE_API_KEYmust be available: <<api_key_setup>>uvmust be installed — install uvGet a free API key at: https://app.pinecone.io/?sessionType=signup
Files
- ATTRIBUTION.mdAdded by AutoGineer865 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md3.1 KiB
- references/chat.md1.2 KiB
- references/context.md1.5 KiB
- references/create.md1.5 KiB
- references/list.md713 B
- references/sync.md1.9 KiB
- references/upload.md1.7 KiB
- scripts/chat.pyScript4.9 KiB
- scripts/context.pyScript5.8 KiB
- scripts/create.pyScript3.7 KiB
- scripts/list.pyScript8.3 KiB
- scripts/sync.pyScript13.2 KiB
- scripts/upload.pyScript7.4 KiB
scripts/create.py
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.10"
# dependencies = [
# "pinecone==9.1.0",
# "typer>=0.15.0",
# "rich>=13.0.0",
# ]
# ///
"""
Create a new Pinecone Assistant.
Usage:
uv run create.py --name ASSISTANT_NAME [--instructions TEXT] [--region us|eu] [--timeout SECONDS]
Environment Variables:
PINECONE_API_KEY: Required Pinecone API key
Output:
Success message with assistant details including host URL for MCP configuration
"""
import os
import typer
from rich.console import Console
from rich.panel import Panel
from rich.table import Table
from pinecone import Pinecone
app = typer.Typer()
console = Console()
@app.command()
def main(
name: str = typer.Option(..., "--name", "-n", help="Unique name for the assistant"),
instructions: str = typer.Option(
"",
"--instructions",
"-i",
help="Instructions for assistant behavior (max 16KB)",
),
region: str = typer.Option(
"us",
"--region",
"-r",
help="Deployment region: 'us' or 'eu'",
),
timeout: int = typer.Option(
30,
"--timeout",
"-t",
help="Seconds to wait for ready status",
),
):
"""Create a new Pinecone Assistant for document Q&A with citations."""
# Validate region
if region not in ["us", "eu"]:
console.print("[red]Error: Region must be 'us' or 'eu'[/red]")
raise typer.Exit(1)
# Check for API key
api_key = os.environ.get("PINECONE_API_KEY")
if not api_key:
console.print("[red]Error: PINECONE_API_KEY environment variable not set[/red]")
console.print("\nGet your API key from: https://app.pinecone.io/?sessionType=signup")
raise typer.Exit(1)
try:
# Initialize Pinecone client
with console.status(f"[bold blue]Creating assistant '{name}'...[/bold blue]"):
pc = Pinecone(api_key=api_key, source_tag="pinecone_skills:assistant")
# Create assistant
assistant = pc.assistant.create_assistant(
assistant_name=name,
instructions=instructions if instructions else None,
region=region,
timeout=timeout,
metadata={"agentic-ide-source":"pinecone-skills"}
)
# Success message
console.print(f"\n[bold green]✓ Assistant '{name}' created successfully![/bold green]\n")
# Display assistant details in a table
table = Table(show_header=False, box=None)
table.add_column("Property", style="cyan")
table.add_column("Value", style="white")
table.add_row("Name", assistant.name)
table.add_row("Region", region)
table.add_row("Status", f"[yellow]{assistant.status}[/yellow]")
table.add_row("Host", getattr(assistant, "host", "N/A"))
if instructions:
instructions_preview = instructions[:80] + "..." if len(instructions) > 80 else instructions
table.add_row("Instructions", instructions_preview)
console.print(table)
# MCP configuration info
host = getattr(assistant, "host", "")
if host:
mcp_info = f"""[bold]MCP Endpoint:[/bold]
{host}/mcp/assistants/{name}
[bold]Set environment variable:[/bold]
export PINECONE_ASSISTANT_HOST="{host}"
"""
console.print(Panel(mcp_info, title="MCP Configuration", border_style="blue"))
# Next steps
next_steps = f"""[bold]Next steps:[/bold]
<<next_after_create>>"""
console.print(Panel(next_steps, title="What's Next?", border_style="green"))
except Exception as e:
console.print(f"[red]Error creating assistant: {e}[/red]")
raise typer.Exit(1)
if __name__ == "__main__":
app()
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs an API key, Needs Python
Security
What our scanner noticed· Low risk
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Pinecone
- Publisher
- Pinecone (Official)
- Source
- pinecone-io/skills · skills/pinecone-assistant · commit 885dc53
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Pinecone.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download pinecone-assistant.zip