GitHub list of ChatGPT Plugin Directory
app

Val Town

Build and deploy apps

Val Town helps users create, inspect, run, and deploy apps; manage files, branches, schedules, environment variables, SQLite data, and blob storage; and debug executions through ChatGPT.

How to use

  1. 1Add it in ChatGPT

    Open Val Town in ChatGPT's Plugin directory (button above), select + to add it and sign in if asked.

  2. 2Use it in a chat

    Type @ in the composer and pick Val Town, or start your message with its name. ChatGPT may also suggest it when it fits what you ask.

Skills 11

  • blob-storage

    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.

  • client-side-js

    Use when a val needs to ship JavaScript that runs in the browser — React apps, vanilla DOM scripts, canvas/games, htmx/Alpine, or any client-side module beyond a single inline snippet. Explains how Val Town serves transpiled .ts/.tsx/.jsx modules with no build step, how the browser resolves their imports, and how to load third-party deps.

  • create-skill

    Use when the user wants to persist a preference, skill, or knowledge. Use when it would aid future val development to store a memory of how best to build something.

  • cron-and-intervals

    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.

  • email

    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.

  • http-endpoints

    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.

  • oauth

    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.

  • react-ui

    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).

  • restricted-access

    Use when a val's HTTP endpoints should not be open to the whole internet — limiting an app to a team, understanding why an endpoint redirects to a login page, letting a webhook through, or identifying which Val Town user is viewing an app. Covers app access (`httpPrivacy`), org grants, bypass tokens for automation, and the `X-Val-Town-User` identity header. For building your own login flow inside a val, see the `oauth` skill instead.

  • sqlite-storage

    Use when a val needs to store structured or relational data. Covers the std/sqlite API, parameterized queries, transactions, and the val-scoped vs organization-scoped database distinction.

  • third-party-integrations

    Use when a val talks to an external service — Slack, Discord, Telegram, Stripe, GitHub, Gmail, Google Sheets, Postgres/Supabase/Upstash/Neon, browser automation (Playwright, Browserbase, Kernel, Steel), web scraping, PDF generation, push notifications, RSS, or any other third-party API. Covers the required workflow (fetch the Val Town guide, get credentials, test, store secrets) and the catalog of available guides.

Things to ask

  • “Based on what you know about me, make me a quick personal website”
  • “Make me a pretty hello world app”
  • “Build me a custom CRM”

Disconnect

  1. 1Disconnect it in ChatGPT

    Open Settings, then Apps or Plugins (the label depends on your rollout), select Val Town and choose Disconnect. ChatGPT stops acting through your account; past conversations aren't deleted.

Val Town alternatives