Agent Device Lab logo

Agent Device Lab

Community
vincentkoc
agent-device-lab

Prepare and check trusted macOS hosts for physical Android and iPhone tests with agent-device, ADB, and Xcode, or set up iPhone Mirroring separately.

Overview

Publishervincentkoc
Repositorydotskills
Skill nameagent-device-lab
Stars
112
Forks
9
Bundled files
2
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 2 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by vincentkoc on GitHub. Read the source before you install it.

Installation

Install the Agent Device Lab AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/vincentkoc/dotskills/tree/main/skills/agent-device-lab
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/vincentkoc/dotskills.git /tmp/dotskills
mkdir -p .claude/skills
cp -r /tmp/dotskills/skills/agent-device-lab .claude/skills/agent-device-lab
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Agent Device Lab in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Agent Device Lab on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Agent Device Lab is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Agent Device Lab

Purpose

Prepare a Mac and one physical Android or iPhone for an authorized test. This skill owns host readiness and device enrollment. Use the installed upstream agent-device skill or version-matched CLI help for app-driving commands.

When to use

  • Auditing or preparing host tooling for a physical Android phone or iPhone.
  • Diagnosing device trust, Developer Mode, or runner-signing blockers.
  • Setting up iPhone Mirroring or proving one bounded device interaction.

For ordinary app testing on an already prepared target, use the app automation workflow directly. Simulator setup and fleet deployment are separate tasks.

Workflow

  1. Identify the requested mode, host, physical device, app, and observable result. An audit or plan does not authorize installation, enrollment, settings changes, or app interaction. Continue within existing authorization; obtain only any missing authority for the specific change.
  2. Inspect only the selected mode's prerequisites. Mirroring alone needs no ADB, XCTest runner, or agent-device installation. For agent-device, resolve the installed binary and version; follow its help workflow and current installation requirements. Prefer a trusted installed or project-pinned CLI. Installing a skill does not install that CLI; do not silently fetch and execute a mutable @latest package.
  3. Report missing prerequisites before changing them. Limit authorized host preparation to official platform tools and the selected device platform. Device Trust/RSA prompts, passcodes, Developer Mode confirmation, Apple Account, 2FA, and signing-account authentication belong to the owner. Wait at that boundary; never collect their credentials or bypass the prompt.

Android

Use Google's Android SDK Platform Tools. The owner enables USB debugging and approves this host's RSA key on the phone. adb devices -l must identify the intended physical serial in state device; unauthorized, offline, or a missing device is a blocker. A device entry alone does not prove Android has finished booting. Bind subsequent ADB commands with -s <serial> and agent-device with --platform android --serial <serial>.

Discovery may start the local ADB server. Do not restart a shared server or reset device authorizations as an automatic repair. Wireless pairing and helper/IME installation require task scope beyond checking a USB connection.

iPhone through Xcode

Use full Xcode with support for the phone's OS. Check the selected developer directory and Xcode version before proposing a switch; license acceptance and first-launch setup are host changes. Do not add simulator or watchOS runtimes for a phone-only task.

The owner completes device trust and Developer Mode, including its restart and confirmation. Verify the exact phone in xcrun devicectl list devices; use --platform ios --udid <udid> for agent-device. Keep the phone unlocked for discovery and XCTest preparation. XCTest interaction also needs working Developer Disk Image (DDI) services and runner signing. A paired device is insufficient proof. For a DDI failure, inspect Developer Mode, Xcode/OS compatibility, and the exact CoreDevice diagnostic; do not copy unverified disk images or delete shared developer state.

iPhone Mirroring

Check Apple's current Mirroring requirements, including supported hardware/OS and region, the same Apple Account with 2FA, Wi-Fi/Bluetooth, and a nearby locked iPhone. Confirm the intended phone when several are available. Mirroring is independent of XCTest/DDI readiness.

For new setup, prefer Ask Every Time and decline mirrored notifications unless requested. Preserve an existing explicit user preference. The owner completes Mac authentication and any phone-side prompt. Do not inspect notifications or personal content to demonstrate success. An unavailable region or unresolved account requirement ends with a concrete blocker, not a workaround.

Proof and closeout

When a device interaction is authorized, use a task-owned session and one named test surface, preferably the user's test app. Select a non-personal Settings page only if that is the agreed proof. Use umask 077 for new agent-device state and evidence; inspect the resolved state directory before reuse. Do not change permissions or remove locks in another session's state.

Perform the bounded interaction, verify the expected result, and close only the session or Mirroring window opened for this task. If setup or interaction fails, report the failed prerequisite and the owner's next action. Keep unfinished recovery evidence; do not turn closeout into daemon, device, or cache cleanup. Scrub device identifiers, account names, screenshots, and logs before sharing.

Optional upstream skill

The canonical source is callstack/agent-device. If installing its skill is requested, the standalone installer works without a dotskills checkout. Run from the intended project and choose the intended agent and installation scope:

sh
npx skills add callstack/agent-device --skill agent-device

This installs instructions, not the runtime. If the skill is absent, installed CLI help remains usable. Do not run repository-wide import or sync to prepare one device. See upstream agent setup.

Inputs

  • Named Mac, physical device, selected mode, and allowed host/device changes.
  • Installed tool versions and relevant readiness diagnostics.
  • Owner participation for trust, authentication, and signing when needed.

Outputs

  • Readiness or setup result with the exact target and verified evidence.
  • Bounded interaction result, or a precise blocker and next action.
  • Task-owned session closeout and any retained evidence, without private data.

Flow

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Agent Device Lab AI skill do?

Prepare and check trusted macOS hosts for physical Android and iPhone tests with agent-device, ADB, and Xcode, or set up iPhone Mirroring separately.

Why use Agent Device Lab on TypingMind?

Because you install it once and use it with any model. Agent Device Lab is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Agent Device Lab in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/vincentkoc/dotskills/tree/main/skills/agent-device-lab. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Agent Device Lab?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Agent Device Lab?

As many as you like. As long as a model supports skills, you can use Agent Device Lab with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Agent Device Lab AI skill free?

Yes. It is published on GitHub by vincentkoc under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