By val-town
Build and deploy serverless TypeScript applications on Val Town with built-in HTTP APIs, cron jobs, SQLite storage, email, OAuth authentication, and React UI components, while integrating with external services like PostgreSQL and Supabase.
Use when a val needs simple key/value persistence — JSON documents, cached responses, uploaded files, or binary assets. Covers the std/blob API, listing and deleting keys, account-global or val scoping, and storage limits.
Use when building a val that runs on a schedule — periodic jobs, recurring tasks, polling, cron jobs, monitoring, alerting. Covers the interval handler signature, cron expressions, the UTC timezone constraint, and the `lastRunAt` pattern for detecting new items since the previous run.
Use when a val sends email, receives email, or is triggered by an incoming email. Covers email-type vals (the Email handler shape, attachment limits, the assigned val email address) and sending mail via std/email.
Use when building an HTTP val — a web endpoint, API route, webhook receiver, or any val that responds to HTTP requests. Covers the handler signature, Hono usage, the endpoint URL, CORS behavior, redirects, and Val Town-specific limitations.
Use when a val needs to require login with a Val Town account — gating routes behind authentication, identifying the current user, building user-specific dashboards. Covers std/oauth's `oauthMiddleware` and `getOAuthUserData`, the auto-managed `/auth/*` routes, and session behavior. For third-party OAuth providers (Google, GitHub, etc.) see the `third-party-integrations` skill instead.
External network access
Connects to servers outside your machine
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Installs the Val Town MCP server and Skills for Claude Code, Codex, and Cursor.
Skills are markdown files with platform guidance for building on Val Town. Used by Val Town's own tools (Townie, the MCP server) and by AI coding agents. Skills include HTTP vals, crons, SQLite, email, OAuth, frontend, and API integrations.
Installing the plugin makes platform skills available to your agent and registers
the hosted Val Town MCP server (https://api.val.town/v3/mcp). On first use of
an MCP tool, the agent runs the OAuth flow in your browser.
Install the Val Town plugin by running:
claude plugin install valtown@claude-plugins-official
codex CLIFirst, run:
codex plugin marketplace add val-town/plugins
Then fire up codex and run:
/plugins
Search for Val Town, hit install, and it'll take you through the OAuth path.
https://github.com/val-town/plugins and select "Add marketplace"In Cursor, run:
/add-plugin valtown
Or in Cursor Settings, copy-paste https://github.com/val-town/plugins in the search box and select "Add to Cursor."
Skills live in plugin/skills/<name>/SKILL.md with YAML frontmatter:
---
name: http-endpoints
description: Use when building an HTTP val — a web endpoint, API route, webhook...
triggers: [http, endpoint, webhook, api, request, response]
---
# HTTP Endpoints
...guide body...
name (required) — must match the directory name; lowercase, hyphens, ≤64 chars.description (required) — written as "Use when…"; this is how Claude decides
to load the skill. ≤1024 chars.triggers (optional) — keyword hints that boost searchSkills ranking;
ignored by Claude Code's native loader.Keep content audience-neutral: only platform knowledge true for every consumer. No product-flow or chat-only advice.
Then build:
npm install
npm run build # generate src/generated/skills.ts, then tsc
npm test # build + smoke tests
npm run generate validates every skill against both our schema and Claude
Code's frontmatter constraints — a skill that wouldn't load in Claude Code
fails the build.
This package is the source of truth for skill content. The Val Town app and MCP
server consume it as a dependency rather than holding their own copy. See
docs/SKILLS_PLUGIN.md in the main repo for the full design.
This repository uses Changesets for publishing. See their documentation for more information.
npx @changesets/cli
and fill out the interactive prompts to describe the changes. This will generate
a new changeset in the .changesets directory.release.yml GitHub action
to create a new release PR.The official Claude plugin marketplace pulls from .plugins/marketplace.json.
Codex reads the native marketplace at .agents/plugins/marketplace.json (and
falls back to the Claude .claude-plugin/marketplace.json for compatibility).
Cursor reads .cursor-plugin/marketplace.json and the per-plugin plugin/.cursor-plugin/plugin.json.
npx claudepluginhub val-town/plugins --plugin valtownComprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
A growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
v9.44.1 — Patch release for Gemini environment/version detection and qwen auth gating. Run /octo:setup.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Memory compression system for Claude Code - persist context across sessions