{"id":"791ce2ae-8cd7-4bc9-bbdc-21ca03b2d6f1","shortId":"LqpHKV","kind":"skill","title":"quickstart","tagline":"Interactive Pinecone quickstart for new developers. Choose between two paths - Database (create an integrated index, upsert data, and query using Pinecone MCP + Python) or Assistant (create a Pinecone Assistant for document Q&A). Use when a user wants to get started with Pinecone","description":"# Pinecone Quickstart\n\nWelcome! This skill walks you through your first Pinecone experience using the tools available to you. In this quickstart,\nyou will learn how to do a simple form of semantic search over some example data.\n\n## Prerequisites\n\nBefore starting either path, verify the API key works by calling `list-indexes` via the Pinecone MCP. If it succeeds, proceed. If it fails, ask the user to set their key:\n\n- Terminal: `export PINECONE_API_KEY=\"your-key\"`\n- Or create a `.env` file in the project root: `PINECONE_API_KEY=your-key`\n\nThen retry `list-indexes` to confirm.\n\n## Step 0: Choose Your Path\n\nAsk the user which path they want:\n\n- **Database** – Build a vector search index. Best for developers who want to store and search embeddings. Uses the Pinecone MCP + a Python upsert script.\n- **Assistant** – Build a document Q&A assistant. Best for users who want to upload files and ask questions with cited answers. No code required.\n\n---\n\n## Path A: Database Quickstart\n\nFor each step, explain to the user what will happen. An overview is here:\n\n1. Check if MCP is set\n2. Create an integrated index with MCP\n3. Upsert sample data using the bundled script (9 sentences across productivity, health, and nature themes)\n4. Run a semantic search query and explore further queries\n5. Optionally try reranking\n6. Offer the complete standalone script\n\n### Step 1 – Verify MCP is Available\n\nThe prerequisite check already called `list-indexes`. If it succeeded, the MCP is working — proceed to Step 2.\n\nIf it failed because MCP tools were unavailable (not an auth error):\n- Tell the user the MCP server needs to be configured\n- Point them to: https://docs.pinecone.io/reference/tools/mcp\n\n### Step 2 – Create an Integrated Index\n\nUse the MCP `create-index-for-model` tool to create a serverless index with integrated embeddings:\n\n```\nname: quickstart-skills\ncloud: aws\nregion: us-east-1\nembed:\n  model: llama-text-embed-v2\n  fieldMap:\n    text: chunk_text\n```\n\n**Explain to the user what's happening:**\n- An *integrated index* uses a built-in Pinecone embedding model (`llama-text-embed-v2`)\n- This means you send plain text and Pinecone handles the embedding automatically\n- The `field_map` tells Pinecone which field in your records contains the text to embed\n\nWait for the index to become ready before proceeding. Waiting a few seconds is sufficient.\n\n### Step 3 – Upsert Sample Data\n\nRun the bundled upsert script to seed the index with sample records.\n\nIf `PINECONE_API_KEY` is set in the environment:\n```bash\nuv run scripts/upsert.py --index quickstart-skills\n```\n\nIf using a `.env` file:\n```bash\nuv run --env-file .env scripts/upsert.py --index quickstart-skills\n```\n\n**Explain to the user what's happening:**\n- The script uploads 9 sample records across three themes: **productivity** (getting work done), **health** (feeling unwell), and **nature** (outdoors/wildlife)\n- The dataset is intentionally varied so semantic search can show its value — the queries below use completely different words than the records, but the right ones still surface\n- Each record has an `_id`, a `chunk_text` field (the text that gets embedded), and a `category` field\n- This is the same structure you'd use for your own data — just replace the records\n\n### Step 4 – Query with the MCP\n\nUse the MCP `search-records` tool to run the first semantic search:\n\n```\nindex: quickstart-skills\nnamespace: example-namespace\nquery:\n  topK: 3\n  inputs:\n    text: \"getting things done efficiently\"\n```\n\nDisplay the results in a clean table: ID, score, and `chunk_text`.\n\n**Explain to the user what's happening:**\n- Notice the query shares no keywords with the records — but it surfaces the productivity sentences\n- That's semantic search: it finds meaning, not just matching words\n- You sent plain text — Pinecone embedded the query using the same model as the index\n\n**Offer to explore further:** Ask the user if they'd like to try another query to see the effect more clearly:\n- Option A: `\"feeling under the weather\"` — should surface the health records\n- Option B: `\"wildlife spotting outside\"` — should surface the nature records\n- Option C: No thanks, move on\n\nRun whichever query they choose and display the results the same way. If they want to try both, do both. After each result, point out which theme surfaced and why.\n\nIf they decline or are done exploring, proceed to Step 5 or offer to skip ahead to the complete script.\n\n### Step 5 – Try Reranking (Optional)\n\nAsk the user if they want to try reranking.\n\nIf yes, use `search-records` again with reranking enabled:\n\n```\nrerank:\n  model: bge-reranker-v2-m3\n  rankFields: [chunk_text]\n  topN: 3\n```\n\n**Explain**: Reranking runs a second-pass model over the results to improve relevance ordering.\n\n### Step 6 – Wrap Up\n\nCongratulate the user on completing the quickstart. Ask if they'd like a standalone Python script that does everything in one go — create index, upsert, query, and rerank.\n\nIf yes, copy it to their working directory:\n\n```bash\ncp scripts/quickstart_complete.py ./pinecone_quickstart.py\n```\n\nTell the user:\n- The script is at `./pinecone_quickstart.py`\n- Run it with: `uv run pinecone_quickstart.py`\n- It uses `uv` inline dependencies — no separate install needed\n- They can swap in their own `records` list to build something real\n\n---\n\n## Path B: Assistant Quickstart\n\nGuide the user through the Pinecone Assistant workflow using the existing assistant skills:\n\n### Step 1 – Check for Documents\n\nBefore anything else, ask the user if they have files to upload. Pinecone Assistant accepts `.pdf`, `.md`, `.txt`, and `.docx` files — a single file or a folder of files both work.\n\n**If they have files:** ask for the path and proceed to Step 2.\n\n**If they don't have files:** offer two options:\n- **Generate sample docs** — create a few short markdown files in `./sample-docs/` so they can complete the quickstart right now. Ask what topics they'd like (or default to: a product FAQ, a short how-to guide, and a brief company overview). Write 3 files, each 150–250 words.\n- **Come back later** — let them know they can return once they have documents and pick up from Step 2.\n\n### Step 2 – Create an Assistant\n\nInvoke `assistant` or run (add `--env-file .env` if using a `.env` file):\n```bash\nuv run ../assistant/scripts/create.py --name my-assistant\n```\n\nExplain: The assistant is a fully managed RAG service — upload documents, ask questions, get cited answers.\n\n### Step 3 – Upload Documents\n\nInvoke `assistant` or run (add `--env-file .env` if using a `.env` file):\n```bash\nuv run ../assistant/scripts/upload.py --assistant my-assistant --source ./your-docs\n```\n\nExplain: Pinecone handles chunking, embedding, and indexing automatically — no configuration needed.\n\n### Step 4 – Chat with the Assistant\n\nInvoke `assistant` or run (add `--env-file .env` if using a `.env` file):\n```bash\nuv run ../assistant/scripts/chat.py --assistant my-assistant --message \"What are the main topics in these documents?\"\n```\n\nExplain: Responses include citations with source file and page number.\n\n### Next Steps for Assistant\n\n- Invoke `assistant` to keep the assistant up to date as documents change\n- Use the assistant skill to retrieve raw context snippets for custom workflows\n- Every assistant is also an MCP server — see https://docs.pinecone.io/guides/assistant/mcp-server\n\n---\n\n## Troubleshooting\n\n**`PINECONE_API_KEY` not set**\n\nTerminal environments:\n```bash\nexport PINECONE_API_KEY=\"your-key\"\n```\nIDEs that don't inherit shell variables: create a `.env` file in the project root:\n```\nPINECONE_API_KEY=your-key\n```\nThen use `uv run --env-file .env` when running scripts. Restart your IDE/agent session after setting.\n\n**MCP tools not available**\n- Verify the Pinecone MCP server is configured in your IDE's MCP settings\n- Check that `PINECONE_API_KEY` is set before the MCP server starts\n\n**Index already exists**\n- The upsert script is safe to re-run — it will upsert over existing records\n- Or delete and recreate: use `pc index delete -n quickstart-skills` via the CLI\n\n**`uv` not installed**\nSee the [uv installation guide](https://docs.astral.sh/uv/getting-started/installation/).\n\n## Further Reading\n\n- Quickstart docs: https://docs.pinecone.io/guides/get-started/quickstart\n- Integrated indexes: https://docs.pinecone.io/guides/index-data/create-an-index\n- Python SDK: https://docs.pinecone.io/guides/get-started/python-sdk\n- MCP server: https://docs.pinecone.io/reference/tools/mcp","tags":["quickstart","gemini","cli","extension","pinecone-io","agent-skills","agentic-ides","gemini-cli","gemini-cli-extension","pinecone","semantic-search","vector-search"],"capabilities":["skill","source-pinecone-io","skill-quickstart","topic-agent-skills","topic-agentic-ides","topic-gemini-cli","topic-gemini-cli-extension","topic-pinecone","topic-semantic-search","topic-vector-search"],"categories":["gemini-cli-extension"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/pinecone-io/gemini-cli-extension/quickstart","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add pinecone-io/gemini-cli-extension","source_repo":"https://github.com/pinecone-io/gemini-cli-extension","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 23 github stars · SKILL.md body (8,449 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-01T01:02:18.401Z","embedding":null,"createdAt":"2026-04-18T22:24:48.561Z","updatedAt":"2026-05-01T01:02:18.401Z","lastSeenAt":"2026-05-01T01:02:18.401Z","tsv":"'/assistant/scripts/chat.py':1146 '/assistant/scripts/create.py':1063 '/assistant/scripts/upload.py':1105 '/guides/assistant/mcp-server':1208 '/guides/get-started/python-sdk':1352 '/guides/get-started/quickstart':1342 '/guides/index-data/create-an-index':1347 '/pinecone_quickstart.py':862,870 '/reference/tools/mcp':324,1357 '/sample-docs':983 '/uv/getting-started/installation/).':1335 '/your-docs':1111 '0':146 '1':223,273,358,916 '150':1019 '2':229,296,326,963,1040,1042 '250':1020 '3':236,436,603,803,1016,1085 '4':252,575,1124 '5':262,758,769 '6':266,820 '9':244,496 'accept':934 'across':246,499 'add':1050,1092,1133 'ahead':763 'alreadi':281,1293 'also':1201 'anoth':683 'answer':201,1083 'anyth':921 'api':89,118,133,454,1211,1220,1241,1283 'ask':108,150,197,674,773,830,923,955,992,1079 'assist':26,30,181,187,900,908,913,933,1045,1047,1067,1070,1089,1106,1109,1128,1130,1147,1150,1173,1175,1179,1188,1199 'auth':307 'automat':404,1119 'avail':60,277,1266 'aw':353 'b':703,899 'back':1023 'bash':461,474,859,1060,1102,1143,1217 'becom':425 'best':163,188 'bge':795 'bge-reranker-v2-m3':794 'brief':1012 'build':158,182,895 'built':383 'built-in':382 'bundl':242,442 'c':713 'call':93,282 'categori':556 'chang':1185 'chat':1125 'check':224,280,917,1280 'choos':8,147,722 'chunk':368,546,620,800,1115 'citat':1163 'cite':200,1082 'clean':615 'clear':690 'cli':1324 'cloud':352 'code':203 'come':1022 'compani':1013 'complet':269,528,766,827,987 'configur':318,1121,1273 'confirm':144 'congratul':823 'contain':415 'context':1193 'copi':853 'cp':860 'creat':13,27,124,230,327,335,341,845,976,1043,1232 'create-index-for-model':334 'custom':1196 'd':564,679,833,996 'data':18,81,239,439,569 'databas':12,157,207 'dataset':513 'date':1182 'declin':750 'default':999 'delet':1311,1317 'depend':881 'develop':7,165 'differ':529 'directori':858 'display':610,724 'doc':975,1339 'docs.astral.sh':1334 'docs.astral.sh/uv/getting-started/installation/).':1333 'docs.pinecone.io':323,1207,1341,1346,1351,1356 'docs.pinecone.io/guides/assistant/mcp-server':1206 'docs.pinecone.io/guides/get-started/python-sdk':1350 'docs.pinecone.io/guides/get-started/quickstart':1340 'docs.pinecone.io/guides/index-data/create-an-index':1345 'docs.pinecone.io/reference/tools/mcp':322,1355 'document':32,184,919,1034,1078,1087,1159,1184 'docx':939 'done':505,608,753 'east':357 'effect':688 'effici':609 'either':85 'els':922 'emb':359,364,391,419 'embed':172,347,386,403,553,660,1116 'enabl':791 'env':126,472,478,480,1052,1054,1058,1094,1096,1100,1135,1137,1141,1234,1251,1253 'env-fil':477,1051,1093,1134,1250 'environ':460,1216 'error':308 'everi':1198 'everyth':841 'exampl':80,599 'example-namespac':598 'exist':912,1294,1308 'experi':56 'explain':212,370,486,622,804,1068,1112,1160 'explor':259,672,754 'export':116,1218 'fail':107,299 'faq':1003 'feel':507,693 'field':406,411,548,557 'fieldmap':366 'file':127,195,473,479,929,940,943,948,954,969,981,1017,1053,1059,1095,1101,1136,1142,1166,1235,1252 'find':649 'first':54,590 'folder':946 'form':74 'fulli':1073 'generat':973 'get':41,503,552,606,1081 'go':844 'guid':902,1009,1332 'handl':401,1114 'happen':218,376,492,628 'health':248,506,700 'how-to':1006 'id':544,617 'ide':1225,1276 'ide/agent':1259 'improv':816 'includ':1162 'index':16,96,142,162,233,285,330,336,344,379,423,448,465,482,593,669,846,1118,1292,1316,1344 'inherit':1229 'inlin':880 'input':604 'instal':884,1327,1331 'integr':15,232,329,346,378,1343 'intent':515 'interact':2 'invok':1046,1088,1129,1174 'keep':1177 'key':90,114,119,122,134,137,455,1212,1221,1224,1242,1245,1284 'keyword':634 'know':1027 'later':1024 'learn':68 'let':1025 'like':680,834,997 'list':95,141,284,893 'list-index':94,140,283 'llama':362,389 'llama-text-embed-v2':361,388 'm3':798 'main':1155 'manag':1074 'map':407 'markdown':980 'match':653 'mcp':23,100,176,226,235,275,290,301,313,333,579,582,1203,1263,1270,1278,1289,1353 'md':936 'mean':394,650 'messag':1151 'model':338,360,387,666,793,811 'move':716 'my-assist':1065,1107,1148 'n':1318 'name':348,1064 'namespac':597,600 'natur':250,510,710 'need':315,885,1122 'new':6 'next':1170 'notic':629 'number':1169 'offer':267,670,760,970 'one':537,843 'option':263,691,702,712,772,972 'order':818 'outdoors/wildlife':511 'outsid':706 'overview':220,1014 'page':1168 'pass':810 'path':11,86,149,154,205,898,958 'pc':1315 'pdf':935 'pick':1036 'pinecon':3,22,29,44,45,55,99,117,132,175,385,400,409,453,659,907,932,1113,1210,1219,1240,1269,1282 'pinecone_quickstart.py':876 'plain':397,657 'point':319,741 'prerequisit':82,279 'proceed':104,293,428,755,960 'product':247,502,642,1002 'project':130,1238 'python':24,178,837,1348 'q':33,185 'queri':20,257,261,525,576,601,631,662,684,720,848 'question':198,1080 'quickstart':1,4,46,65,208,350,467,484,595,829,901,989,1320,1338 'quickstart-skil':349,466,483,594,1319 'rag':1075 'rankfield':799 'raw':1192 're':1302 're-run':1301 'read':1337 'readi':426 'real':897 'record':414,451,498,533,541,573,585,637,701,711,787,892,1309 'recreat':1313 'region':354 'relev':817 'replac':571 'requir':204 'rerank':265,771,781,790,792,796,805,850 'respons':1161 'restart':1257 'result':612,726,740,814 'retri':139 'retriev':1191 'return':1030 'right':536,990 'root':131,1239 'run':253,440,463,476,588,718,806,871,875,1049,1062,1091,1104,1132,1145,1249,1255,1303 'safe':1299 'sampl':238,438,450,497,974 'score':618 'script':180,243,271,444,494,767,838,867,1256,1297 'scripts/quickstart_complete.py':861 'scripts/upsert.py':464,481 'sdk':1349 'search':77,161,171,256,519,584,592,647,786 'search-record':583,785 'second':432,809 'second-pass':808 'see':686,1205,1328 'seed':446 'semant':76,255,518,591,646 'send':396 'sent':656 'sentenc':245,643 'separ':883 'server':314,1204,1271,1290,1354 'serverless':343 'servic':1076 'session':1260 'set':112,228,457,1214,1262,1279,1286 'share':632 'shell':1230 'short':979,1005 'show':521 'simpl':73 'singl':942 'skill':49,351,468,485,596,914,1189,1321 'skill-quickstart' 'skip':762 'snippet':1194 'someth':896 'sourc':1110,1165 'source-pinecone-io' 'spot':705 'standalon':270,836 'start':42,84,1291 'step':145,211,272,295,325,435,574,757,768,819,915,962,1039,1041,1084,1123,1171 'still':538 'store':169 'structur':562 'succeed':103,288 'suffici':434 'surfac':539,640,698,708,745 'swap':888 'tabl':616 'tell':309,408,863 'termin':115,1215 'text':363,367,369,390,398,417,547,550,605,621,658,801 'thank':715 'theme':251,501,744 'thing':607 'three':500 'tool':59,302,339,586,1264 'topic':994,1156 'topic-agent-skills' 'topic-agentic-ides' 'topic-gemini-cli' 'topic-gemini-cli-extension' 'topic-pinecone' 'topic-semantic-search' 'topic-vector-search' 'topk':602 'topn':802 'tri':264,682,734,770,780 'troubleshoot':1209 'two':10,971 'txt':937 'unavail':304 'unwel':508 'upload':194,495,931,1077,1086 'upsert':17,179,237,437,443,847,1296,1306 'us':356 'us-east':355 'use':21,35,57,173,240,331,380,470,527,565,580,663,784,878,910,1056,1098,1139,1186,1247,1314 'user':38,110,152,190,215,311,373,489,625,676,775,825,865,904,925 'uv':462,475,874,879,1061,1103,1144,1248,1325,1330 'v2':365,392,797 'valu':523 'vari':516 'variabl':1231 'vector':160 'verifi':87,274,1267 'via':97,1322 'wait':420,429 'walk':50 'want':39,156,167,192,732,778 'way':729 'weather':696 'welcom':47 'whichev':719 'wildlif':704 'word':530,654,1021 'work':91,292,504,857,950 'workflow':909,1197 'wrap':821 'write':1015 'yes':783,852 'your-key':120,135,1222,1243","prices":[{"id":"132533f8-9f2e-4907-a740-3969cd7580de","listingId":"791ce2ae-8cd7-4bc9-bbdc-21ca03b2d6f1","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"pinecone-io","category":"gemini-cli-extension","install_from":"skills.sh"},"createdAt":"2026-04-18T22:24:48.561Z"}],"sources":[{"listingId":"791ce2ae-8cd7-4bc9-bbdc-21ca03b2d6f1","source":"github","sourceId":"pinecone-io/gemini-cli-extension/quickstart","sourceUrl":"https://github.com/pinecone-io/gemini-cli-extension/tree/main/skills/quickstart","isPrimary":false,"firstSeenAt":"2026-04-18T22:24:48.561Z","lastSeenAt":"2026-05-01T01:02:18.401Z"}],"details":{"listingId":"791ce2ae-8cd7-4bc9-bbdc-21ca03b2d6f1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"pinecone-io","slug":"quickstart","github":{"repo":"pinecone-io/gemini-cli-extension","stars":23,"topics":["agent-skills","agentic-ides","gemini-cli","gemini-cli-extension","pinecone","retrieval-augmented-generation","semantic-search","vector-search"],"license":"mit","html_url":"https://github.com/pinecone-io/gemini-cli-extension","pushed_at":"2026-04-24T19:30:56Z","description":"The official Pinecone Gemini CLI extension repo.","skill_md_sha":"f859b115bb1466c93521ac2e934ab933e6b9a5c2","skill_md_path":"skills/quickstart/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/pinecone-io/gemini-cli-extension/tree/main/skills/quickstart"},"layout":"multi","source":"github","category":"gemini-cli-extension","frontmatter":{"name":"quickstart","description":"Interactive Pinecone quickstart for new developers. Choose between two paths - Database (create an integrated index, upsert data, and query using Pinecone MCP + Python) or Assistant (create a Pinecone Assistant for document Q&A). Use when a user wants to get started with Pinecone for the first time or wants a guided tour of Pinecone's tools."},"skills_sh_url":"https://skills.sh/pinecone-io/gemini-cli-extension/quickstart"},"updatedAt":"2026-05-01T01:02:18.401Z"}}