Agent skill · AI & Agents

drive-automation-session

Drive an already-reserved Kobiton device from a natural-language intent. Opens an automation Appium session directly against the Kobiton WebDriver hub, runs an observe-decide-act loop with one action per iteration, pauses to ask the user when stuck (same-action repetition, screen unchanged, or model self-declared blocker), and returns the session id. Use when the user says "drive the device to X", describes a flow they want exercised on a reserved device, or asks to "automate this intent on Kobiton". Complements run-interactive-cli-session (which uses the CLI session type) by using the auto

jeremylongshoregithub.com/jeremylongshoreGitHub ↗
claude-codecan modify filesships scriptsMIT
Install
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill drive-automation-session --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 9
SKILL.md size: 22 KB
Bundled scripts: yes
Version: 1.0.0
Declared author: Kobiton Inc.
Allowed tools: >-ReadEditBash(node:*)Bash(bash:*)Bash(pwsh:*)Bash(mkdir:*)Bash(mv:*)Bash(date:*)Bash(echo:*)Bash(printf:*)Bash(jq:*)
Requires: >- Cross-platform — talks WebDriver HTTP directly via Node's built-in >= 18 and an authenticated Kobiton MCP connection…
Path: skills/.curated/drive-automation-session/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 2,596
Language: Python
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

Review
written from the skill's own SKILL.md · Aug 5, 2026

What it does

Drives a Kobiton device from a natural-language intent by opening an automation Appium session against the Kobiton WebDriver hub. It runs an observe-decide-act loop, performing one action per iteration, and pauses to ask the user when stuck (conditions: same-action repetition, screen unchanged, or model self-declared blocker). It returns the session id for use in saveTestCase and the test-run authoring flow.

How it works

  • Verifies credentials from Kobiton MCP or fallback credentials; errors if missing.
  • Renders desired capabilities with a node script, creating a temporary caps file for the session, including a long newCommandTimeout to survive pauses.
  • Creates an Appium session via a Node-based appium.js script, capturing the sessionId and storing per-session artifacts in a dedicated directory.
  • Provides live view handling: can launch a chromeless or default-browser-based live view URL depending on user preference, with launcher code and OS-specific commands.
  • Runs a per-turn, turn-based loop with exactly one of three branches per iteration:
    • screen: observe current state and capture iter-N.xml and iter-N.png
    • act: perform an Appium call based on the latest observed state
    • control: end the loop when goal reached or blocked
  • The loop increments ITER each turn and detects success/failure via presence of iter-N.{error,json} files.
  • Exits gracefully; returns the session id for later retrieval by Kobiton MCP tools.

When to use it

Use when the user says something like “drive the device to X,” describes a flow on a reserved device, or asks to automate an intent on Kobiton. It complements the run-interactive-cli-session by providing an automation-session workflow consumable by test-case tooling.

What it can touch

  • WebDriver through Node.js (Node >= 18) via Kobiton MCP tools (e.g., getSession, reserveDevice, terminateSession).
  • Local filesystem for temporary caps and per-session logs under .kobiton/sessions/<SESSION_ID>.
  • Live view launcher scripts and browser launch commands on macOS, Windows, and Linux.

Caveats

  • Requires credentials from Kobiton MCP or ~/.kobiton/.credentials; otherwise the skill stops with a message.
  • Uses an automation session with a long timeout; runaway iterations are prevented by a MAX_ITERS ceiling (default 100) but the loop design is turn-based with explicit iteration control.
  • Behavior and tool naming depend on host MCP integration; the skill documents multiple host-specific prefixes for MCP tool calls.
  • No outcomes promised beyond returning the session id and driving the device; actual test results depend on the observed/acted sequence and user interactions.
From the SKILL.md

# Drive from Intent ## Overview Drive a Kobiton device from a natural-language intent. The caller provides: 1. An intent string (e.g. "open Settings, enable Bluetooth, then go back to home"). 2. A UDID for a device the caller has already reserved. 3. An app reference (`kobiton-store:vXXXXX`) or a browser name for web sessions. The skill opens an **automation-type** Appium session (with `appium:new

More from claude-code-plugins-plus-skills
All skills →
About this skill
What does the drive-automation-session skill do?

Drive an already-reserved Kobiton device from a natural-language intent. Opens an automation Appium session directly against the Kobiton WebDriver hub, runs an observe-decide-act loop with one action per iteration, pauses to ask the user when stuck (same-action repetition, screen unchanged, or model self-declared blocker), and returns the session id. Use when the user says "drive the device to X", describes a flow they want exercised on a reserved device, or asks to "automate this intent on Kobiton". Complements run-interactive-cli-session (which uses the CLI session type) by using the auto

How do I install it?

Run `npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill drive-automation-session --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From jeremylongshore/claude-code-plugins-plus-skills, a repository with 2,596 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going