[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-convex-convex-docs":3,"mdc--akosv7-key":32,"related-repo-convex-convex-docs":230,"related-org-convex-convex-docs":335},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":21,"repoUrl":22,"updatedAt":23,"license":24,"forks":25,"topics":26,"repo":27,"sourceUrl":30,"mdContent":31},"convex-docs","retrieve version-specific Convex documentation","Pull version-current Convex docs for the version this project uses — pin the installed version, fetch page-as-markdown or check node_modules types, freshness hierarchy — instead of writing a possibly-stale API from memory.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"convex","Convex","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fconvex.png","get-convex",[13,15,18],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"Documentation","documentation",{"name":19,"slug":20,"type":14},"Reference","reference",34,"https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills","2026-08-04T05:59:00.225111",null,7,[],{"repoUrl":22,"stars":21,"forks":25,"topics":28,"description":29},[],"Convex Skills for Agents","https:\u002F\u002Fgithub.com\u002Fget-convex\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fskills\u002Fconvex-docs","---\nname: convex-docs\ndescription: \"Pull version-current Convex docs for the version this project uses — pin the installed version, fetch page-as-markdown or check node_modules types, freshness hierarchy — instead of writing a possibly-stale API from memory.\"\n---\n\n\u003C!-- GENERATED from convex-agents content\u002Fcapabilities\u002Fconvex-docs.json — do not edit by hand. -->\n\n# Pull version-current Convex docs\n\nconvex-expert carries baked, plugin-versioned knowledge — excellent for stable idioms, but it goes stale exactly where it hurts: a component that gained a new export, a CLI flag that changed, an API renamed between versions. This capability is the freshness discipline layered on top: pin to the project's real version, fetch the live page cheaply as markdown, and never write an unfamiliar API from memory when the current source is one fetch away.\n\n## Workflow\n\n1. PIN the version: read the installed `convex` version (`node -p \"require('.\u002Fnode_modules\u002Fconvex\u002Fpackage.json').version\"` or `package.json`), and the versions of any `@convex-dev\u002F*` components in play. The docs you trust must match THESE versions — version skew is the single largest source of wrong Convex code.\n2. FRESHNESS HIERARCHY (cheapest-correct first, the Supabase-taught order):\n   (a) if a served docs tool \u002F MCP `search_convex_docs` is available, use it (it returns version-scoped, reranked answers sized to the context window);\n   (b) else fetch the specific docs page as MARKDOWN — request `docs.convex.dev\u002F\u003Cpath>` and prefer a `.md`\u002Fmarkdown form when the site serves one (far fewer tokens than HTML), or the component's README at the pinned version;\n   (c) only then fall back to a general web search, and treat its version as unverified.\n   Do NOT skip to writing the API from memory when currentness is in doubt.\n3. VERIFY against the installed package when it matters: for a component export you're unsure exists, check `node_modules\u002F@convex-dev\u002F\u003Cx>\u002F` (its `package.json` `exports`, its `.d.ts`) — the installed types are the ground truth for THIS version, more authoritative than any doc.\n4. USE the fetched fact narrowly: apply the current signature\u002Fflag, cite where it came from (page + version), and hand the actual code back to convex-expert to write idiomatically. convex-docs supplies the fresh fact; convex-expert supplies the idiom.\n5. On a version-mismatch build error (an export\u002Fflag that 'should' exist but doesn't): treat it as a currentness question — pin the version, fetch the current API, and correct — rather than guessing a different spelling.\n\n## Rules\n\n- Never write an unfamiliar or possibly-renamed Convex\u002Fcomponent API from model memory when currentness is in doubt — pin the version and fetch the current source first.\n- The installed package's own `exports`\u002F`.d.ts` in node_modules is the ground truth for this version — more authoritative than any doc page.\n- Follow the freshness hierarchy: served docs tool → page-as-markdown \u002F pinned README → general web (unverified) — cheapest-correct first, fewest tokens.\n- Prefer markdown over HTML doc pages — far fewer tokens for the same content.\n- Supply the fresh FACT; hand idiomatic code back to convex-expert. This is a freshness layer, not a replacement for the baked knowledge.\n- A version-mismatch build error is a currentness question, not a spelling guess — re-pin and re-fetch.\n",{"data":33,"body":34},{"name":4,"description":6},{"type":35,"children":36},"root",[37,46,52,59,176,182],{"type":38,"tag":39,"props":40,"children":42},"element","h1",{"id":41},"pull-version-current-convex-docs",[43],{"type":44,"value":45},"text","Pull version-current Convex docs",{"type":38,"tag":47,"props":48,"children":49},"p",{},[50],{"type":44,"value":51},"convex-expert carries baked, plugin-versioned knowledge — excellent for stable idioms, but it goes stale exactly where it hurts: a component that gained a new export, a CLI flag that changed, an API renamed between versions. This capability is the freshness discipline layered on top: pin to the project's real version, fetch the live page cheaply as markdown, and never write an unfamiliar API from memory when the current source is one fetch away.",{"type":38,"tag":53,"props":54,"children":56},"h2",{"id":55},"workflow",[57],{"type":44,"value":58},"Workflow",{"type":38,"tag":60,"props":61,"children":62},"ol",{},[63,101,130,166,171],{"type":38,"tag":64,"props":65,"children":66},"li",{},[67,69,75,77,83,85,91,93,99],{"type":44,"value":68},"PIN the version: read the installed ",{"type":38,"tag":70,"props":71,"children":73},"code",{"className":72},[],[74],{"type":44,"value":8},{"type":44,"value":76}," version (",{"type":38,"tag":70,"props":78,"children":80},{"className":79},[],[81],{"type":44,"value":82},"node -p \"require('.\u002Fnode_modules\u002Fconvex\u002Fpackage.json').version\"",{"type":44,"value":84}," or ",{"type":38,"tag":70,"props":86,"children":88},{"className":87},[],[89],{"type":44,"value":90},"package.json",{"type":44,"value":92},"), and the versions of any ",{"type":38,"tag":70,"props":94,"children":96},{"className":95},[],[97],{"type":44,"value":98},"@convex-dev\u002F*",{"type":44,"value":100}," components in play. The docs you trust must match THESE versions — version skew is the single largest source of wrong Convex code.",{"type":38,"tag":64,"props":102,"children":103},{},[104,106,112,114,120,122,128],{"type":44,"value":105},"FRESHNESS HIERARCHY (cheapest-correct first, the Supabase-taught order):\n(a) if a served docs tool \u002F MCP ",{"type":38,"tag":70,"props":107,"children":109},{"className":108},[],[110],{"type":44,"value":111},"search_convex_docs",{"type":44,"value":113}," is available, use it (it returns version-scoped, reranked answers sized to the context window);\n(b) else fetch the specific docs page as MARKDOWN — request ",{"type":38,"tag":70,"props":115,"children":117},{"className":116},[],[118],{"type":44,"value":119},"docs.convex.dev\u002F\u003Cpath>",{"type":44,"value":121}," and prefer a ",{"type":38,"tag":70,"props":123,"children":125},{"className":124},[],[126],{"type":44,"value":127},".md",{"type":44,"value":129},"\u002Fmarkdown form when the site serves one (far fewer tokens than HTML), or the component's README at the pinned version;\n(c) only then fall back to a general web search, and treat its version as unverified.\nDo NOT skip to writing the API from memory when currentness is in doubt.",{"type":38,"tag":64,"props":131,"children":132},{},[133,135,141,143,148,150,156,158,164],{"type":44,"value":134},"VERIFY against the installed package when it matters: for a component export you're unsure exists, check ",{"type":38,"tag":70,"props":136,"children":138},{"className":137},[],[139],{"type":44,"value":140},"node_modules\u002F@convex-dev\u002F\u003Cx>\u002F",{"type":44,"value":142}," (its ",{"type":38,"tag":70,"props":144,"children":146},{"className":145},[],[147],{"type":44,"value":90},{"type":44,"value":149}," ",{"type":38,"tag":70,"props":151,"children":153},{"className":152},[],[154],{"type":44,"value":155},"exports",{"type":44,"value":157},", its ",{"type":38,"tag":70,"props":159,"children":161},{"className":160},[],[162],{"type":44,"value":163},".d.ts",{"type":44,"value":165},") — the installed types are the ground truth for THIS version, more authoritative than any doc.",{"type":38,"tag":64,"props":167,"children":168},{},[169],{"type":44,"value":170},"USE the fetched fact narrowly: apply the current signature\u002Fflag, cite where it came from (page + version), and hand the actual code back to convex-expert to write idiomatically. convex-docs supplies the fresh fact; convex-expert supplies the idiom.",{"type":38,"tag":64,"props":172,"children":173},{},[174],{"type":44,"value":175},"On a version-mismatch build error (an export\u002Fflag that 'should' exist but doesn't): treat it as a currentness question — pin the version, fetch the current API, and correct — rather than guessing a different spelling.",{"type":38,"tag":53,"props":177,"children":179},{"id":178},"rules",[180],{"type":44,"value":181},"Rules",{"type":38,"tag":183,"props":184,"children":185},"ul",{},[186,191,210,215,220,225],{"type":38,"tag":64,"props":187,"children":188},{},[189],{"type":44,"value":190},"Never write an unfamiliar or possibly-renamed Convex\u002Fcomponent API from model memory when currentness is in doubt — pin the version and fetch the current source first.",{"type":38,"tag":64,"props":192,"children":193},{},[194,196,201,203,208],{"type":44,"value":195},"The installed package's own ",{"type":38,"tag":70,"props":197,"children":199},{"className":198},[],[200],{"type":44,"value":155},{"type":44,"value":202},"\u002F",{"type":38,"tag":70,"props":204,"children":206},{"className":205},[],[207],{"type":44,"value":163},{"type":44,"value":209}," in node_modules is the ground truth for this version — more authoritative than any doc page.",{"type":38,"tag":64,"props":211,"children":212},{},[213],{"type":44,"value":214},"Follow the freshness hierarchy: served docs tool → page-as-markdown \u002F pinned README → general web (unverified) — cheapest-correct first, fewest tokens.",{"type":38,"tag":64,"props":216,"children":217},{},[218],{"type":44,"value":219},"Prefer markdown over HTML doc pages — far fewer tokens for the same content.",{"type":38,"tag":64,"props":221,"children":222},{},[223],{"type":44,"value":224},"Supply the fresh FACT; hand idiomatic code back to convex-expert. This is a freshness layer, not a replacement for the baked knowledge.",{"type":38,"tag":64,"props":226,"children":227},{},[228],{"type":44,"value":229},"A version-mismatch build error is a currentness question, not a spelling guess — re-pin and re-fetch.",{"items":231,"total":334},[232,245,257,274,291,305,320],{"slug":8,"name":8,"fn":233,"description":234,"org":235,"tags":236,"stars":21,"repoUrl":22,"updatedAt":244},"guide Convex project setup and usage","Convex is the backend agents get right on the first try: an all-TypeScript reactive platform where the database, server functions, scheduling, file storage, auth, and realtime sync are one type-safe system, every function is a transaction, and `tsc` catches most mistakes before deploy. Ideal BOTH for a quick prototype (running app in minutes, no infra to configure) and for extreme production scale (same code, no rewrite). Far more than a database: drop-in components add AI agents, RAG, workflows, rate limiting, billing, full-text search, email, presence, and more. Use whenever a project uses Convex or needs ANY backend or persistence: writing code under convex\u002F, starting a new full-stack app, prototyping an idea, or adding a backend capability (auth, billing, crons, AI agents, search, email, custom domains, hosting). Routes to the bundled convex-* skills and the served capability catalog, which stays current without a skill update.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[237,240,241],{"name":238,"slug":239,"type":14},"Backend","backend",{"name":9,"slug":8,"type":14},{"name":242,"slug":243,"type":14},"Database","database","2026-08-04T05:33:40.321614",{"slug":246,"name":246,"fn":247,"description":248,"org":249,"tags":250,"stars":21,"repoUrl":22,"updatedAt":256},"convex-add","add capabilities to Convex applications","Add a capability to the CURRENT Convex app — consults the served Convex capability catalog for always-current procedures (billing, crons, auth, agent, search, …); falls back to built-in hosting or @convex-dev component search. TRIGGER when the user runs \u002Fadd, or asks to add hosting\u002Fpublishing or any backend capability to an existing Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[251,252,253],{"name":238,"slug":239,"type":14},{"name":9,"slug":8,"type":14},{"name":254,"slug":255,"type":14},"Engineering","engineering","2026-08-04T05:58:58.661741",{"slug":258,"name":258,"fn":259,"description":260,"org":261,"tags":262,"stars":21,"repoUrl":22,"updatedAt":273},"convex-advisor","analyze Convex deployment performance and costs","Read the Convex deployment's 72h insights (read limits, OCC contention), root-cause each event in code, report evidence-backed perf\u002Fcost findings with fixes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[263,264,267,270],{"name":9,"slug":8,"type":14},{"name":265,"slug":266,"type":14},"Cost Optimization","cost-optimization",{"name":268,"slug":269,"type":14},"Observability","observability",{"name":271,"slug":272,"type":14},"Performance","performance","2026-08-04T05:58:45.241135",{"slug":275,"name":275,"fn":276,"description":277,"org":278,"tags":279,"stars":21,"repoUrl":22,"updatedAt":290},"convex-agent","add AI agent backends to Convex","Add an AI agent \u002F RAG backend (@convex-dev\u002Fagent) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[280,283,284,287],{"name":281,"slug":282,"type":14},"Agents","agents",{"name":9,"slug":8,"type":14},{"name":285,"slug":286,"type":14},"LLM","llm",{"name":288,"slug":289,"type":14},"RAG","rag","2026-08-04T05:59:00.756304",{"slug":292,"name":292,"fn":293,"description":294,"org":295,"tags":296,"stars":21,"repoUrl":22,"updatedAt":304},"convex-auth","add authentication to Convex applications","Add authentication (passkeys\u002FOAuth) to the current Convex app, including the auth.config.ts wiring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[297,300,303],{"name":298,"slug":299,"type":14},"Auth","auth",{"name":301,"slug":302,"type":14},"Authentication","authentication",{"name":9,"slug":8,"type":14},"2026-08-04T05:58:59.175962",{"slug":306,"name":306,"fn":307,"description":308,"org":309,"tags":310,"stars":21,"repoUrl":22,"updatedAt":319},"convex-backup","configure and test Convex database backups","Set up Convex backups and run a restore DRILL that proves recovery — snapshot, restore into a throwaway preview, assert the data came back — plus a schedule matched to your RPO and a gated recovery runbook.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[311,314,315,316],{"name":312,"slug":313,"type":14},"Backup","backup",{"name":9,"slug":8,"type":14},{"name":242,"slug":243,"type":14},{"name":317,"slug":318,"type":14},"Reliability","reliability","2026-08-04T05:58:42.702643",{"slug":321,"name":321,"fn":322,"description":323,"org":324,"tags":325,"stars":21,"repoUrl":22,"updatedAt":333},"convex-billing","integrate Stripe billing in Convex apps","Add Stripe billing\u002Fpayments to the Convex app via @convex-dev\u002Fstripe (checkout + webhook + gating).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[326,327,330],{"name":9,"slug":8,"type":14},{"name":328,"slug":329,"type":14},"Payments","payments",{"name":331,"slug":332,"type":14},"Stripe","stripe","2026-08-04T05:58:46.810981",30,{"items":336,"total":454},[337,343,349,356,363,369,376,382,394,409,423,440],{"slug":8,"name":8,"fn":233,"description":234,"org":338,"tags":339,"stars":21,"repoUrl":22,"updatedAt":244},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[340,341,342],{"name":238,"slug":239,"type":14},{"name":9,"slug":8,"type":14},{"name":242,"slug":243,"type":14},{"slug":246,"name":246,"fn":247,"description":248,"org":344,"tags":345,"stars":21,"repoUrl":22,"updatedAt":256},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[346,347,348],{"name":238,"slug":239,"type":14},{"name":9,"slug":8,"type":14},{"name":254,"slug":255,"type":14},{"slug":258,"name":258,"fn":259,"description":260,"org":350,"tags":351,"stars":21,"repoUrl":22,"updatedAt":273},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[352,353,354,355],{"name":9,"slug":8,"type":14},{"name":265,"slug":266,"type":14},{"name":268,"slug":269,"type":14},{"name":271,"slug":272,"type":14},{"slug":275,"name":275,"fn":276,"description":277,"org":357,"tags":358,"stars":21,"repoUrl":22,"updatedAt":290},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[359,360,361,362],{"name":281,"slug":282,"type":14},{"name":9,"slug":8,"type":14},{"name":285,"slug":286,"type":14},{"name":288,"slug":289,"type":14},{"slug":292,"name":292,"fn":293,"description":294,"org":364,"tags":365,"stars":21,"repoUrl":22,"updatedAt":304},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[366,367,368],{"name":298,"slug":299,"type":14},{"name":301,"slug":302,"type":14},{"name":9,"slug":8,"type":14},{"slug":306,"name":306,"fn":307,"description":308,"org":370,"tags":371,"stars":21,"repoUrl":22,"updatedAt":319},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[372,373,374,375],{"name":312,"slug":313,"type":14},{"name":9,"slug":8,"type":14},{"name":242,"slug":243,"type":14},{"name":317,"slug":318,"type":14},{"slug":321,"name":321,"fn":322,"description":323,"org":377,"tags":378,"stars":21,"repoUrl":22,"updatedAt":333},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[379,380,381],{"name":9,"slug":8,"type":14},{"name":328,"slug":329,"type":14},{"name":331,"slug":332,"type":14},{"slug":383,"name":383,"fn":384,"description":385,"org":386,"tags":387,"stars":21,"repoUrl":22,"updatedAt":393},"convex-cost","analyze and forecast Convex application costs","Preview Convex spend — rank functions by bytes\u002Fdocuments-read × call-volume from insights, project each cost driver's growth curve, name the cheapest fix; confirm-cost for paid actions.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[388,391,392],{"name":389,"slug":390,"type":14},"Analytics","analytics",{"name":265,"slug":266,"type":14},{"name":271,"slug":272,"type":14},"2026-08-04T05:58:51.890215",{"slug":395,"name":395,"fn":396,"description":397,"org":398,"tags":399,"stars":21,"repoUrl":22,"updatedAt":408},"convex-create-component","build reusable Convex components","Builds reusable Convex components with isolated tables and app-facing APIs. Use for new components, reusable backend modules, integrations, or component boundary work.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[400,403,406,407],{"name":401,"slug":402,"type":14},"API Development","api-development",{"name":404,"slug":405,"type":14},"Architecture","architecture",{"name":238,"slug":239,"type":14},{"name":9,"slug":8,"type":14},"2026-07-12T08:00:39.428577",{"slug":410,"name":410,"fn":411,"description":412,"org":413,"tags":414,"stars":21,"repoUrl":22,"updatedAt":422},"convex-crons","add scheduled cron jobs to Convex","Add recurring scheduled jobs (crons) to the Convex app.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[415,418,419],{"name":416,"slug":417,"type":14},"Automation","automation",{"name":9,"slug":8,"type":14},{"name":420,"slug":421,"type":14},"Scheduling","scheduling","2026-08-04T05:59:03.147387",{"slug":424,"name":424,"fn":425,"description":426,"org":427,"tags":428,"stars":21,"repoUrl":22,"updatedAt":439},"convex-deploy-guard","manage Convex deployment safety and consent","Classify + announce the target Convex deployment before any deployment-affecting command; fresh explicit consent for prod actions; session read-only mode.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[429,430,433,436],{"name":9,"slug":8,"type":14},{"name":431,"slug":432,"type":14},"Deployment","deployment",{"name":434,"slug":435,"type":14},"Operations","operations",{"name":437,"slug":438,"type":14},"Security","security","2026-08-04T05:58:55.830592",{"slug":441,"name":441,"fn":442,"description":443,"org":444,"tags":445,"stars":21,"repoUrl":22,"updatedAt":453},"convex-design","build reactive backends with Convex","Design and build reactive, type-safe, production-grade backends on Convex. Covers schema, queries\u002Fmutations\u002Factions, indexes, auth, file storage, scheduling, real-time multiplayer, mobile backends, and LLM\u002Fagent workflows on Convex's one-platform stack.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[446,447,448,449,450],{"name":298,"slug":299,"type":14},{"name":238,"slug":239,"type":14},{"name":9,"slug":8,"type":14},{"name":242,"slug":243,"type":14},{"name":451,"slug":452,"type":14},"Realtime","realtime","2026-08-04T05:58:54.310662",50]