Convex Expert skill for Claude Code: write current Convex backend code
Makes Claude follow current Convex rules whenever it writes or edits code in your convex/ folder.
- Installs
- 38.7K
- on skills.sh
- Stars
- 68
- on GitHub
- Updated
- Oct 2026
- last repo commit
Before Claude touches a file under convex/, this skill has it read convex/schema.ts first (and convex/_generated/ai/guidelines.md if it exists). It then writes functions in object form with args and returns validators, reads data with withIndex instead of .filter(), and makes new functions internal unless a client needs them.
Before it calls the work done, Claude runs npx tsc --noEmit and pushes to a deployment, preferring your existing one. The rules cover import paths, "use node" files, ID types, adding required fields in steps, storage IDs and keeping outside calls in actions. The skill folder holds one file, SKILL.md.
Good for
- Developers writing Convex functions, schemas and HTTP endpoints with an AI assistant
- Teams whose assistant keeps producing old or invalid Convex syntax
- Claude Code, Cursor and Codex users who already run skills
Install convex-expert
Claude Code
- 1
Copy this prompt.
Install the convex-expert skill in Claude Code. Run this command: npx skills add https://github.com/convex/agent-skills --skill convex-expert Then check that it loaded and tell me how to use it.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Node.js.
Convex's docs say the skills CLI installs skills into .agents/skills/ in your project. The "All Convex skills" command installs every skill in the repo, which has 33 skill folders. One of them, convex-improve-convex-plugin, is listed in the Convex docs as sending your coding session's transcript to the Convex team. Run this skill with /convex-expert in Claude Code or $convex-expert in Codex, or let the agent pick it when the task fits.
From its listing on skills.sh. Source.
What's in the skill
When it loads
Convex backend specialist. Use this agent for any code inside a `convex/` directory — function definitions, schemas, indexes, queries, mutations, actions, HTTP endpoints, cron jobs, file storage, auth wiring, and component installation. Knows the object-form function syntax, validator patterns, resource limits, and component ecosystem that generic Claude routinely gets wrong.
Sections in SKILL.md
- Workflow
- Rules
Key facts
- Installs on skills.sh
- 38,667 (Nov 2, 2026)
- GitHub stars
- 68 (Nov 2, 2026)
- Last commit to the repo
- Oct 29, 2026
- What installs
- 1 file: SKILL.md
- skills.sh audits
- Gen Agent Trust Hub: pass, Socket: pass, Snyk: pass
What it includes
Reads convex/schema.ts, and convex/_generated/ai/guidelines.md if present
This happens before Claude writes or edits any file under convex/.
Files ·
Read the schema firstEvery registered function gets args and returns validators
Claude uses the object form only, never the old positional query(args, handler) style. IDs use v.id(tableName), and null stands in for undefined.
Write ·
Object-form functions with validatorsUses withIndex and bounded queries, never .filter() or unbounded .collect()
Claude adds an .index(...) in schema.ts for each read path. For lists that can grow it uses .paginate or .take(n).
Index every readUses internalQuery, internalMutation and internalAction unless a client needs access
Functions become public only when a client hook needs them.
Internal by defaultReaches for @convex-dev/agent for chat and @convex-dev/workflow for multi-step flows
SKILL.md says never hand-roll these, and not to add a parallel database, cache, job queue or object store.
Components over hand-rollingExact import paths, use node placement, optional-first fields, storage IDs
Imports come from ./_generated/server and ./_generated/api. A "use node" file cannot also export a query or mutation. New fields on a populated table start as v.optional, then get backfilled.
Import and schema rulesRuns npx tsc --noEmit and pushes to a deployment, then fixes every error
It prefers your existing deployment. Otherwise it runs npx convex dev --once if npx convex whoami succeeds, and anonymous mode only if it does not.
Runs code ·
Self-verify before finishing
From the official docs
Permissions
Medium risk
Claude edits your Convex backend code and pushes it to a deployment, so a wrong target could change a live backend. Confirm the deployment is a dev one before it pushes.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only mode
Watch out for
It pushes your code to a Convex deployment
SKILL.md has Claude push before it declares work done. Confirm the target is a dev deployment. github.com
Anonymous mode can rebind your .env.local
SKILL.md says forcing anonymous mode on a signed-in user rebinds .env.local and costs them their cloud deployment. It should be used only when npx convex whoami fails. github.com
Its schema rule changes how you add fields
It never adds a required field to a populated table and uses v.optional first. You must backfill and tighten the field yourself or with a migration skill. github.com
Security advisories
No published security advisories as of Nov 2, 2026.
Technical details
| Turning on read-only | No read-only mode. For a read-only look, use convex-reviewer, which reports findings. |
|---|---|
| Scopes |
|
Questions
How do I install convex-expert?
Use the install box above. The skill is a single SKILL.md, so the single-skill command or a folder copy both work. Run it with /convex-expert in Claude Code or $convex-expert in Codex, or let the agent load it when you edit convex/ code.
What is the difference between convex-expert and convex-reviewer?
convex-expert shapes how Claude writes code under convex/. convex-reviewer, per its SKILL.md, is a three-pass review that reports problems by severity. Our advice: use expert while you build and reviewer before you ship.
Will it push my code to Convex?
Its last step does. SKILL.md has Claude run npx tsc --noEmit and push to a deployment before it says the work is done. It prefers the project's existing deployment and uses npx convex dev --once when npx convex whoami succeeds. It falls back to anonymous mode only when it does not.
Does Convex have an official plugin for this?
Yes. Convex publishes plugins for Claude Code, Codex and Cursor. Its docs say a plugin bundles a Convex MCP server for your dev deployment, hooks and monitors that run as the agent works, and skills and specialized agents. See the Convex plugin docs for install steps. This page covers only the skill from the agent-skills repo.
Is it safe?
It edits files under convex/ and pushes code to a Convex deployment as its last step. The skill bundles no scripts, but the commands it asks Claude to run touch your project and a Convex deployment. Review the diff and confirm which deployment it will push to.
Is it official?
Yes. It is in Convex's own agent-skills repo, and Convex's docs list it among the agent skills Convex provides.
Does it work in the Claude app?
The README and Convex docs name Claude Code, Cursor, VS Code with GitHub Copilot, Windsurf and Codex. They do not name the Claude app, and this skill works on a local project, so we list no Claude app install.
Information
updated Nov 2, 2026
- Repository
- convex/agent-skills
- Folder
skills/convex-expert
Sources
Docs, issue trackers and discussions this page is built from.
Show all 5Hide
- convex/agent-skills README · github.com
- Convex docs: Agent Skills · docs.convex.dev
- convex-expert SKILL.md · github.com
- Convex docs: Agent Plugins · docs.convex.dev
- convex-reviewer SKILL.md · github.com