Official agent skill

Developer Device Platform Basics

by google in google/skills

Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP).

OfficialApache-2.0Auto-check passedMobile

Install Developer Device Platform Basics

skills CLI
$ npx skills add google/skills --skill developer-device-platform-basics -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install google/skills developer-device-platform-basics --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/cloud/developer-device-platform-basics .claude/skills/developer-device-platform-basics && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
developer-device-platform-basics
GitHub stars
21k
Token cost
~2.5k tokens
SKILL.md length
1,184 words
Files
11 (incl. scripts, references)
Skills in repo
145
Repo updated
First seen
Licence
Apache-2.0

At a glance

Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP).

  • Works in 2 steps: Google Cloud Authentication:… → Enable APIs (if not already enabled)
  • Reserving remote Android devices
  • SKILL.md covers Authentication & Setup, Listing Available Devices, Starting a Device Session and Viewing the Device Screen of a…, plus 4 more sections
  • Runs Python scripts from its folder; calls adb; needs ACCESS_TOKEN

What it does

Developer Device Platform Basics is an agent skill from google/skills, published by the product's own GitHub organization. Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP). Use when reserving remote Android devices, establishing connection tunnels, checking session status, or extending/cancelling leases. Don't use for iOS or local device/hardware inquiries.

Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 12 other files, including scripts and reference files (for example `references/cancel_session.md`, `references/describe_device.md` and `references/list_sessions.md`).

It sits in Mobile. It works with Android, iOS and Google Cloud. The repository describes itself as: Agent Skills for Google products and technologies. The licence is Apache-2.0.

When your agent uses it

  • Reserving remote Android devices
  • Establishing connection tunnels
  • Checking session status
  • Extending/cancelling leases

Example prompts

  • “Use the developer-device-platform-basics skill to provide guidance and instructions on managing remote devices on Developer Device Platform (DDP)”
  • “/developer-device-platform-basics”

Requirements

  • Python 3
  • A credential in ACCESS_TOKEN

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Google Cloud Authentication: Authenticate with your Google Cloud
  2. Enable APIs (if not already enabled)

What it can do on your machine

Read from SKILL.md and the folder at commit 8a1ac05. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 2 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • adb

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.cloud.google.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • ACCESS_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Developer Device Platform Basics loads about 2.5k tokens when it runs, and up to ~3.8k if it reads all its reference files. Until then it costs about 79 tokens; SKILL.md has 1,184 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~79
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from google/skills at commit 8a1ac05, republished under its Apache-2.0 licence (© google). 1,184 words, ~2,519 tokens.

Download SKILL.mdSave it as .claude/skills/developer-device-platform-basics/SKILL.md (or your agent's skills folder). This skill also uses 10 other files; get the full folder from GitHub.
name
developer-device-platform-basics
description
Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP). Use when reserving remote Android devices, establishing connection tunnels, checking session status, or extending/cancelling leases. Don't use for iOS or local device/hardware inquiries.
metadata.version
0.5.0
metadata.category
CloudInfrastructureAndServices

Developer Device Platform

Developer Device Platform (DDP) is a Google fully managed, global infrastructure providing access to a wide variety of physical and virtual devices.

[!WARNING] Developer Device Platform (DDP) is currently at Preview.

[!IMPORTANT] For all devicerun and devicestreaming API operations (reserving, status checking, stopping/canceling, updating, or listing a session), always verify and use the exact instructions and curl commands provided in the linked reference .md files.

Authentication & Setup

CRITICAL: Before running any requests, you MUST ensure the environment is correctly initialized by following these steps:

Before running any requests, verify if the gcloud executable is present. If missing, refer to the official Google Cloud CLI Installation Guide to install it on the current platform (Linux, macOS, Windows, etc.).

  1. Google Cloud Authentication: Authenticate with your Google Cloud credentials and configure active Application Default Credentials (ADC) for the Developer Device Platform:

    bash
    gcloud auth login --no-browser
    gcloud auth application-default login --no-browser
  2. Enable APIs (if not already enabled):

    bash
    gcloud services enable devicerun.googleapis.com devicestreaming.googleapis.com testing.googleapis.com --quiet

