Agent skill

Make Demo

by remix-run in remix-run/remix

Create or revise demos in the Remix repository. An agent skill from remix-run/remix.

MITAuto-check passedDevelopment

Install Make Demo

skills CLI
$ npx skills add remix-run/remix --skill make-demo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install remix-run/remix make-demo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/remix-run/remix.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/make-demo .claude/skills/make-demo && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
make-demo
GitHub stars
33k
Token cost
~2.4k tokens
SKILL.md length
1,187 words
Files
2
Skills in repo
19
Repo updated
First seen
Licence
MIT

At a glance

Create or revise demos in the Remix repository. An agent skill from remix-run/remix.

  • Works in 5 steps: Read the target APIs and at least one or… → Choose a focused scenario that exists to… → Build the demo under demos// using the… → …
  • Adding a new demo under demos/
  • SKILL.md covers Overview, Workflow, Rules and Typical Structure, plus 3 more sections
  • Calls pnpm

What it does

Make Demo is an agent skill from remix-run/remix. Create or revise demos in the Remix repository. Use when adding a new demo under demos/, updating an existing demo, or reviewing demo code to ensure it showcases Remix packages, strong code hygiene, and production-quality patterns.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Development. It works with Remix. The repository describes itself as: The fully-stacked web framework. The licence is MIT.

When your agent uses it

  • Adding a new demo under demos/
  • Updating an existing demo
  • Reviewing demo code to ensure it showcases Remix packages
  • Strong code hygiene

Example prompts

  • “/make-demo”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Read the target APIs and at least one or two existing demos before writing new code.
  2. Choose a focused scenario that exists to demonstrate Remix behavior, not a generic app shell.
  3. Build the demo under demos// using the same conventions as the existing demos.
  4. Treat the code as a reference artifact, not as temporary sample code.
  5. Validate the demo locally before finishing.

What it can do on your machine

Read from SKILL.md and the folder at commit ef2c594. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Make Demo loads about 2.4k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 1,187 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~60
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from remix-run/remix at commit ef2c594, republished under its MIT licence (© remix-run). 1,187 words, ~2,350 tokens.

Download SKILL.mdSave it as .claude/skills/make-demo/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
make-demo
description
Create or revise demos in the Remix repository. Use when adding a new demo under demos/, updating an existing demo, or reviewing demo code to ensure it showcases Remix packages, strong code hygiene, and production-quality patterns.

Make Demo

Overview

Demos in this repository are not throwaway prototypes. They are durable code artifacts that should teach people and other agents how to write Remix code well.

A good demo should:

  • exercise Remix framework behavior in a realistic way
  • push the target APIs through meaningful edge cases and composition points
  • model clean structure, naming, and accessibility
  • be code that a reader could adapt into a real application

Workflow

  1. Read the target APIs and at least one or two existing demos before writing new code.
  2. Choose a focused scenario that exists to demonstrate Remix behavior, not a generic app shell.
  3. Build the demo under demos/<name>/ using the same conventions as the existing demos.
  4. Treat the code as a reference artifact, not as temporary sample code.
  5. Validate the demo locally before finishing.

Rules

  • Use Remix library packages for the demo's framework behavior. Do not introduce unrelated routers, component frameworks, state managers, or middleware stacks that distract from the Remix patterns being demonstrated.
  • Treat each demo as its own pnpm workspace consumer. Give it a normal package.json with remix as a dependency when appropriate, and import from package exports such as remix/component instead of reaching back into packages/ with relative imports.
  • Keep any non-Remix dependency incidental to the runtime environment only. If a database driver, asset bundler, or type package is needed, it should support the demo rather than define its architecture.
  • Demos should push Remix to its limits in a focused way. Prefer realistic edge cases, composition, streaming, middleware, routing, navigation, forms, or request-handling scenarios over toy examples.
  • When demos use remix/component, prefer idiomatic Remix component patterns. Use normal JSX composition and built-in mixins such as css(...), on(...), and mix={[...]} instead of dropping down to manual DOM mutation or ad hoc class management.
  • When a demo uses remix/component JSX, configure that demo's tsconfig.json with jsx: "react-jsx" and jsxImportSource: "remix/component". Do not set preserveSymlinks or add paths entries that point back into packages/remix/src. The goal is for TypeScript to resolve remix through the demo's own package dependency under pnpm's default symlink behavior.
  • For demos that run through remix/node-tsx, do not enable erasableSyntaxOnly; the runtime intentionally supports TypeScript syntax that needs transformation.
  • Treat development HMR as an optional mode for rapid UI edits. Keep server.ts as the real app server, keep pnpm dev running it directly, and put remix/node-hmr supervision in hmr.ts behind a pnpm hmr script. Use a stable public proxy with createHmrReadyFetch() when browser requests can race child server restarts.
  • For demos that combine HMR with remix/component, use --import remix/component-hmr/node for the child server and add componentHmr() to the asset server's loaders. Keep all HMR wiring development-only.
  • For HTML responses rendered with remix/component, install render() from remix/middleware/render in the router middleware stack and let actions render with context.render(...). Pass the app asset server as render({ assets }) when components use source-based clientEntry() modules. Use renderWith(...) only when the demo intentionally teaches a custom renderer contract or response pipeline.
  • Prefer direct use of Remix and package APIs in demo code. Do not add custom wrappers around simple calls like session.get(), session.set(), session.flash(), session.unset(), redirect(), or context.get(...) unless the wrapper adds real domain logic, reusable policy, or a genuinely clearer abstraction.
  • Demo code must have good hygiene. Use clear names, small focused modules, explicit control flow, and accessible markup. Avoid hacks, dead code, unexplained shortcuts, or patterns that would be poor examples for users to copy.
  • Make the demo teach good patterns. Assume readers and future agents will study it as an example of how Remix code should be written in this repository.
  • All demo servers should use port 44100.
  • Demo servers should handle SIGINT and SIGTERM cleanly by closing the server and exiting.

