Skip to main content
skill CX Codex

convex-quickstart — Claude Code skill: what it does, how to install

Turns a one-sentence idea into a running barebones Next.js + Convex app, with an anonymous dev backend and no publish step.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add convex/agent-skills --skill convex-quickstart -a claude-code
Open on GitHub

What convex-quickstart does

Hand it a one-sentence idea and the skill stands up a barebones Next.js + Convex template. The quickstart-recipe@^2 recipe takes {idea, template}, creates the project, installs dependencies, starts an anonymous backend and the web dev server. The agent opens the dev URL once it appears. Then it outlines a short plan and waits for your go-ahead before building anything past the template.

Inside sits a rule set for the agent. Backend code under convex/ is handed to the convex-expert capability, and Convex primitives replace Postgres, Redis or Express. No hosting step, no pre-baked auth. When the session is non-interactive, the network is down, or you only want code, the recipe is skipped and the agent writes a standard Convex project by hand, keeping every function in convex/ because Convex does not run them from the project root.

Work is not done until npx tsc --noEmit passes and the code pushes to a deployment. One trap: CONVEX_AGENT_MODE=anonymous belongs only where npx convex whoami fails. Forcing it on a signed-in user rebinds .env.local and costs them their persistent cloud deployment.

What it helps with

  • scaffold a Next.js + Convex app from a one-line idea
  • start an anonymous dev backend without a publish step
  • use indexes in Convex functions instead of unbounded .collect()
  • catch wrong relative imports and duplicate symbols before deploy
  • keep every backend function inside convex/

Example prompts for the agent

  • Scaffold a barebones Next.js + Convex template for a recipe box with tags.
  • Build me a Convex backend for notes, code only, no scaffold docs.
  • Open the dev URL, then show the plan before adding features.

How to install convex-quickstart

1Skills CLI (Vercel)

npx skills add convex/agent-skills --skill convex-quickstart -a claude-code

2Manually: put the files in place

~/.claude/skills/convex-quickstart/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/convex-quickstart/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about convex-quickstart

How do I install convex-quickstart in Claude Code?

Run npx skills add convex/agent-skills --skill convex-quickstart -a claude-code. The skill file lands at ~/.claude/skills/convex-quickstart/SKILL.md.

What does convex-quickstart do?

It turns a one-sentence idea into a running Next.js + Convex template: project, dependencies, anonymous backend, web dev server, then the dev URL.

Does it work in a non-interactive session?

Yes, through the degradation rule: instead of fetching the recipe, the agent writes a standard Convex project, with all backend code under convex/.

Source text

SKILL.md · Apache-2.0
---
name: convex-quickstart
description: "Get a barebones Convex + web template running from a one-sentence idea."
---

<!-- GENERATED from convex-agents content/capabilities/quickstart.json — do not edit by hand. -->

# Quickstart: a barebones Convex template, running

Stand up a barebones Next.js + Convex template from the idea, locally, with an anonymous dev deployment. Minimal by design: local dev servers, no publish step, no pre-baked auth.

## Workflow

1. Run recipe `quickstart-recipe@^2` with {idea, template} (the pack fetches + caches it; pinned offline fallback). It creates the project, installs deps, starts the backend (anonymous) and the web dev server.
2. When it prints the dev URL, open it for the user.
3. Present a short plan and CONFIRM before building features beyond the template.

## Rules

