{"id":23205,"plugin_id":"plugins_6ab1957381a88191b41034b7a47dc51f","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:17:33.478Z","digest":"182a36537a1c67a071e4ce1d135c85ebdaceb78a604b53ecf0389c360a2eac59","against":null,"payload":{"description":"Create, manage, and chat with Pinecone Assistants for document Q&A with citations. Handles all assistant operations - create, upload, sync, chat, context retrieval, and list. Recognizes natural language like \"create an assistant from my docs\", \"ask my assistant about X\", or \"upload my docs to Pinecone\".","included_files":[{"relative_path":"references/chat.md","size_in_bytes":1211},{"relative_path":"references/context.md","size_in_bytes":1490},{"relative_path":"references/create.md","size_in_bytes":1494},{"relative_path":"references/list.md","size_in_bytes":713},{"relative_path":"references/sync.md","size_in_bytes":1907},{"relative_path":"references/upload.md","size_in_bytes":1790},{"relative_path":"scripts/chat.py","size_in_bytes":5056},{"relative_path":"scripts/context.py","size_in_bytes":6108},{"relative_path":"scripts/create.py","size_in_bytes":3997},{"relative_path":"scripts/list.py","size_in_bytes":8764},{"relative_path":"scripts/sync.py","size_in_bytes":13497},{"relative_path":"scripts/upload.py","size_in_bytes":7707}],"name":"assistant","skill_md_contents":"---\nname: assistant\ndescription: Create, manage, and chat with Pinecone Assistants for document Q&A with citations. Handles all assistant operations - create, upload, sync, chat, context retrieval, and list. Recognizes natural language like \"create an assistant from my docs\", \"ask my assistant about X\", or \"upload my docs to Pinecone\".\n---\n\n# Pinecone Assistant\n\nPinecone Assistant is a fully managed RAG service. Upload documents, ask questions, get cited answers. No embedding pipelines or infrastructure required.\n\n> All scripts are in `scripts/` relative to this skill directory.\n> Run with: `uv run scripts/script_name.py [arguments]`\n\nWhenever this skill asks the user to choose between options, confirm a destructive step, or pick from a list, ask in plain prose, list the options, and wait for their answer before continuing.\n\n## Operations\n\n| What to do | Script | Key args |\n|---|---|---|\n| Create an assistant | `scripts/create.py` | `--name` `--instructions` `--region` |\n| Upload files | `scripts/upload.py` | `--assistant` `--source` `--patterns` |\n| Sync files (incremental) | `scripts/sync.py` | `--assistant` `--source` `--delete-missing` `--dry-run` |\n| Chat / ask a question | `scripts/chat.py` | `--assistant` `--message` |\n| Get context snippets | `scripts/context.py` | `--assistant` `--query` `--top-k` |\n| List assistants | `scripts/list.py` | `--files` `--json` |\n\nFor full workflow details on any operation, read the relevant file in `references/`.\n\n---\n\n## Natural Language Recognition\n\nProactively handle these patterns without requiring explicit commands:\n\n**Create:** \"create an assistant\", \"make an assistant called X\", \"set up an assistant for my docs\"\n→ See [references/create.md](references/create.md)\n\n**Upload:** \"upload my docs\", \"add files to my assistant\", \"index my documentation\"\n→ See [references/upload.md](references/upload.md)\n\n**Sync:** \"sync my docs\", \"update my assistant\", \"keep assistant in sync\", \"refresh from ./docs\"\n→ See [references/sync.md](references/sync.md)\n\n**Chat:** \"ask my assistant about X\", \"what does my assistant know about X\", \"chat with X\"\n→ See [references/chat.md](references/chat.md)\n\n**Context:** \"search my assistant for X\", \"find context about X\"\n→ See [references/context.md](references/context.md)\n\n**List:** \"show my assistants\", \"what assistants do I have\"\n→ Run `uv run scripts/list.py`\n\n---\n\n## Conversation Memory\n\nTrack the last assistant used within the conversation:\n- When a user creates or first uses an assistant, remember its name\n- If user says \"my assistant\", \"it\", or \"the assistant\" → use the last one\n- Briefly confirm which assistant you're using: \"Asking docs-bot...\"\n- If ambiguous and multiple exist → ask the user to clarify\n\n---\n\n## Multi-Step Requests\n\nHandle chained requests naturally. Example:\n\n> \"Create an assistant called docs-bot, upload my ./docs folder, and ask what the main features are\"\n\n1. `uv run scripts/create.py --name docs-bot`\n2. `uv run scripts/upload.py --assistant docs-bot --source ./docs`\n3. `uv run scripts/chat.py --assistant docs-bot --message \"what are the main features?\"`\n\n---\n\n## Prerequisites\n\n- `PINECONE_API_KEY` must be available:\n- Codex CLI: run `export PINECONE_API_KEY=\"your-key\"` in the shell you start `codex` from. The bundled MCP server reads it from Codex's environment.\n- Codex Desktop on macOS: run `launchctl setenv PINECONE_API_KEY \"your-key\"`, then quit Codex fully and open it again.\n- For scripts, you can also use `uv run --env-file .env scripts/...`.\n- `uv` must be installed — [install uv](https://docs.astral.sh/uv/getting-started/installation/)\n- Get a free API key at: https://app.pinecone.io/?sessionType=signup\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}