[!NOTE] Cloud Testing API is needed for Device Streaming API during Preview.

  1. Enable gcloud beta component:

    bash
    gcloud components install beta
  2. Setup Environment Variables: Set up the required project variable and access token:

    bash
    export PROJECT_ID=$(gcloud config get project)
    export ACCESS_TOKEN=$(gcloud auth application-default print-access-token 2>/dev/null)
  3. Python Environment: For instructions on setting up the python virtual environment, see start_adb_forwarder.md.

Listing Available Devices

To find the correct modelCode and osVersion to use when starting a session, you can list the available devices:

  1. List Models: Run the following command to list available Android device models:

    bash
    gcloud beta device-run devices list

    Use the ID column to find the value for the CATALOG_ID parameter to describe a specific device (e.g., shiba-36).

  2. Describe a Model: Run the API request to get more details about a specific model (e.g., supportedProducts, resolution). Always rely on the exact curl command and instructions provided in describe_device.md.

Starting a Device Session

When the user asks to reserve or connect to a device:

  1. Check Device Availability:

    Look up CATALOG_ID of the device using Listing Available Devices instructions. Check the device availability of the CATALOG_ID by using the exact curl command and instructions provided in describe_device.md. The device MUST contain "deviceStreaming" in "supportedProducts" to be reserved.

    If no specific device is specified, use CATALOG_ID=shiba-34 (Pixel 8 on SDK 34).

    If OS_VERSION was not specified by the user, ask the user to select a version from the device list (preferring the version with the highest availability {"available": "AVAILABILITY_HIGH" }).

    If OS_VERSION is unavailable for deviceStreaming, do not reserve one. Prompt the user for an alternative OS_VERSION.

  2. Extract Parameters:

    • model_id: modelCode from device details. Required.
    • version_id: osVersion from device details. Required.
  3. Reserve Device:

    Rule: Explicit User Confirmation Required. Reserving a device incurs billing charges and creates cloud resources. The agent MUST ALWAYS warn the user explicitly about the billing costs that will be incurred on the active Google Cloud project (e.g., ${PROJECT_ID}). You MUST STOP and ask for explicit approval before proceeding with any session creation commands.

    Then, run the API request with model_id and version_id to reserve the device. Always rely on the exact curl command and instructions provided in reserve_device.md.

    Parse the response to get session_name (the session name, e.g., projects/${PROJECT_ID}/deviceSessions/session-xxxxxx). If reservation fails, report the error.

  4. Wait for Session to be Active:

    While waiting for the device session to be provisioned, poll the session status until "state" is "ACTIVE". See session_status.md for the exact curl command.

    Repeat this check every 5 seconds to prevent hitting API rate limit. If it does not become active within 2 minutes (typically under 1 minute), report failure and cancel the session. Once active, extract expireTime from the session JSON response and convert it to the user's local time in a human-readable format (e.g., "June 9, 2026 at 2:44 PM PDT").

  5. Start Connection Forwarder: Start the ADB forwarder script to forward connection to the remote device. Always rely on the exact command and instructions provided in start_adb_forwarder.md. Ensure you record the Command ID.

  6. Wait for Online and Parse Port: Wait for the forwarder to be online and extract the listening port. Always rely on the exact logic and instructions provided in start_adb_forwarder.md.

  7. Provide Instructions to User:

    Once online, run adb -s localhost:{port} shell getprop ro.product.model to retrieve the device model name. Then, print a message directly to the user in the chat (do NOT create any artifact file) with the following instructions:

    Device is ready!
    Device Model: {device_model}
    OS Version: {version_id}
    ADB Address: localhost:{port}
    Session Expiration: {expire_time_human_readable_local}
  8. Save Session State: Save the {session_name} and {command_id} in your conversation memory/context so you can clean it up later.

Show full SKILL.md (405 more words)Show less

Viewing the Device Screen of a Reserved Device

The coding agent can directly interact with the remote device using adb. Users may use a utility to display the screen and manually control the reserved device in DDP. See view_device.md for an example utility.

Stopping a Device Session

