Skip to content

Latest commit

 

History

History

plugin

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

nativeapptemplate-agent — Claude Code plugin

Drive the nativeapptemplate-agent generator from inside Claude Code. Describe an app in one sentence; the plugin generates a validated three-platform implementation (Rails 8.1 API + SwiftUI iOS

  • Jetpack Compose Android), then reads the validation report back to you in plain language.

Two skills: generate → validate → explain, and an interactive walk the running app layer over mobile-mcp.

This file is the concise reference card. For a full, follow-top-to-bottom walkthrough — prerequisites, install, both skills end-to-end, every flag, and troubleshooting — see the A-to-Z plugin guide.

What's in here

plugin/
├── .claude-plugin/plugin.json   # manifest
├── .mcp.json                    # bundles the generator MCP server + mobile-mcp
├── skills/
│   ├── generate-app/SKILL.md    # generate → validate → explain
│   └── walk-app/SKILL.md        # launch on a device, walk the UI with mobile-mcp
└── README.md
  • /nativeapptemplate-agent:generate-app <spec> — runs the generator on your spec, parses out/<slug>/report.json, and summarizes per-platform / per-layer results, the domain mapping, and any failures with the specific evidence and the next move.

  • /nativeapptemplate-agent:walk-app <slug> ios|android — launches a generated app on a booted simulator/emulator and drives mobile-mcp to capture the home screen and walk the UI conversationally, surfacing screenshots inline. Needs a booted device + an installed build (easiest via a --visual=1 generate run, e.g. "…, check the UI too" — see the skill for details).

  • Bundled MCP servers (/mcp to check): the generator server (nativeapptemplate-agent, wired as npx -y -p nativeapptemplate-agent@latest nativeapptemplate-agent-mcp) and mobile-mcp (@mobilenext/mobile-mcp@0.0.54) for device automation.

    Two non-obvious bits in that generator command: the MCP entry point is a bin of the nativeapptemplate-agent package, not its own package, so -p is required; and the @latest is load-bearing — without a version spec, npx resolves the local package when the server is spawned from inside the agent's own repo (cwd shadowing) and fails with command not found. @latest forces registry resolution regardless of cwd.

    mobile-mcp is pinned to 0.0.54 on purpose: 0.0.55+ closes the stdio connection on startup (Connection closed ~6s in), so @latest fails. This matches the agent's own pin in src/mobile.ts. If you have a global mobile-mcp config on @latest, it'll show ✘ failed in /mcp — this bundled, pinned one is the working copy (different command, so it won't dedup against your global).

Requirements

  • Node.js 22+ and an Anthropic API key with access to claude-opus-5-5, as NATIVEAPPTEMPLATE_AGENT_ANTHROPIC_KEY (preferred when set) or ANTHROPIC_API_KEY.
  • For the generated apps to validate, the substrate env vars (NATIVEAPPTEMPLATE_API / _IOS / _ANDROID) must point at the substrate repos, as documented in the main README. The plugin reads them from your environment and does not change them.

Try it locally (no marketplace needed)

# from the agent repo root
claude --plugin-dir ./plugin

Then in the session:

/nativeapptemplate-agent:generate-app a walk-in queue for a barbershop

The two skills compose end-to-end — generate, then walk what you generated. A full session, including a custom project name passed in plain language:

/nativeapptemplate-agent:generate-app a two-device home monitor for household pest detection. project name is Sentova.
/nativeapptemplate-agent:walk-app sentova ios
/nativeapptemplate-agent:walk-app sentova android

Add domain is sentova.app. to choose the app's web domain too: it replaces the template's domain (api.sentova.app, support@sentova.app) and sets the iOS bundle ID (app.sentova.Sentova.ios) and Android applicationId (app.sentova.sentova). Without it they are sentova.com, com.sentova.Sentova.ios and com.sentova.sentova.

Say how deep to validate in the same way: check the UI too (or visual 2, 画面も確認して) runs the full scripted walk on the booted iOS simulator and Android emulator (--visual=2, about 7–8 minutes instead of 2–3; needs both booted and mise), visual 1 judges just the home screens, and run the tests (テストも回して) adds the apps' own test suites (--tests). The skill states the time and prerequisites before it starts, and the run stops before generating anything if a simulator, emulator or mise is missing.

The project name is Sentova clause sets the display name and output slug (out/sentova/, Sentova.xcodeproj, Sentova API) independently of the domain rename the planner chooses. This spec is an adapt of the queue toggle — it keeps ItemTag and renames it (one run: Shop → Household, Shopkeeper → Resident, ItemTag → Sighting, states Idled → Active / Completed → Resolved); the planner's exact targets vary run to run. Verified 2026-05-25 (agent 0.2.1): both specs generate with overall PASS, walked on iOS + Android.

After editing plugin files, run /reload-plugins to pick up changes. Confirm the skill is loaded via /help and the MCP server via /mcp.

Install from the marketplace

The repo ships a marketplace manifest (.claude-plugin/marketplace.json) that points at this plugin/ directory. Add the marketplace, then install:

/plugin marketplace add nativeapptemplate/nativeapptemplate-agent
/plugin install nativeapptemplate-agent@nativeapptemplate

nativeapptemplate is the marketplace name; nativeapptemplate-agent is the plugin. Once installed, the skills are available as /nativeapptemplate-agent:generate-app and /nativeapptemplate-agent:walk-app (and /mcp shows both bundled servers). The CLI forms are claude plugin marketplace add nativeapptemplate/nativeapptemplate-agent and claude plugin install nativeapptemplate-agent@nativeapptemplate.