Agent skill

Device Interaction

by Infomaniak in Infomaniak/desktop-kDrive

Verify iOS app behavior on device or simulator via screenshots, UI hierarchy, and touch interactions.

GPL-3.0Auto-check passedMobile

Install Device Interaction

skills CLI
$ npx skills add Infomaniak/desktop-kDrive --skill device-interaction -a claude-code

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

GitHub CLI
$ gh skill install Infomaniak/desktop-kDrive device-interaction --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/Infomaniak/desktop-kDrive.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/device-interaction .claude/skills/device-interaction && 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
device-interaction
GitHub stars
120
Used in
1 other repo
Token cost
~1.9k tokens
SKILL.md length
915 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
GPL-3.0

At a glance

Verify iOS app behavior on device or simulator via screenshots, UI hierarchy, and touch interactions.

  • Tasks that involve iOS development
  • SKILL.md covers Session Lifecycle, DeviceInteractionStartSession…, DeviceInteractionInstallAndRun… and DeviceEventSynthesize tool, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Device Interaction is an agent skill from Infomaniak/desktop-kDrive. Verify iOS app behavior on device or simulator via screenshots, UI hierarchy, and touch interactions.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering iOS development. It works with iOS. The repository describes itself as: :computer: Desktop Syncing Client for kDrive. The licence is GPL-3.0.

When your agent uses it

  • Tasks that involve iOS development

Example prompts

  • “/device-interaction”

What it can do on your machine

Read from SKILL.md and the folder at commit 1723c4a. 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

    No scripts in the folder and no shell commands in SKILL.md.

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

  • Network

    No URLs in SKILL.md.

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Device Interaction loads about 1.9k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 915 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~30
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from Infomaniak/desktop-kDrive at commit 1723c4a, republished under its GPL-3.0 licence (© Infomaniak). 915 words, ~1,893 tokens.

