{
  "markdown": "# Agent plugins for Val Town\n\nInstalls the Val Town MCP server and Skills for Claude Code, Codex, and Cursor.\n\nSkills are markdown files with platform guidance for building on [Val Town](https://val.town).\nUsed by Val Town's own tools (Townie, the MCP server) and by AI coding agents.\nSkills include HTTP vals, crons, SQLite, email, OAuth, frontend, and API integrations.\n\n## Install\n\nInstalling the plugin makes platform skills available to your agent and registers\nthe hosted Val Town MCP server (`https://api.val.town/v3/mcp`). On first use of\nan MCP tool, the agent runs the OAuth flow in your browser.\n\n1. [Claude Code](#claude-code)\n2. [Codex](#codex)\n3. [Cursor](#cursor)\n\n### Claude Code\n\nInstall the Val Town plugin by running:\n\n```\nclaude plugin install valtown@claude-plugins-official\n```\n\n### Codex\n\n#### `codex` CLI\n\nFirst, run:\n\n```\ncodex plugin marketplace add val-town/plugins\n```\n\nThen fire up `codex` and run:\n\n```\n/plugins\n```\n\nSearch for Val Town, hit install, and it'll take you through the OAuth path.\n\n#### Codex desktop app\n\n1. Click \"Plugins\" in the sidebar\n2. In the dropdown that says \"Built by OpenAI\" click \"Add more +\"\n3. Copy-paste `https://github.com/val-town/plugins` and select \"Add marketplace\"\n\n### Cursor\n\nIn Cursor, run:\n\n```\n/add-plugin valtown\n```\n\nOr in Cursor Settings, copy-paste `https://github.com/val-town/plugins` in the search box and select \"Add to Cursor.\"\n\n## Contributing\n\n### Authoring skills\n\nSkills live in `plugin/skills/<name>/SKILL.md` with YAML frontmatter:\n\n```markdown\n---\nname: http-endpoints\ndescription: Use when building an HTTP val — a web endpoint, API route, webhook...\ntriggers: [http, endpoint, webhook, api, request, response]\n---\n\n# HTTP Endpoints\n\n...guide body...\n```\n\n- `name` (required) — must match the directory name; lowercase, hyphens, ≤64 chars.\n- `description` (required) — written as \"Use when…\"; this is how Claude decides\n  to load the skill. ≤1024 chars.\n- `triggers` (optional) — keyword hints that boost `searchSkills` ranking;\n  ignored by Claude Code's native loader.\n\nKeep content **audience-neutral**: only platform knowledge true for every\nconsumer. No product-flow or chat-only advice.\n\nThen build:\n\n```\nnpm install\nnpm run build   # generate src/generated/skills.ts, then tsc\nnpm test        # build + smoke tests\n```\n\n`npm run generate` validates every skill against both our schema and Claude\nCode's frontmatter constraints — a skill that wouldn't load in Claude Code\nfails the build.\n\n### Relationship to the Val Town monorepo\n\nThis package is the source of truth for skill content. The Val Town app and MCP\nserver consume it as a dependency rather than holding their own copy. See\n`docs/SKILLS_PLUGIN.md` in the main repo for the full design.\n\n### Versioning\n\nThis repository uses [Changesets](https://github.com/changesets/changesets)\nfor publishing. See their documentation for more information.\n\n- For each change that should trigger a new version, you should run `npx @changesets/cli`\n  and fill out the interactive prompts to describe the changes. This will generate\n  a new changeset in the `.changesets` directory.\n- Each change in that directory will prompt the `release.yml` GitHub action\n  to create a new release PR.\n- Merging a release PR will automatically publish a new version of this module.\n\n### Configuration\n\n#### Claude Code\n\nThe official Claude plugin marketplace pulls from [`.plugins/marketplace.json`](./.plugins/marketplace.json).\n\n#### Codex\n\nCodex reads the native marketplace at `.agents/plugins/marketplace.json` (and\nfalls back to the Claude `.claude-plugin/marketplace.json` for compatibility).\n\n#### Cursor\n\nCursor reads `.cursor-plugin/marketplace.json` and the per-plugin `plugin/.cursor-plugin/plugin.json`.\n",
  "bytes": 3742,
  "sha": "0d9c8c3eea4b27a363dffa2485ad71385913619b8e780b206f9d3bc884bf14b5",
  "repo_slug": "val-town/plugins",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_town_val_mcp_a1a45b9d/readme"
}