- Never re-run the recipe if it already reported success.
- Delegate any code under `convex/` to the `convex-expert` capability.
- Don't add Postgres/Redis/Express — use Convex primitives.
- Don't add hosting/publish or pre-baked auth here — keep the template minimal unless the user asks for more.
- DEGRADATION RULE — if the scaffold cannot run (non-interactive session, no network, a sandboxed temp dir, or the user just wants code, not an app): skip the recipe and write a standard Convex project directly. ALL backend code goes under `convex/` (schema.ts, functions) — NEVER at the project root; Convex functions only run from the `convex/` directory. Write ZERO scaffold/documentation files (no START_HERE.md, ARCHITECTURE.md, MANIFEST.txt, README walls) unless explicitly asked. "Build me a backend" means code, not ceremony.
- Data access + imports — before writing any convex/*.ts: never an unbounded `.collect()` on a table that can grow — use `.withIndex(...)` and `.paginate(...)`/`.take(n)`. Use an index, not `.filter()`, for anything that would be a SQL WHERE. `.withIndex(...)` callbacks only have `eq`/`gt`/`gte`/`lt`/`lte` — there is no `.range(...)` method. Imports: `query`/`mutation`/`action`/`internalQuery`/`internalMutation`/`internalAction` come from `./_generated/server`; `api`/`internal` come from `./_generated/api`; NEVER import from `convex/server` in application code. `v.literal("exact value")` for fixed string/enum members, not a bare string. `"use node"` only at the top of action-only modules — never in a file that also exports a `query` or `mutation`. Never import a Node builtin (`crypto`/`fs`/`path`/`http`/`child_process`/`os`, with or without the `node:` prefix) into a file lacking `"use node"` — including `http.ts` route handlers; use Web Crypto (`crypto.subtle`) instead of `import`ing `crypto` where possible.
- Reserved names — never `export const <jsReservedWord> = ...` (e.g. `delete`, `new`, `class`, `function`, `return`) as a query/mutation/action export name; esbuild fails to parse it. Never a table or index name starting with `_` (e.g. `_migrations: defineTable(...)`) — `_` is reserved and errors at push as `TableNameReserved`/`IndexNameReserved`.
- HTTP routes — `httpRouter` has no Express-style `:param` segments (`path: "/users/:id"` only matches that literal string and is dead code); use `pathPrefix` and parse the trailing segment yourself. Every `http.route({...})` `handler:` must be wrapped in `httpAction(...)` from `./_generated/server` — a bare `async (ctx, request) => {...}` type-checks but isn't a valid HTTP action.
- `ctx.runQuery`/`ctx.runMutation`/`ctx.runAction` need a codegen'd function reference (`api.foo.bar`/`internal.foo.bar`), never a raw imported module member (`import * as queries from "./queries"; ctx.runQuery(queries.getX, ...)` compiles but fails at runtime).
- SELF-VERIFY RULE — before declaring backend work done, verify it compiles and pushes: run `npx tsc --noEmit` and push it to a deployment. Prefer the project's existing one; otherwise `npx convex dev --once` when `npx convex whoami` succeeds, and `CONVEX_AGENT_MODE=anonymous npx convex dev --once` ONLY when it does not. Forcing anonymous on a signed-in user rebinds `.env.local` and costs them the persistent, publishable cloud deployment they expect. Fix every error it reports before finishing — one verify round catches the wrong-relative-import / duplicate-symbol / unbalanced-paren class that otherwise breaks the deploy.

© convex · Apache-2.0 · convex/agent-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set32

convex-create-component A skill to design and build reusable Convex components with isolated tables and a clear API boundary. Useful when you need to extract backend logic into a self-contained module or package an integration that owns its own data. CX Codex +1 130,900installs convex Router skill for Convex backend work: it picks the right convex-* procedure for your task and pulls current instructions from a served capability catalog. CX Codex +1 108,000installs convex-expert A skill for any code under convex/: functions, schemas, indexes, validators. Useful when your agent writes Convex backend code. CX Codex +1 36,200installs convex-migrate A skill that walks the agent through schema changes and data backfills on a deployed Convex app using @convex-dev/migrations. Useful when the app is already live. CX Codex +1 36,100installs convex-authz Audits and hardens Convex backend authorization against four defect patterns. Fixes impersonation through arguments, missing ownership checks, and unauthorized writes. CX Codex +1 36,100installs convex-auth This skill adds passkey, OAuth, or password sign-in to a Convex app. Use it when auth needs to reach the server config, client hooks, and route guards. CX Codex +1 36,200installs convex-optimize The skill audits an existing Convex app and turns the findings into a plan: security, scale, component upgrades, observability. CX Codex +1 36,000installs convex-deploy-guard Classifies and announces the target Convex deployment before running mutations. Requires explicit approval for production and enforces read-only session modes. CX Codex +1 36,000installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor