Skip to content
Back to skills

Install

ASecurity

Install the app on a device or emulator (auto-detects platform and build system)

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 29, 2026
developmentswiftkotlin

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add abnegate/claudes --skill install --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Install?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Install
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/abnegate-install/badge)](https://www.skillsdirectory.com/skills/abnegate-install)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: install
description: Install the app on a device or emulator (auto-detects platform and build system)
argument-hint: "[--device <target>] [--variant <variant>]"
---

# Install App

Install the built application onto a target device, emulator, or simulator. Auto-detects the project platform and build system.

## Arguments

Parse `$ARGUMENTS` for named flags:
- `--device <target>` — Device target: `emulator`, `physical`, `simulator`, or a specific serial/UDID. Defaults to first available.
- `--variant <variant>` — Build variant (e.g. `debug`, `release`, `demo`). Defaults to `debug`.

## Platform Detection (Parallel)

Launch parallel agents to detect the project platform:

**Agent 1 — Android**:
Check for: `build.gradle.kts` or `build.gradle` containing `android`, `AndroidManifest.xml`
- Gradle wrapper: `./gradlew installDebug`
- Flutter: `flutter install`

**Agent 2 — iOS**:
Check for: `*.xcodeproj`, `*.xcworkspace`, `Podfile`, `Package.swift` with iOS platform
- Xcode: `xcodebuild -destination <dest> install` or via `xcrun simctl install`
- Flutter: `flutter install -d <device>`

**Agent 3 — Web**:
Check for: `package.json` with `dev`/`start` script, `deno.json`, `composer.json`
- Not applicable for install — skip (install is a no-op for web; `run` handles it)

**Agent 4 — Cross-platform**:
Check for: `pubspec.yaml` (Flutter), `build.gradle.kts` with `kotlin("multiplatform")` (KMP)
- Flutter: `flutter install -d <device>`
- KMP: detect target platform from connected devices, then use appropriate install

## Device Selection

### Android
1. Run `adb devices -l` to list connected devices
2. If `--device emulator`: target the emulator device (name contains `emulator`)
3. If `--device physical`: target the non-emulator device
4. If `--device <serial>`: target that specific serial
5. If no `--device` and exactly one device: use it
6. If no `--device` and multiple devices: ask the user which to target
7. If no devices: report error and suggest `adb start-server` or launching an emulator

### iOS
1. If `--device simulator`: use `xcrun simctl list devices booted` to find a running simulator
2. If `--device physical`: use `xcrun devicectl list devices` for physical devices
3. If `--device <udid>`: target that specific UDID
4. If no `--device` and exactly one target (booted sim or physical): use it
5. If no `--device` and multiple targets: ask the user which to target

## Execution

1. **Detect** platform via parallel agents above
2. **Build** the installable artifact if not already built:
   - Android: `./gradlew assembleDebug` (or `installDebug` which builds + installs)
   - iOS: `xcodebuild build` then install
   - Flutter: `flutter build` then `flutter install`
3. **Install**:
   - Android: `./gradlew install<Variant>` (e.g. `installDebug`, `installRelease`) or `adb -s <serial> install -r <apk-path>`
   - iOS Simulator: `xcrun simctl install booted <app-path>`
   - iOS Device: `xcrun devicectl device install app --device <udid> <app-path>`
   - Flutter: `flutter install -d <device-id>`
4. **Report**: Confirm installation with device name and app identifier

## Error Handling

If installation fails:
- **Android "INSTALL_FAILED_UPDATE_INCOMPATIBLE"**: Run `adb uninstall <package>` then retry
- **Android no device**: Check `adb devices`, suggest starting emulator
- **iOS signing error**: Report and suggest checking signing configuration
- **Build failure**: Fall back to the `/skills:build` command, fix errors, then retry install

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…