Guides
Agent skill
Teach Claude Code and Codex to use the fleet safely.
simfleet ships an agent skill: a SKILL.md plus a full API reference that coding agents load when a task involves simulators, emulators, Metro, or running a branch. It encodes the rules that keep many agents from stepping on each other.
Install
simfleet skill install # ~/.claude/skills/simfleet and ~/.codex/skills/simfleet
simfleet skill install --project # ./.claude/skills and ./.codex/skills — commit it with your app
simfleet skill install --claude # only Claude Code
simfleet skill install --codex # only CodexRe-run it after upgrading simfleet. To have new worktrees link the skill automatically, list it in the project config:
"worktrees": { "skills": [".claude/skills/simfleet"] }What it teaches
- Boot slim. Use
simfleet sim boot/emu boot, neversimctl, Xcode, or another tool's boot command. Stock only when you ask for it. - Claim what you hold.
simfleet claimbefore a long task,releaseafter, and never drive a device another live session has claimed. - Lanes own ports. No hand-picked ports, no killing unknown Metro processes.
- JS-first. Start a lane and launch; build natively only through
native plan/native ensure. - Prove it. Report the lane, device, environment, port, slim state, and whether the native build was reused, with UI evidence of the feature itself.
Always-slim policy for every project
The skill applies inside simfleet projects. To make agents boot slim devices everywhere, add a policy to your global instructions — ~/.claude/CLAUDE.md for Claude Code, ~/.codex/AGENTS.md for Codex:
## Simulators and emulators: always slim
Boot iOS simulators and Android emulators slim unless I explicitly ask for stock.
In projects with .sim-fleet/project.json use `simfleet sim boot` / `simfleet emu boot`.
Elsewhere use `simslim on <udid>` (iOS) and `avdslim start <avd>` / `avdslim on <serial>` (Android).Other agents
Any agent can use the fleet through the CLI or HTTP API. Set SIMFLEET_AGENT and SIMFLEET_SESSION_ID (or send x-simfleet-agent and x-simfleet-session headers) so its activity is attributed.