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).
Provides guidance and instructions on managing remote devices on Developer Device Platform (DDP).
$ npx skills add google/skills --skill developer-device-platform-basics -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install google/skills developer-device-platform-basics --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "developer-device-platform-basics" agent skill from https://github.com/google/skills/tree/main/skills/cloud/developer-device-platform-basics into .claude/skills/developer-device-platform-basics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developer-device-platform-basics", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/google/skills/tree/main/skills/cloud/developer-device-platform-basicsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add google/skills --skill developer-device-platform-basics -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install google/skills developer-device-platform-basics --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/cloud/developer-device-platform-basics .agents/skills/developer-device-platform-basics && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "developer-device-platform-basics" agent skill from https://github.com/google/skills/tree/main/skills/cloud/developer-device-platform-basics into .agents/skills/developer-device-platform-basics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developer-device-platform-basics", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add google/skills --skill developer-device-platform-basics -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install google/skills developer-device-platform-basics --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/cloud/developer-device-platform-basics .cursor/skills/developer-device-platform-basics && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "developer-device-platform-basics" agent skill from https://github.com/google/skills/tree/main/skills/cloud/developer-device-platform-basics into .cursor/skills/developer-device-platform-basics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developer-device-platform-basics", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/google/skills.git --path skills/cloud/developer-device-platform-basics--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add google/skills --skill developer-device-platform-basics -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install google/skills developer-device-platform-basics --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/cloud/developer-device-platform-basics .gemini/skills/developer-device-platform-basics && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "developer-device-platform-basics" agent skill from https://github.com/google/skills/tree/main/skills/cloud/developer-device-platform-basics into .gemini/skills/developer-device-platform-basics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developer-device-platform-basics", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install google/skills developer-device-platform-basicsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add google/skills --skill developer-device-platform-basics -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/cloud/developer-device-platform-basics .github/skills/developer-device-platform-basics && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "developer-device-platform-basics" agent skill from https://github.com/google/skills/tree/main/skills/cloud/developer-device-platform-basics into .github/skills/developer-device-platform-basics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developer-device-platform-basics", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add google/skills --skill developer-device-platform-basics -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install google/skills developer-device-platform-basics --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/google/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/cloud/developer-device-platform-basics .opencode/skills/developer-device-platform-basics && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "developer-device-platform-basics" agent skill from https://github.com/google/skills/tree/main/skills/cloud/developer-device-platform-basics into .opencode/skills/developer-device-platform-basics/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "developer-device-platform-basics", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
developer-device-platform-basicsProvides 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). 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.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 8a1ac05. It shows what the files ask for, not the result of running them.
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.
Ships 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
adbFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.cloud.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ACCESS_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from google/skills at commit 8a1ac05, republished under its Apache-2.0 licence (© google). 1,184 words, ~2,519 tokens.
.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.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
.mdfiles.
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.).
Google Cloud Authentication: Authenticate with your Google Cloud credentials and configure active Application Default Credentials (ADC) for the Developer Device Platform:
gcloud auth login --no-browser
gcloud auth application-default login --no-browserEnable APIs (if not already enabled):
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.
Enable gcloud beta component:
gcloud components install betaSetup Environment Variables: Set up the required project variable and access token:
export PROJECT_ID=$(gcloud config get project)
export ACCESS_TOKEN=$(gcloud auth application-default print-access-token 2>/dev/null)Python Environment: For instructions on setting up the python virtual environment, see start_adb_forwarder.md.
To find the correct modelCode and osVersion to use when starting a session,
you can list the available devices:
List Models: Run the following command to list available Android device models:
gcloud beta device-run devices listUse the ID column to find the value for the CATALOG_ID parameter to
describe a specific device (e.g., shiba-36).
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.
When the user asks to reserve or connect to a device:
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.
Extract Parameters:
model_id: modelCode from device details. Required.version_id: osVersion from device details. Required.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.
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").
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.
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.
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 Model: {device_model}
OS Version: {version_id}
ADB Address: localhost:{port}
Session Expiration: {expire_time_human_readable_local}Save Session State: Save the {session_name} and {command_id} in your
conversation memory/context so you can clean it up later.
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.
When the user asks to stop, cleanup, or release the device:
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.
Cancel Session via API: Cancel the session via the API. Always rely on the exact curl command and instructions provided in cancel_session.md.
Terminate Connection Forwarder: Terminate the background process
matching {command_id} using your environment's process management
capability.
Confirm: Confirm to the user that the session has been cancelled and resources released.
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.
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.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.
Restart Connection Forwarder:
adb disconnect localhost:{port} to ensure the old forwarder
connection is closed.{command_id}.--ttl duration in seconds and
storing the newly returned Command ID).Confirm: Confirm to the user that the session duration has been updated and the connection forwarder has been restarted with the new TTL.
To find active sessions if you lost context, always rely on the curl command and instructions provided in list_sessions.md.
© 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
SKILL.md and 10 other files (scripts, references) in skills/cloud/developer-device-platform-basics of google/skills.
Open the folder on GitHubat commit 8a1ac05
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Developer Device Platform Basics this skillgoogle/skills | 21k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Exposed MigrationGerardPaligot/Confily | 152 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Kotlin LintingGerardPaligot/Confily | 152 | — | ~708 | Automated safety check: Pass | Apache-2.0 | |
| Mobilerun Docs Referencedroidrun/mobilerun | 9.6k | — | ~943 | Automated safety check: Pass | MIT | |
| App Store Screenshots GeneratorParthJadhav/app-store-screenshots | 7.2k | — | ~14k | Automated safety check: Pass | MIT | |
| Rnn Codebasewix/react-native-navigation | 13k | — | ~2k | Automated safety check: Pass | MIT |
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).
GerardPaligot/Confily
A skill your agent uses whenever you write or modify Kotlin files in this project.
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.
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.
wix/react-native-navigation
Navigate and work with the react-native-navigation (RNN) codebase.
CherryHQ/cherry-studio-app
Complete guide for building beautiful apps with Expo Router.
google/skills
Manages Google Cloud Privileged Access Manager entitlements and grants: create and edit entitlements, request temporary access, and approve or deny pending grants.
google/skills
Writes Terraform alerting policies for AI agents that emit OpenTelemetry metrics, covering reliability, cost, safety, security and quality signals on Google Cloud.
google/skills
Deploys open models or custom weights from Model Garden to Agent Platform endpoints, checks deployment status and cleans up endpoints, confirming before any change.
google/skills
Searches, manages and scaffolds skills in the Gemini Enterprise Agent Platform Skill Registry using bundled Python scripts and Google Cloud credentials.
google/skills
Designs GCP infrastructure as local Terraform, validates and scans it against best practices, then imports it to Application Design Center for deployment and troubleshooting.
google/skills
Analyzes BigQuery slot use, query costs and execution bottlenecks from INFORMATION_SCHEMA to diagnose slow queries, slot contention and unpartitioned scans.
Works with
Categories
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).
Developer Device Platform Basics fits situations like: reserving remote Android devices; establishing connection tunnels; checking session status; extending/cancelling leases.
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.
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.
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.
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.
SKILL.md names 1 domain. As links in the text: docs.cloud.google.com. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.