By val-town
Build and deploy on Val Town. Bundles the Val Town MCP server and platform skills (HTTP vals, cron/intervals, SQLite, email, OAuth, React UI, third-party integrations, templates).
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.
Use when building any val with a user interface — dashboards, web apps, landing pages, forms, admin tools, anything users see in a browser. Covers JSX/React conventions, Twind/Tailwind styling, React version pinning, the view-source link requirement, and what to avoid (template-string HTML, external assets).
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.
Contains platform guidance for building on Val Town — the single source of truth for the "how to write a val" knowledge used by Val Town's own tools (Townie, the MCP server) and by AI coding tools like Claude Code.
Each skill is a short markdown guide covering one platform topic (HTTP vals, cron/intervals, SQLite, email, OAuth, React UI, third-party integrations, templates).
Start a claude session, then run:
/plugin marketplace add val-town/plugins
Then run:
/plugin install vals@valtown
This makes the platform skills available to Claude and registers the hosted
Val Town MCP server (https://api.val.town/v3/mcp). On first use of an MCP tool,
Claude Code runs the OAuth flow in your browser.
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.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.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
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.