Typical Structure

Use only the files the scenario needs, but prefer this shape:

  • demos/<name>/package.json
  • demos/<name>/tsconfig.json when the demo has TypeScript or JSX source
  • demos/<name>/server.ts
  • demos/<name>/hmr.ts when the demo offers an optional development HMR runner
  • demos/<name>/README.md
  • demos/<name>/app/
  • demos/<name>/public/ when serving built assets or other static files

Remix Application Layout

When a demo is a real application, prefer a uniform Remix application layout instead of inventing a new structure for each demo.

Root layout

Use these root directories consistently:

  • app/ for runtime application code
  • db/ for database artifacts such as migrations and local SQLite files
  • test/ for shared test helpers, fixtures, and any true cross-application integration tests
  • public/ for static files served as-is
  • tmp/ for runtime scratch files such as sessions, uploads, and caches
Show full SKILL.md (449 more words)Show less
App layout

Inside app/, organize code by responsibility:

  • actions/ for all controller-owned route actions and route-local UI/helpers. The root route map lives in actions/controller.tsx; nested route maps live in route-key folders such as actions/auth/controller.tsx or actions/account/controller.tsx
  • data/ for runtime data definitions such as table schema and setup helpers used by the application at startup
  • middleware/ for request-layer concerns such as auth, database injection, sessions, and other request lifecycle setup
  • ui/ for shared UI primitives used across route areas
  • utils/ for shared runtime support code that does not clearly belong to one of the other app layers
Naming and ownership rules
  • Keep controllers thin. They should read request context, talk to the database or other runtime services, and return a response.
  • actions/controller.tsx owns top-level leaf route actions, and each nested route map gets its own explicit actions/<route-key>/controller.tsx file. A controller's actions object contains direct leaf route keys from the route map passed to its router.map() call.
  • Name directories under app/actions/ after route-map keys, not URL path segments.
  • If a component or helper is only used by one controller feature, keep it in that controller feature folder.
  • If UI is shared across route areas, keep it in app/ui/.
  • Do not put shared UI under app/actions/, and do not create a generic app/components/ dumping ground.
  • Do not create a generic app/lib/ dumping ground.
  • Avoid feature barrel files such as index.ts. Import feature modules directly.
  • If a non-UI helper is shared only by controllers, keep it under actions/.
  • If a helper is part of request or session setup, keep it under middleware/.
  • Keep table definitions, row types, and runtime database setup in app/data/.
  • Keep database artifacts such as migrations and SQLite files in db/.
  • Use utils/ only for genuinely cross-layer support code. Prefer a topic-specific name like utils/external-auth.ts over catch-all names like helpers.ts or misc.ts.
  • Co-locate tests with the app modules they cover whenever those tests primarily exercise one implementation file or one small feature area.
  • Use the root test/ directory only for shared test code, fixtures, and truly broad integration coverage that does not belong to a single app module.
Example layout
text
demos/<name>/
  app/
    router.ts
    router.test.ts
    routes.ts

    actions/
      controller.tsx

      auth/
        controller.tsx
        signup/
          controller.tsx
        resolve-external-auth.ts

      account/
        controller.tsx
        account-page.tsx

    data/
      schema.ts
      setup.ts
      setup.test.ts

    middleware/
      auth.ts
      database.ts
      session.ts

    utils/
      auth-session.ts
      auth-session.test.ts
      password-hash.ts
      external-auth.ts

    ui/
      auth-card.tsx
      document.tsx
      form-field.tsx
      notice.tsx
      icons.tsx
      design-system.ts

  db/
    migrations/
    app.sqlite

  test/
    fixtures/
    helpers.ts

  public/
  tmp/