When the user asks to stop, cleanup, or release the device:

  1. Identify Session: Retrieve the active {session_name} and {command_id} from your context. If you don't have them, list active sessions first (see helper command below) to find the session name.

  2. Cancel Session via API: Cancel the session via the API. Always rely on the exact curl command and instructions provided in cancel_session.md.

  3. Terminate Connection Forwarder: Terminate the background process matching {command_id} using your environment's process management capability.

  4. Confirm: Confirm to the user that the session has been cancelled and resources released.

Change Device Session Expiration Time

When the user asks to change the expiration time of an active device session:

Rule: Explicit User Confirmation Required. Extending a device session incurs additional billing charges and creates cloud resources. The agent MUST ALWAYS warn the user explicitly about the extra billing costs that will be incurred on the active Google Cloud project (e.g., ${PROJECT_ID}). You MUST STOP and ask for explicit approval before proceeding with any session extension commands.

  1. Extract Parameters:

    • session_name: The active session name.
    • ttl: The new remaining duration (e.g., 3600s). Derive the ttl if it's provided in another format.
  2. Change Session via API: Change the session via the API using updateMask=ttl. Always rely on the exact curl commands and instructions provided in update_session_expiration.md.

  3. Restart Connection Forwarder:

    • Run adb disconnect localhost:{port} to ensure the old forwarder connection is closed.
    • Stop the old connection forwarder corresponding to {command_id}.
    • Start a new connection forwarder by following Step 5 in "Starting a Device Session" (calculating the new --ttl duration in seconds and storing the newly returned Command ID).
  4. Confirm: Confirm to the user that the session duration has been updated and the connection forwarder has been restarted with the new TTL.

Helper: List Active Sessions

To find active sessions if you lost context, always rely on the curl command and instructions provided in list_sessions.md.

References

© google, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 10 other files (scripts, references) in skills/cloud/developer-device-platform-basics of google/skills.

  • SKILL.md
  • references/cancel_session.md
  • references/describe_device.md
  • references/list_sessions.md
  • references/reserve_device.md
  • references/session_status.md
  • references/start_adb_forwarder.md
  • references/update_session_expiration.md
  • references/view_device.md
  • scripts/demo_adb_forwarder.py
  • scripts/requirements.txt

Open the folder on GitHubat commit 8a1ac05

Compare with similar skills

Developer Device Platform Basics next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Developer Device Platform Basics compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Developer Device Platform Basics this skillgoogle/skills21k—~2.5kAutomated safety check: PassApache-2.0
Exposed MigrationGerardPaligot/Confily152—~1.3kAutomated safety check: PassApache-2.0
Kotlin LintingGerardPaligot/Confily152—~708Automated safety check: PassApache-2.0
Mobilerun Docs Referencedroidrun/mobilerun9.6k—~943Automated safety check: PassMIT
App Store Screenshots GeneratorParthJadhav/app-store-screenshots7.2k—~14kAutomated safety check: PassMIT
Rnn Codebasewix/react-native-navigation13k—~2kAutomated safety check: PassMIT

Similar skills

  • Exposed Migration

    GerardPaligot/Confily

    A skill your agent uses when adding, removing, or modifying columns, indexes, or tables in any Exposed table object (files under infrastructure/exposed/ ending in Table.kt).

    152 GitHub stars~1.3k tokensUpdated 10 days ago
    MobileAuto-check passed
  • Kotlin Linting

    GerardPaligot/Confily

    A skill your agent uses whenever you write or modify Kotlin files in this project.

    152 GitHub stars~708 tokensUpdated 10 days ago
    MobileAuto-check passed
  • Mobilerun Docs Reference

    droidrun/mobilerun

    Answers questions about Mobilerun, the LLM-agent framework for automating Android and iOS devices, by pointing the agent to the right page of its v5 documentation.

    9.6k GitHub stars~943 tokensUpdated 2 days ago
    MobileAuto-check passed
  • App Store Screenshots Generator

    ParthJadhav/app-store-screenshots

    Scaffolds a Next.js editor for designing App Store and Google Play screenshots as ads and exporting them at every required size, for iOS, Mac and Android.

    7.2k GitHub stars~14k tokensUpdated 4 days ago
    MobileAuto-check passed
  • Rnn Codebase

    wix/react-native-navigation

    Official

    Navigate and work with the react-native-navigation (RNN) codebase.

    13k GitHub stars~2k tokensUpdated yesterday
    MobileAuto-check passed
  • Building Native UI

    CherryHQ/cherry-studio-app

    Complete guide for building beautiful apps with Expo Router.

    4k GitHub starsUsed in 8 repos~2.6k tokens
    MobileAuto-check passed

