developers
Build with React, Vite and Tailwind
Author with Vite, React, Tailwind, and shadcn/ui. Develop and package native apps, generate MCP tools from app and service source, and sync reviewed candidates to ICE Develop.
the cli
The app development loop
Sign in with waid login, then scaffold, generate MCP tools, develop live, and build for your target. Generating tools works without an ICE session.
$ waid new my-appscaffolds Vite + React + Tailwind + shadcn/ui, ready to run
apps & services
Scan, review, and sync
Scan local source, review action handlers and service curation, then sync an immutable candidate to ICE Develop. Publication and tenant installation happen separately in ICE.
Choose the environment with waid login --env local or --env staging. Staging service sync requires a verified release ID.
$ waid app generate-mcp --in ./frontendyour local coding agent drafts MCP handlers; new tools start denied until you expose them
quickstart
Setting up a project
- 01
waid newStart from React
Scaffold a Vite + React + Tailwind app with shadcn/ui already wired up.
- 02
waid app generate-mcpMake it callable by agents
Generate MCP tools from your app’s source, then choose which ones agents can call.
- 03
waid devDevelop live
Run Vite hot reload and preview your app natively, on desktop or a connected phone.
- 04
waid buildShip everywhere
Bundle one dist into native artifacts for every platform.
scaffold
Project structure
waid new scaffolds an ordinary Vite app at the project root with shadcn/ui components already in place. Anything that builds to a static dist works.
my-app/├── waid.config.json # name, icon, capabilities├── package.json├── vite.config.ts├── index.html├── components.json # shadcn config└── src/ ├── main.tsx ├── App.tsx └── components/ui/ # button, card, badge…surface area
Command-line flags
Common options for source selection, environments, development, and signing. Run waid help <command> for the options accepted by each command.
Choose a source, target, login environment, and build mode. Options are command-specific.
--src--in--out--target--env--mode--tenant--port--dev-host--runtime-dir--check--release--no-launch
Choose a simulator or device, select a team, and configure signing and provisioning.
--simulator--ios-destination--ios-team--ios-bundle-id--ios-device-udid--ios-allow-provisioning-updates--ios-no-sign--ios-profile
the runtime
Where the runtime comes from.
Native targets embed a prebuilt detir binary. You never commit one - WAID resolves it at build time.
The shared cache
By default WAID resolves the runtime from ~/.detir/runtimes, so several projects share one download instead of vendoring a binary each.
Your own build
Point --runtime-dir (or WAID_RUNTIME_DIR) at a directory with one subdirectory per platform to build against a runtime you compiled yourself.
Nothing in your repo
The runtime is never committed. Your repository holds React source and waid.config.json; the binary is resolved at build time.
command guide
Command reference
| waid login [--env …] | Sign in to ICE through Splenta ID; local is the default |
| waid session --json | Check the shared CLI/Studio ICE session |
| waid new <name> | Scaffold a Vite + React + Tailwind (shadcn) project |
| waid app generate-mcp | Draft, build, and verify App MCP tools for review |
| waid app sync | Submit an immutable App candidate to ICE Develop |
| waid service generate-mcp | Draft, test, and verify Service MCP tools for review |
| waid service sync | Check drift and submit a Service candidate to ICE Develop |
| waid dev --in <dir> | Run Vite HMR and launch the runtime |
| waid build --src <dir> [--target …] | Build the dist and package a native artifact |
| waid deploy --target <ios|android> | Resolve a connected device, install, and launch |
| waid devices --target <ios|android> | List the devices and simulators WAID can deploy to |
| waid doctor | Check your toolchain and environment |
| waid clean --dir <dir> | Preview removal; add --force to delete the selected output |
| waid migrate-config --src <dir> | Migrate an older waid.config.json |
| waid apps [--json] | List registered apps visible to your account |
| waid actions list --app <id> | Inspect a registered app’s catalog actions |
| waid whoami [--json] | Inspect the signed-in ICE identity |
| waid logout | Clear the stored ICE session |
| waid signing-teams [--json] | List Apple signing teams known to Xcode |
| waid version | Print the installed CLI version |
| waid help <command> | Show focused options and examples |
Build your first agent-native app with us.
Early-access teams get direct access to the team and early builds of the CLI.