Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/openclaw/clawhub/convex-quickstartnpx skills add openclaw/clawhub --skill convex-quickstartgit clone --depth 1 https://github.com/openclaw/clawhubWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/openclaw/clawhub/convex-quickstart)<a href="https://agentmods.dev/skills/openclaw/clawhub/convex-quickstart"><img src="https://agentmods.dev/badge/skills/openclaw/clawhub/convex-quickstart.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00023 | $0.01032 |
| Opus 5 | $0.00012 | $0.00516 |
| Sonnet 5 | $0.00005 | $0.00206 |
| Haiku 4.5 | $0.00002 | $0.00103 |
Grade A, and why
convex-quickstart scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
- 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 How it starts
The opening of the file, as written. The whole thing — 30 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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
- Run recipe
quickstart-recipe@^2with {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. - When it prints the dev URL, open it for the user.
- 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 theconvex-expertcapability. - 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 theconvex/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 haveeq/gt/gte/lt/lte— there is no.range(...)method. Imports:query/mutation/action/internalQuery/internalMutation/internalActioncome from./_generated/server;api/internalcome from./_generated/api; NEVER import fromconvex/serverin 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 aqueryormutation. Never import a Node builtin (crypto/fs/path/http/child_process/os, with or without thenode:prefix) into a file lacking"use node"— includinghttp.tsroute handlers; use Web Crypto (crypto.subtle) instead ofimportingcryptowhere 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 asTableNameReserved/IndexNameReserved. - HTTP routes —
httpRouterhas no Express-style:paramsegments (path: "/users/:id"only matches that literal string and is dead code); usepathPrefixand parse the trailing segment yourself. Everyhttp.route({...})handler:must be wrapped inhttpAction(...)from./_generated/server— a bareasync (ctx, request) => {...}type-checks but isn't a valid HTTP action. ctx.runQuery/ctx.runMutation/ctx.runActionneed 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 --noEmitand, when a deployment is available (or via a local anonymous one:CONVEX_AGENT_MODE=anonymous npx convex dev --once), push it. 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.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 30 lines · 23 tokens per session scan A e89cab138f2f
convex-quickstart is a skill published in the GitHub repository openclaw/clawhub (9,391 stars, last pushed today), licensed MIT. It adds 23 tokens to every session and 1,032 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
directory-based-skill
A skill loaded from a directory structure with SKILL.md frontmatter, plus file-based and URL-based instruction sources.
edgeone skill scanner
Scan any agent skill for security risks before you install or use it. Powered by Tencent Zhuque Lab A.I.G (AI-Infra-Guard). 100% local static analysis — no file contents or credentials leave your device. Compatible with CodeBuddy, Cursor, Windsurf, Claude Code, OpenClaw and more. Triggers on: 这个 skill 安全吗, skill 安全扫描…
dev-workflow
The complete development workflow for SkillHub contributors including local dev, staging validation, testing, and PR creation. Ensures agents follow the correct sequence of steps.
regex-mastery
Use this skill when writing regular expressions, debugging pattern matching,optimizing regex performance, or implementing text validation. Triggers on regex, regular expressions, pattern matching, lookahead, lookbehind, named groups, capture groups, backreferences, and any task requiring text pattern matching.
ws-ckpt
工作区快照管理。用户说"保存一下"、"存个快照"时创建 checkpoint,仅限 Linux; 说"回滚"、"撤销"、"恢复到之前"时 rollback;说"删掉快照"时 delete; 说"对比快照"、"快照改了什么"时 diff; 说"看看快照"、"有哪些快照"时 list;说"查看快照状态"、"查看快照剩余空间"时 status。.
mindos
Operate a MindOS knowledge base: update notes, search, organize files, execute SOPs/workflows, retrospective, append CSV, cross-agent handoff, route unstructured input to the right files, distill experience, sync related docs. Use when the task targets files inside the user's MindOS KB (mindRoot). NOT for editing app…