README Expectations

  • Explain what the demo proves or teaches.
  • Document how to run it locally.
  • Point out the key Remix APIs or patterns being demonstrated.
  • Keep code examples and imports aligned with repo guidance: use remix package exports where available.

Validation

  • Run pnpm -C demos/<name> typecheck when the demo defines a typecheck script.
  • Run pnpm -C demos/<name> test when the demo defines tests.
  • Smoke-test the demo server locally when behavior depends on live requests or browser interaction.
  • Smoke-test HMR demos through their hmr script when the change depends on live server or browser updates.
  • Run pnpm run lint before finishing.

© remix-run, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/make-demo of remix-run/remix.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit ef2c594

Compare with similar skills

Make Demo next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Make Demo compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Make Demo this skillremix-run/remix33k—~2.4kAutomated safety check: PassMIT
Releaseseasonedcc/remix-forms514—~1.3kAutomated safety check: PassMIT
Skill Managerseasonedcc/remix-forms514—~6.1kAutomated safety check: PassMIT
Safe Element Comparisonseasonedcc/remix-forms514—~1.8kAutomated safety check: PassMIT
Vercel Composition Patternssupabase/supabase111k59 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT

Similar skills

  • Release

    seasonedcc/remix-forms

    Release a new version of the remix-forms npm package. An agent skill from seasonedcc/remix-forms.

    514 GitHub stars~1.3k tokensUpdated 5 mo ago
    DevelopmentAuto-check passed
  • Skill Manager

    seasonedcc/remix-forms

    Create, manage, and debug Claude Code Agent Skills. An agent skill from seasonedcc/remix-forms.

    514 GitHub stars~6.1k tokensUpdated 5 mo ago
    Agent WorkflowsAuto-check passed
  • Safe Element Comparison

    seasonedcc/remix-forms

    Maintain element type comparison safety in remix-forms. An agent skill from seasonedcc/remix-forms.

    514 GitHub stars~1.8k tokensUpdated 5 mo ago
    Frontend & DesignAuto-check passed
  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 59 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed

More from remix-run/remix

All 19 skills in this repo
  • Supersede PR

    remix-run/remix

    Safely replace one GitHub pull request with another. An agent skill from remix-run/remix.

    33k GitHub stars~456 tokensUpdated today
    Auto-check passed
  • Add Package

    remix-run/remix

    Create or align a package in the Remix monorepo to match existing package conventions.

    33k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Author UI Primitives

    remix-run/remix

    Build idiomatic headless primitives in packages/ui for Remix.

    33k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Fix Issue

    remix-run/remix

    Fix a reported issue in Remix from a GitHub issue. An agent skill from remix-run/remix.

    33k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Make PR

    remix-run/remix

    Create GitHub pull requests with clear, reviewer-friendly descriptions.

    33k GitHub stars~847 tokensUpdated today
    Auto-check passed
  • Make Tracking Issue

    remix-run/remix

    Create or revise a GitHub tracking issue for a Remix change, including the target outcome, implementor context, a concise checkbox plan, compatibility concerns, and required gates.

    33k GitHub stars~1.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Make Demo

What does Make Demo do?

Create or revise demos in the Remix repository. An agent skill from remix-run/remix. Make Demo is an agent skill from remix-run/remix. Create or revise demos in the Remix repository.

When should I use Make Demo?

Make Demo fits situations like: adding a new demo under demos/; updating an existing demo; reviewing demo code to ensure it showcases Remix packages; strong code hygiene.

How do I install Make Demo in Claude Code?

Run `npx skills add remix-run/remix --skill make-demo -a claude-code`. Or copy the skill folder (.agents/skills/make-demo in remix-run/remix) into .claude/skills/make-demo in your project. Claude Code loads it when a task matches its description.

How do I install Make Demo in Codex?

Run `npx skills add remix-run/remix --skill make-demo -a codex`. Or copy the skill folder (.agents/skills/make-demo in remix-run/remix) into .agents/skills/make-demo in your project. Codex loads it when a task matches its description.

Can I use Make Demo in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add remix-run/remix --skill make-demo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/make-demo, .gemini/skills/make-demo, .github/skills/make-demo and .opencode/skills/make-demo in your project.

What does Make Demo need to run?

Going by SKILL.md and its folder, Make Demo needs the command-line tools its instructions call (pnpm).

Does Make Demo access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Make Demo safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Make Demo use?

Make Demo is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Make Demo use?

About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Make Demo?

Skills that share tags, products or a category with Make Demo: Release (seasonedcc/remix-forms, 514 stars), Skill Manager (seasonedcc/remix-forms, 514 stars), Safe Element Comparison (seasonedcc/remix-forms, 514 stars) and Vercel Composition Patterns (supabase/supabase, 111k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Make Demo?

remix-run (a GitHub organization) maintains it in remix-run/remix, which has 33,397 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 8, 2026.

Source: remix-run/remix on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.