Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
igorwarzocha avatar

Convex Runtime

  • 74 installs
  • 125 repo stars
  • Updated February 4, 2026
  • igorwarzocha/opencode-workflows

Implement Convex runtime features: HTTP actions, file storage, full-text and vector search, and cron/scheduled functions.

About

A skill for Convex runtime features beyond core CRUD. A developer uses it to build webhooks, file uploads, search indexes, vectorSearch actions, and scheduled or cron background jobs.

  • searchIndex/vectorIndex definitions with documented term, filter, and dimension limits
  • Scheduled functions and cron jobs are durable; auth must be passed explicitly

Convex Runtime by the numbers

  • 74 all-time installs (skills.sh)
  • +3 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #3,066 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/igorwarzocha/opencode-workflows --skill convex-runtime

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs74
repo stars125
Last updatedFebruary 4, 2026
Repositoryigorwarzocha/opencode-workflows

What it does

Implement Convex runtime features: HTTP actions, file storage, full-text and vector search, and cron/scheduled functions.

Files

SKILL.mdMarkdownGitHub ↗

<overview> Implement Convex runtime features: HTTP actions, file storage, search (full text + vector), and scheduling. </overview>

<reference>

  • HTTP actions: https://docs.convex.dev/functions/http-actions
  • File storage: https://docs.convex.dev/file-storage
  • Uploading files: https://docs.convex.dev/file-storage/upload-files
  • Serving files: https://docs.convex.dev/file-storage/serve-files
  • File metadata: https://docs.convex.dev/file-storage/file-metadata
  • Full text search: https://docs.convex.dev/search/text-search
  • Vector search: https://docs.convex.dev/search/vector-search
  • Scheduling: https://docs.convex.dev/scheduling
  • Scheduled functions: https://docs.convex.dev/scheduling/scheduled-functions
  • Cron jobs: https://docs.convex.dev/scheduling/cron-jobs

</reference>

<context name="Runtime Concepts">

  • Full text search: searchIndex with searchField and optional filterFields; relevance-ordered; prefix matching on final term; fuzzy matches are deprecated; limits 16 terms, 8 filters, 1024 scanned.
  • Vector search: vectorIndex with vectorField and dimensions (2-4096); vector field is v.array(v.float64()); actions-only; limits 256 results, 64 filters, 4 vector indexes per table.
  • Scheduling: scheduled functions are durable and stored in DB; cron jobs run on fixed schedules; auth not propagated, You MUST pass identity explicitly.
  • File storage: upload URLs for large files; HTTP action uploads limited to 20MB; metadata in _storage.

</context>

<rules>

Runtime Operations

  • HTTP actions: define handlers with httpAction, register in convex/http.ts via httpRouter (default export REQUIRED).
  • HTTP Syntax:
  http.route({
    path: "/api/echo", // Exact path
    method: "POST",
    handler: httpAction(async (ctx, req) => {
      const body = await req.bytes();
      return new Response(body, { status: 200 });
    }),
  });
  • HTTP actions MUST be exposed at https://<deployment>.convex.site.
  • Upload URL flow: generate URL mutation → client POST → store storageId; URLs expire after 1 hour.
  • HTTP upload flow: ctx.storage.store(blob) then mutation. Uploads via HTTP actions are limited to 20MB.
  • Serving files: ctx.storage.getUrl(storageId) in queries/mutations; returns signed URL or null.
  • File metadata: ctx.db.system.get("_storage", id) or query("_storage"); storage.getMetadata() is deprecated.
  • Scheduling: ctx.scheduler.runAfter/runAt; cron jobs in convex/crons.ts using cronJobs().
  • Cron Scheduling: You MUST use crons.interval or crons.cron. You MUST NOT use deprecated helpers like crons.hourly, crons.daily, or crons.weekly.
  • Cron internal calls: If a cron calls an internal function, You MUST import the internal object from _generated/api to reference it, even if defined in the same file.

Core Rules

  • HTTP actions MUST be routed only via convex/http.ts default export.
  • HTTP actions MUST parse Request manually as they do not support validators.
  • Search Example:
  const messages = await ctx.db.query("messages")
    .withSearchIndex("search_body", (q) =>
      q.search("body", "hello hi").eq("channel", "#general")
    ).take(10);
  • Vector search MUST be actions-only; results are non-reactive.
  • Search behavior: full text search is relevance-ordered and uses prefix matching on the final term; fuzzy matches are deprecated.
  • You SHOULD prefer search/vector filters in index definitions and query filters.
  • Scheduled functions MUST remain backward compatible with args.

</rules>

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.