← Val TownCONTENT HISTORY
WHAT CHANGED
added
Update to Val Town
Snapshot Oct 24, 2026 · 12:53 UTC · version 3.0.0
Package or technical metadata updated
Package or technical metadata updated
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Save Val Town and check future changes in Following.
Up to 3 plugins free · no card required.
All fields and original values.
Is template instance
Before
Sep 30, 2026 · 22:50 UTC
Not present
After
Oct 24, 2026 · 12:53 UTC
false
Compare saved observations
Download comparison JSONFull technical diff · 1 changed fields
added /is_template_instance
BEFORE
Field was absent
AFTER
false
Full snapshot data
{
"canonical_app_id": "asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
"connector_id": "asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
"created_at": "2026-07-20T19:45:11.003872Z",
"discoverability": "LISTED",
"id": "plugin_asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
"is_template": false,
"is_template_instance": false,
"name": "app-6a5e7ac6ddf881919de226cb7506ef57",
"release": {
"app_ids": [
"asdk_app_6a5e7ac6ddf881919de226cb7506ef57"
],
"app_manifest": {
"apps": {
"app-6a5e7ac6ddf881919de226cb7506ef57": {
"id": "asdk_app_6a5e7ac6ddf881919de226cb7506ef57",
"required": true
}
}
},
"app_templates": [],
"description": "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.",
"display_name": "Val Town",
"id": "pluginrel_1cabcafcc038819197c888308f75ce94",
"interface": {
"brand_color": null,
"capabilities": [],
"category": "Developer Tools",
"composer_icon_dark_url": "https://files.openai.com/content?id=file_000000002f3c81f7b72b5f02d0ea570d",
"composer_icon_url": "https://files.openai.com/content?id=file_000000002be881f7b5377c76bc33bc8e",
"default_prompt": "Based on what you know about me, make me a quick personal website",
"default_prompts": [
"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"
],
"developer_name": "Val Town",
"logo_url": "https://files.openai.com/content?id=file_000000004b0881f7851dc83cf65beda2",
"logo_url_dark": "https://files.openai.com/content?id=file_00000000b24c81f783783479d7602712",
"long_description": "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.",
"plugin_category_id": "developer tools",
"privacy_policy_url": "https://www.val.town/privacypolicy",
"screenshot_urls": [],
"short_description": "Build and deploy apps",
"terms_of_service_url": "https://www.val.town/termsofuse",
"website_url": "https://val.town/"
},
"keywords": [],
"mcp_servers": [],
"onboarding_skill_name": null,
"requires_local_executor": false,
"skills": [
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "blob-storage",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "pdf",
"short_description": "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."
},
"name": "blob-storage",
"plugin_release_skill_id": "pluginrsk_6a750588c2688191a27de5b3da0845c9"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "client-side-js",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "code",
"short_description": "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."
},
"name": "client-side-js",
"plugin_release_skill_id": "pluginrsk_6a750588f4b8819188e18bec12a39fff"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "create-skill",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "hierarchy",
"short_description": "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."
},
"name": "create-skill",
"plugin_release_skill_id": "pluginrsk_6a7505892518819196890916c39ef2f3"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "cron-and-intervals",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "radar",
"short_description": "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."
},
"name": "cron-and-intervals",
"plugin_release_skill_id": "pluginrsk_6a7505894bbc819197f104c3556c64bf"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "email",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "chat",
"short_description": "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."
},
"name": "email",
"plugin_release_skill_id": "pluginrsk_6a75058975988191b8f220c644c90385"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "http-endpoints",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "code",
"short_description": "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."
},
"name": "http-endpoints",
"plugin_release_skill_id": "pluginrsk_6a750589a44c8191b1643b083f61091e"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "oauth",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "cursor",
"short_description": "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."
},
"name": "oauth",
"plugin_release_skill_id": "pluginrsk_6a750589d0488191880d558f6c222c6f"
},
{
"description": "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).",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "react-ui",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "code",
"short_description": "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)."
},
"name": "react-ui",
"plugin_release_skill_id": "pluginrsk_6a75058a1edc8191a1f8a01d66d15a30"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "restricted-access",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "hierarchy",
"short_description": "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."
},
"name": "restricted-access",
"plugin_release_skill_id": "pluginrsk_6a75058a4c1c8191adc0bf902741c191"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "sqlite-storage",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "hierarchy",
"short_description": "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."
},
"name": "sqlite-storage",
"plugin_release_skill_id": "pluginrsk_6a75058a78fc8191a1ec8c390f6c2c1d"
},
{
"description": "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.",
"interface": {
"brand_color": null,
"default_prompt": null,
"display_name": "third-party-integrations",
"icon_large_url": null,
"icon_small_url": null,
"iconography": "code",
"short_description": "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."
},
"name": "third-party-integrations",
"plugin_release_skill_id": "pluginrsk_6a75058a9ed481919a65c4425840be16"
}
],
"version": "3.0.0"
},
"scope": "GLOBAL",
"share_url": "https://chatgpt.com/plugins/val-town?open_in_app",
"status": "ENABLED"
}SHA-256 of public snapshot: 27781f688909c7941b38a02258d8c555a3abbbaeecc03ac3c42fcb2c1185fb7d