agentsclimarketplace

Install apk

Skill vikenpatel14/cursor-qa-skills/install-apk

Custom Cursor AI agent skills for mobile QA workflows — bug creation, JIRA refinement, RC revalidation, crash analysis, and build installation. Built for a large consumer mobile app (iOS/Android).

Install
npx -y skills add vikenpatel14/cursor-qa-skills --skill install-apk

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Install APK builds to a connected Android device via adb. Scans the local builds folder for RC, Preview, and Feature Branch APKs. Can also fetch build links from Slack release channels. Use when the user wants to install an APK, sideload an app, install a build, push an APK to a device, mentions RC/Preview/feature branch builds, uses shorthand like "26.21 R W" or "26.21 P C", provides a .apk filename, or asks for builds from Slack (e.g. "26.21 slack").

SKILL.md

6.9 KB, as published. Nobody here has run it

Install APK to Device

Build Folders

APK files are stored locally in these locations — never in ~/Downloads/:

  • RC & Preview builds: /path/to/your/builds/
  • Feature branch builds: /path/to/your/builds/Feature branch/

Scan & Table Output

On every install request, ALWAYS do the following before installing:

  1. Scan both folders (and any subfolders) for all .apk files:
find "/path/to/your/builds" -name "*.apk" -type f
  1. Parse each filename to determine type, version, and region:

    • RC builds: filename starts with [Company]-, contains Release and RC (e.g. App-26.21.0-2022211953-157-Release-RegionA-RC-Signed.apk)
    • Preview builds: filename starts with MyApp-, contains Debug (e.g. MyApp-26.21.0-26040118-157-RegionA-Debug-Signed.apk)
    • Feature branch builds: any .apk inside the Feature branch/ subfolder
  2. Display the results in a compact table sorted in ascending order by version:

    • One row per version with four columns for each build type/region.
    • Each cell shows the shorthand the user would type to install it, or if not available.
    • Only show the Feature Branch table if feature branch APKs exist.

RC & Preview Builds

#VersionRC Region ARC Region BPreview Region APreview Region B
126.18.026.18 W
226.21.026.21 W26.21 C26.21 P W26.21 P C

Feature Branch Builds (only shown if feature branch APKs exist)

#NameFilename
1EXAMPLE-PROJ-1234some-feature-build.apk

Shorthand Quick Install

The user will use shorthand to request installs. Match as follows:

User saysTypeRegionMatch filename containing
26.21 R W or 26.21 WRCRegion AApp-26.21.*Release-RegionA-RC
26.21 R C or 26.21 CRCRegion BApp-26.21.*Release-RegionB-RC
26.21 P WPreviewRegion AMyApp-26.21.*RegionA-Debug
26.21 P CPreviewRegion BMyApp-26.21.*RegionB-Debug
feature branch <name>FeatureMatch <name> against filenames in Feature branch/ folder

Default rule: If the user only says a version + region without specifying R or P (e.g. 26.21 W or 26.21 C), always default to RC (R).

The user may also provide a full filename — match it against scanned results.

Install Command

Run immediately — no confirmation needed:

~/Library/Android/sdk/platform-tools/adb install "<FULL_PATH_TO_APK>"

If the app is already installed and the user is updating, use -r to replace:

~/Library/Android/sdk/platform-tools/adb install -r "<FULL_PATH_TO_APK>"

Always quote the path (filenames and folders contain spaces).

Handling Errors

Do NOT ask the user for confirmation on recoverable errors. Fix them automatically.

ErrorAction
INSTALL_FAILED_ALREADY_EXISTSRe-run with -r flag
INSTALL_FAILED_UPDATE_INCOMPATIBLE or INSTALL_FAILED_CONFLICTING_PROVIDERAutomatically uninstall the conflicting package, then install the new APK. Do NOT ask — just do it.
INSTALL_FAILED_VERSION_DOWNGRADERe-run with -d flag to allow downgrade: adb install -r -d <apk>
error: no devices/emulators foundAsk the user to connect their device via USB and enable USB Debugging
INSTALL_FAILED_INSUFFICIENT_STORAGETell the user to free up space on the device

Examples

User says: "26.21 R W"

Action:

  1. Scan folder, show table of all available builds.
  2. Match 26.21 R W → find App-26.21.0-2022211953-157-Release-RegionA-RC-Signed.apk
  3. Install immediately:
~/Library/Android/sdk/platform-tools/adb install "/path/to/your/builds/App-26.21.0-2022211953-157-Release-RegionA-RC-Signed.apk"

User says: "26.21 P C"

Action:

  1. Scan folder, show table of all available builds.
  2. Match 26.21 P C → find MyApp-26.21.0-26040118-157-RegionB-Debug-Signed.apk
  3. Install immediately:
~/Library/Android/sdk/platform-tools/adb install "/path/to/your/builds/MyApp-26.21.0-26040118-157-RegionB-Debug-Signed.apk"

User says: "install feature branch EXAMPLE-PROJ-1234"

Action:

  1. Scan Feature branch/ subfolder, show feature branch table.
  2. Match filename containing EXAMPLE-PROJ-1234 or the card name.
  3. Install immediately.

Slack Build Lookup

Slack release channels follow the naming pattern: yourapp-release-XX-XX (dashes, not dots).

Trigger

When the user mentions a version + "slack" (e.g. 26.21 slack), use the dis-slack agent to read the channel and extract build links.

User saysAction
26.21 slackRead #yourapp-release-26-21, list latest Android build links
26.21 slack iosRead #yourapp-release-26-21, list latest iOS build links

Steps

  1. Use the dev-integration-server MCP tools (preferred) or fall back to CLI (dis call):
    • slack_channels with {"query": "yourapp-release-XX-XX"} to find the channel ID
    • slack_history with {"channel": "<CHANNEL_ID>", "limit": 20} to get messages
  2. Parse messages for build links (TestFairy URLs). iOS builds come from one message, Android from another.
  3. Display the results with full build details extracted from the Slack messages:

Android Builds — #yourapp-release-26-21

#BuildVersionBuild CodeLink
1RC Region A26.21.02022211953Download
2RC Region B26.21.02022211953Download
3Preview Region A26.21.026040118Download
4Preview Region B26.21.026040118Download

Always include: version, build code, download link, and who posted it with date/time. Add a "Open in Slack" permalink at the end so the user can jump directly to the message. Do NOT include package name column or rollout schedule — keep it clean.

Example footer: Posted by John Releaser — April 8, 2026, 9:33 PM UTC | [Open in Slack](slack://channel?team=TEAM_ID&id=CHANNEL_ID&message=MESSAGE_TS)

Always use the slack:// deep link format so it opens directly in the Slack desktop app — never use https://your-org.slack.com/... browser links.

Adaptive Parsing

Build links are typically posted by devs in a consistent format. If the format changes over time, adapt by learning the new pattern from the messages.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.