manzanas: Skill for Claude Code

.agents/skills/lease-and-drive-a-sim/SKILL.md

lease-and-drive-a-sim is a skill for Claude Code, Codex from BariBariGood/manzanas. It costs 74 tokens per session (1,448 once invoked), scanned B, original, Apache-2.0.

A control interface for an iOS Simulator, Apple's software version of an iPhone used for testing apps. It gives an agent temporary access to a simulator through the manzanasd service.

In plain words
What is it for?
Use it to reserve and reset a simulator, start apps, tap or type, wait for screen elements, take screenshots, run grouped actions, and release the device.
Why use it?
It avoids manually connecting to a machine and coordinating separate simulator commands, while keeping each device reserved for one task.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents).

This is BariBariGood/manzanas's own configuration. It tells Claude Code and Codex how to work on manzanas itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything manzanas configures →

Reuse

Borrowing it

Nothing to install: this file belongs to BariBariGood/manzanas. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/BariBariGood/manzanas/main/.agents/skills/lease-and-drive-a-sim/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/BariBariGood/manzanas

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for lease-and-drive-a-sim

README.md
[![agentmods](https://agentmods.dev/badge/skills/baribarigood/manzanas/lease-and-drive-a-sim/github.svg)](https://agentmods.dev/skills/baribarigood/manzanas/lease-and-drive-a-sim)
Your own site
<a href="https://agentmods.dev/skills/baribarigood/manzanas/lease-and-drive-a-sim"><img src="https://agentmods.dev/badge/skills/baribarigood/manzanas/lease-and-drive-a-sim/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for lease-and-drive-a-sim

Your own site · 80×15
<a href="https://agentmods.dev/skills/baribarigood/manzanas/lease-and-drive-a-sim"><img src="https://agentmods.dev/badge/skills/baribarigood/manzanas/lease-and-drive-a-sim.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 74 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,448 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00074 $0.01448
Opus 5 $0.00037 $0.00724
Sonnet 5 $0.00015 $0.00290
Haiku 4.5 $0.00007 $0.00145

Measured 12d ago against content hash 243ff6e7e89c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade B, and why

lease-and-drive-a-sim scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Sends data to an external URLmediumData exfiltration

A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.

L=$(curl -s -X POST $D/v0/leases -d '{

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s $D/v0/healthz # {"ok":true,"version":"v0"}
.agents/skills/lease-and-drive-a-sim/SKILL.md · 117 lines

How it starts

The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Lease and drive a simulator

Talk to the daemon over HTTP (default port :7433). Every mutating op needs an active lease; the lease ID is the capability token — never share it.

1. Find a target and acquire a lease

D=http://<mac-tailnet-ip>:7433
curl -s $D/v0/healthz                     # {"ok":true,"version":"v0"}
curl -s $D/v0/targets | jq '.targets[] | {udid,name,state,labels}'

Acquire by label (preferred — pins reset policy to a device class, not someone else's sim). reset:"erase" guarantees the NEXT holder gets a clean target:

L=$(curl -s -X POST $D/v0/leases -d '{
  "labels":["iphone-air"], "agent_id":"<caller-identity>",
  "purpose":"<task>", "ttl_seconds":900, "reset":"erase"}')
LID=$(echo "$L" | jq -r .id); UDID=$(echo "$L" | jq -r .target_udid)

agent_id is the canonical caller-identity field (a session ID is a fine value for it); the API also accepts session_id as an alias that fills agent_id when it is empty. Omitting both is 400 bad_request.

  • 201 + state:"active" → proceed. 202 + state:"queued" → poll GET /v0/leases/$LID until active (polling keeps your queue slot; queued leases that go unpolled for 30 min are dropped).
  • 409 no_match → no target carries those labels; re-check /v0/targets.
  • Renew at ~half TTL for long tasks: POST /v0/leases/$LID/renew.
  • Interop: other (non-manzanasd) agents coordinate via /tmp/manzanas_locks/ file locks on the Mac — also write sim-<udid> there for the lease's duration and remove it when done.

2. Boot (asynchronous, gated)

curl -s -X POST $D/v0/targets/$UDID/boot -d "{\"lease_id\":\"$LID\"}"   # 202
# poll until Booted:
curl -s $D/v0/targets | jq -r ".targets[] | select(.udid==\"$UDID\").state"

503 {"code":"overloaded"} means a host safety gate refused the boot (running sim cap, load > 2x cores, or <5 GiB free disk) — back off and retry, or use another host. Do NOT bypass with raw simctl boot.

3. Act — prefer composite + batch (fewer round trips)

Read the full file on GitHub · 117 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 117 lines · 74 tokens per session scan B 243ff6e7e89c

Subscribe to this mod's changes

lease-and-drive-a-sim is a skill published in the GitHub repository BariBariGood/manzanas (21 stars, last pushed 10d ago), licensed Apache-2.0. It adds 74 tokens to every session and 1,448 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

ios-simulator-interaction

Interaction with the iOS simulator using iosef, a CLI optimized for agent usage. Use when building or testing changes on the iOS Simulator — viewing the screen, tapping buttons, reading accessibility trees, finding elements by selector, asserting UI state, scripting multi-step test flows, installing and launching…

riwsky/iosef · 100 tokens

testa

Autonomously E2E-test iOS apps in the Simulator — read the screen (accessibility tree OR on-device OCR), tap/type/swipe/drag-drop/pinch/rotate, manage apps, and assert results. Use when asked to test, QA, drive, or reproduce a flow in an iOS app/simulator (React Native, Expo, native SwiftUI, or any app).…

valewnrt/testa · 103 tokens

argent-test-ui-flow

Autonomously test an app UI (iOS or Android) by running interact-screenshot-verify loops using argent MCP tools. Use when testing UI flows, verifying login works, testing navigation, running end-to-end UI test scenarios, manual QA steps, visible UI changes, or visual behavior.

software-mansion/argent · 64 tokens

baguette

Drive iOS simulators programmatically via the baguette CLI — taps, swipes, multi-finger gestures, hardware buttons (Home / Lock / Volume / Action / Power), ASCII keyboard text, and frame capture, all without opening Xcode. Use when: (1) an agent needs to drive a booted iOS simulator from a script — tap a coordinate…

tddworks/baguette · 249 tokens

mobile-automation

Control Android and iOS devices, emulators and simulators — launch apps, tap, swipe, type, take screenshots, read the accessibility tree. Use when a task involves a mobile device or app, mobile UI testing, or reproducing a bug on a phone.

mobile-next/mobile-mcp · 58 tokens

argent-create-flow

Create, record, edit, replay, or repair reusable Argent flow YAML files. Use when the user asks to record or replay a repeatable device path, set up profiling or an A/B comparison, or invoke the authoring engine behind argent-qa-flows. Also use before repeating three or more interactions. For one-off UI checks…

software-mansion/argent · 100 tokens