More from google/skills

All 145 skills in this repo
  • Official

    Manages Google Cloud Privileged Access Manager entitlements and grants: create and edit entitlements, request temporary access, and approve or deny pending grants.

    21k GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • Official

    Writes Terraform alerting policies for AI agents that emit OpenTelemetry metrics, covering reliability, cost, safety, security and quality signals on Google Cloud.

    21k GitHub stars~4.2k tokensUpdated yesterday
    Auto-check passed
  • Official

    Deploys open models or custom weights from Model Garden to Agent Platform endpoints, checks deployment status and cleans up endpoints, confirming before any change.

    21k GitHub stars~5.1k tokensUpdated yesterday
    Auto-check passed
  • Official

    Searches, manages and scaffolds skills in the Gemini Enterprise Agent Platform Skill Registry using bundled Python scripts and Google Cloud credentials.

    21k GitHub stars~584 tokensUpdated yesterday
    Auto-check passed
  • Designs GCP infrastructure as local Terraform, validates and scans it against best practices, then imports it to Application Design Center for deployment and troubleshooting.

    21k GitHub stars~4.4k tokensUpdated yesterday
    Auto-check passed
  • Official

    Analyzes BigQuery slot use, query costs and execution bottlenecks from INFORMATION_SCHEMA to diagnose slow queries, slot contention and unpartitioned scans.

    21k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Developer Device Platform Basics

What does Developer Device Platform Basics do?

Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP). Developer Device Platform Basics is an agent skill from google/skills, published by the product's own GitHub organization. Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP).

When should I use Developer Device Platform Basics?

Developer Device Platform Basics fits situations like: reserving remote Android devices; establishing connection tunnels; checking session status; extending/cancelling leases.

How do I install Developer Device Platform Basics in Claude Code?

Run `npx skills add google/skills --skill developer-device-platform-basics -a claude-code`. Or copy the skill folder (skills/cloud/developer-device-platform-basics in google/skills) into .claude/skills/developer-device-platform-basics in your project. Claude Code loads it when a task matches its description.

How do I install Developer Device Platform Basics in Codex?

Run `npx skills add google/skills --skill developer-device-platform-basics -a codex`. Or copy the skill folder (skills/cloud/developer-device-platform-basics in google/skills) into .agents/skills/developer-device-platform-basics in your project. Codex loads it when a task matches its description.

Can I use Developer Device Platform Basics in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add google/skills --skill developer-device-platform-basics -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/developer-device-platform-basics, .gemini/skills/developer-device-platform-basics, .github/skills/developer-device-platform-basics and .opencode/skills/developer-device-platform-basics in your project.

What does Developer Device Platform Basics need to run?

Going by SKILL.md and its folder, Developer Device Platform Basics needs Python for the scripts in its folder, the command-line tools its instructions call (adb) and credentials named ACCESS_TOKEN. Our summary lists: Python 3; A credential in ACCESS_TOKEN.

Does Developer Device Platform Basics access the network?

SKILL.md names 1 domain. As links in the text: docs.cloud.google.com. This is read from the text; nothing was executed.

Is Developer Device Platform Basics safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Developer Device Platform Basics use?

Developer Device Platform Basics is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Developer Device Platform Basics use?

About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.3k tokens, read only when the agent opens those files.

What are the alternatives to Developer Device Platform Basics?

Skills that share tags, products or a category with Developer Device Platform Basics: Exposed Migration (GerardPaligot/Confily, 152 stars), Kotlin Linting (GerardPaligot/Confily, 152 stars), Mobilerun Docs Reference (droidrun/mobilerun, 9.6k stars) and App Store Screenshots Generator (ParthJadhav/app-store-screenshots, 7.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Developer Device Platform Basics?

google (a GitHub organization, an official publisher) maintains it in google/skills, which has 20,994 GitHub stars. The repository holds 145 skills in this directory. The repository was last updated on October 6, 2026.

Source: google/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.