Download SKILL.mdSave it as .claude/skills/device-interaction/SKILL.md (or your agent's skills folder).
name
device-interaction
description
Verify iOS app behavior on device or simulator via screenshots, UI hierarchy, and touch interactions.

Device Interaction

TRIGGER when: user asks to verify/test/check if the app works on device, after implementing a UI-affecting feature that needs device verification, user says "does it work", "test this", "check on device", user reports UI doesn't work as expected, need to debug touch/interaction issues. DO NOT TRIGGER when: user asks about unit tests only, build-only requests without device testing, code review without device testing, simulator configuration questions, changes that don't affect UI (e.g. comments, refactors, non-UI logic).


For the Main Agent

This is a SUBAGENT skill. Invoke it via the Agent tool when device verification is needed.

Agent tool:
- subagent_type: "general-purpose"
- description: "Verify login feature works"
- prompt: "Using the device-interaction skill, verify that the login feature works correctly on session <device-interaction-session>. Launch the app, capture screenshot and UI hierarchy, check that the login button is visible and tappable, and report if the implementation is working correctly."

After implementing a UI-affecting feature, invoke this skill to verify the implementation works on a device.

Session Lifecycle

DeviceInteractionStartSession (do this early, runs in the background)
  → DeviceInteractionInstallAndRun (after each code change; includes building)
    → DeviceEventSynthesize (interact + observe, repeatable)
  → DeviceInteractionEndSession (when done — keeping sessions open is resource-heavy)

DeviceInteractionStartSession tool

Device Discovery

When opening a new device interaction session, pass a device identifier to select a device, or omit it to use the current destination. Pass any non-matching value to get a list of available targets.

DeviceInteractionInstallAndRun tool

Optional Parameters
  • commandLineArguments — arguments passed to the app at launch. Use $(inherited) as a token to preserve the scheme's existing arguments (e.g. ["$(inherited)", "--reset-state"] to add an extra argument at the end).
  • environmentVariables — key/value pairs set in the app's environment at launch. Use "$(inherited)" as a key to preserve the scheme's existing environment variables (e.g. {"$(inherited)": "", "DEBUG_MODE": "1"}).

Omit both parameters to leave the scheme's arguments and environment unchanged.

Prefer these parameters over editing the scheme directly. They are applied only for that one run and have no lasting effect on the user's configuration.


For the Subagent

ALWAYS report UI issues that might be caused by code: overlapping or unreadable text, unexpectedly cropped image/text, wrong colors etc.

DeviceEventSynthesize tool

This tool allows performing an interaction and observing the state of a device.

Reading Hierarchy Files

The hierarchy files include calculated center positions for each element:

UIView {{100, 200}, {50, 30}}, center: {125.0, 215.0}
  UIButton "Login" {{110, 205}, {30, 20}}, center: {125.0, 215.0}
  • {100, 200} - origin position
  • {50, 30} - width and height
  • center: {125.0, 215.0} - calculated center point (best for tapping)

Always prefer the center coordinates for touch events.

Interaction Command Syntax

The interactionCommand parameter accepts a command syntax:

CommandDescription
t <x> <y> [duration]Tap at coordinates with optional hold duration
d <x> <y>Double tap
t <x1> <y1> f <x2> <y2> [duration]Swipe from (x1,y1) to (x2,y2)
b h/p/u/d [duration]Hardware button: h=Home, p=Power, u=VolUp, d=VolDown
sender keyboard kbd <text>Type text; must be the last command in the chain — all content after kbd is taken verbatim (multiple spaces preserved). For special characters use \u{XXXX} Unicode escapes: \u{000A} (return/newline), \u{0009} (tab)
w durationWait for a duration without any work
orientation faceDown/faceUp/landscapeLeft/landscapeRight/portrait/portraitUpsideDownSet device orientation

Examples:

  • "t 100 200" - Tap at (100, 200)
  • "d 200 300" - Double tap at (200, 300)
  • "t 200 600 f 200 200 0.3" - Swipe up (scroll to the content below)
  • "t 200 200 f 200 600 0.3" - Swipe down (scroll to the content above)
  • "b h" - Press home button
  • "b h b h" - Press home button twice to go to the app switcher
  • "b h w 0 b h" - Wake and unlock a device (non-passcode devices only)
  • "sender keyboard kbd hello world" - Type text with spaces
  • "sender keyboard kbd hello world" - Type text preserving multiple spaces
  • "sender keyboard kbd submit\u{000A}" - Type text then press Return/submit
  • "w 0.3" - Wait for 0.3s
  • "orientation landscapeLeft" - Rotate device to landscape
Show full SKILL.md (374 more words)Show less

Standard Subagent Workflow

Before any interaction, always capture and read the hierarchy (and screenshot). After any interaction, capture again and verify the result. For complex components (like toggles or switches), look at nested elements (like Switch or Slider) — nearby elements might correspond to the actual control. When done, report findings to the main agent.

  • To capture without interacting, use DeviceEventSynthesize with an empty interactionCommand.
  • Never guess positions from screenshots alone — always use hierarchy center coordinates.
  • If not confident or thumbnail resolution is insufficient, analyze the full-size screenshot.

Timing and Retries

  • App launch: After starting a session, the app may take a few seconds to load. Capture the hierarchy and check it has meaningful UI elements before interacting. If the hierarchy is mostly empty or shows a launch screen, capture again before proceeding.
  • After interaction: If a tap or swipe doesn't produce the expected change, recapture the hierarchy and retry the interaction once (the element may have shifted during an animation). If it still fails after one retry, report the failure rather than retrying indefinitely.
  • Loading states: If the hierarchy shows a spinner or loading indicator, capture again after a brief pause. Do not interact with elements that are still loading.

Judging Success vs Failure

When verifying, distinguish between these categories:

  • Functional bug (always report): element doesn't respond to tap, navigation goes to wrong screen, crash, data not displayed, missing expected UI element.
  • Visual/layout bug (always report): overlapping text, truncated labels, elements rendered off-screen, wrong colors, broken alignment.
  • Transient state (do NOT report as bug): loading spinners, brief animations, keyboard appearing/dismissing. Capture again after the transition completes.
  • Unexpected exits (always report): crashes, application exits. To identify, track process id and capture process's standard output.
  • Expected behavior (do NOT report as bug): empty states with placeholder text, disabled buttons when form is incomplete, permission dialogs.

Error Handling

  • If application is not visible, retry once, as this might be caused by a slow device.
  • If tap target unclear, re-read hierarchy data for correct center coordinates.
  • You can inspect runtime logs to troubleshoot. If you suspect timing bugs, suggest to the main agent that temporarily adding print statements in the relevant code may help diagnose the issue.
  • Report issues back to the main agent with details and suggestions.

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

Files

Just SKILL.md in .agents/skills/device-interaction of Infomaniak/desktop-kDrive.

Open the folder on GitHubat commit 1723c4a

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in Infomaniak/desktop-kDrive, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Device Interaction 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.

Device Interaction compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Device Interaction this skillInfomaniak/desktop-kDrive1201 repos~1.9kAutomated safety check: PassGPL-3.0
Hig Project Contextraintree-technology/hig-doctor1435 repos~1.2kAutomated safety check: PassMIT
Hig Components Contentraintree-technology/hig-doctor1435 repos~1.3kAutomated safety check: PassMIT
iOS Simulator Skilln0an/VivaDicta1311 repos~2.5kAutomated safety check: PassMIT
Inspector Implementationipedro/Inspector170—~729Automated safety check: PassMIT
Run iOS SimulatoriPlug2/iPlug2OOS158—~711Automated safety check: PassNone

Similar skills

  • Hig Project Context

    raintree-technology/hig-doctor

    Create or update a shared Apple design context document that other HIG skills use to tailor guidance.

    143 GitHub starsUsed in 5 repos~1.2k tokens
    MobileAuto-check passed
  • Hig Components Content

    raintree-technology/hig-doctor

    Apple Human Interface Guidelines for content display components.

    143 GitHub starsUsed in 5 repos~1.3k tokens
    MobileAuto-check passed
  • iOS Simulator Skill

    n0an/VivaDicta

    21 production-ready scripts for iOS app testing, building, and automation.

    131 GitHub starsUsed in 1 repo~2.5k tokens
    MobileAuto-check passed
  • Inspector Implementation

    ipedro/Inspector

    A skill your agent uses when an agent needs to implement or modify the Inspector library itself — panel UI, hierarchy/runtime behavior, custom property models, macros, or Example-app dogfooding.

    170 GitHub stars~729 tokensUpdated 5 mo ago
    MobileAuto-check passed
  • Run iOS Simulator

    iPlug2/iPlug2OOS

    Build and run an iPlug2 iOS app in the iOS Simulator. An agent skill from iPlug2/iPlug2OOS.

    158 GitHub stars~711 tokensUpdated 24 days ago
    MobileAuto-check passed
  • Official

    Evaluates a bitwarden/ios "Update SDK to" PR against the sdk-swift commit range for compile-time, runtime and serialization breaking changes, maps affected symbols to iOS call sites, and applies…

    696 GitHub stars~2.6k tokensUpdated today
    MobileAuto-check passed

More from Infomaniak/desktop-kDrive

  • Kdrive Sentry Rca

    Infomaniak/desktop-kDrive

    Investigate kDrive crashes, Sentry issues, and application logs to produce source-grounded root cause analyses.

    120 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • PR Description Writer

    Infomaniak/desktop-kDrive

    Generate a pull request title and a bilingual (French and English) description in a PR.md file, based on the git diff between the current branch and its base branch (develop by default).

    120 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Swiftui Specialist

    Infomaniak/desktop-kDrive

    Best practices and idiomatic patterns for SwiftUI. An agent skill from Infomaniak/desktop-kDrive.

    120 GitHub starsUsed in 1 repo~875 tokens
    Auto-check passed

Works with

Categories

Questions about Device Interaction

What does Device Interaction do?

Verify iOS app behavior on device or simulator via screenshots, UI hierarchy, and touch interactions. Device Interaction is an agent skill from Infomaniak/desktop-kDrive. Verify iOS app behavior on device or simulator via screenshots, UI hierarchy, and touch interactions.

When should I use Device Interaction?

Device Interaction fits situations like: tasks that involve iOS development.

How do I install Device Interaction in Claude Code?

Run `npx skills add Infomaniak/desktop-kDrive --skill device-interaction -a claude-code`. Or copy the skill folder (.agents/skills/device-interaction in Infomaniak/desktop-kDrive) into .claude/skills/device-interaction in your project. Claude Code loads it when a task matches its description.

How do I install Device Interaction in Codex?

Run `npx skills add Infomaniak/desktop-kDrive --skill device-interaction -a codex`. Or copy the skill folder (.agents/skills/device-interaction in Infomaniak/desktop-kDrive) into .agents/skills/device-interaction in your project. Codex loads it when a task matches its description.

Can I use Device Interaction 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 Infomaniak/desktop-kDrive --skill device-interaction -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/device-interaction, .gemini/skills/device-interaction, .github/skills/device-interaction and .opencode/skills/device-interaction in your project.

What does Device Interaction need to run?

SKILL.md names no scripts, command-line tools or credentials: Device Interaction is instructions for the agent only.

Does Device Interaction access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Device Interaction 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. Review the folder before installing.

What licence does Device Interaction use?

Device Interaction is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Device Interaction use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Device Interaction?

Skills that share tags, products or a category with Device Interaction: Hig Project Context (raintree-technology/hig-doctor, 143 stars), Hig Components Content (raintree-technology/hig-doctor, 143 stars), iOS Simulator Skill (n0an/VivaDicta, 131 stars) and Inspector Implementation (ipedro/Inspector, 170 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Device Interaction?

Infomaniak (a GitHub organization) maintains it in Infomaniak/desktop-kDrive, which has 120 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.

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