Agent skill

App Control

by ad-repo in ad-repo/nullplayer

Launch, configure, drive, screenshot and measure the running NullPlayer app.

Custom licenceAuto-check passedTesting & QA

Install App Control

skills CLI
$ npx skills add ad-repo/nullplayer --skill app-control -a claude-code

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

GitHub CLI
$ gh skill install ad-repo/nullplayer app-control --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/ad-repo/nullplayer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/app-control .claude/skills/app-control && 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
app-control
GitHub stars
158
Token cost
~9.4k tokens
SKILL.md length
5,058 words
Files
17 (incl. scripts)
Skills in repo
40
Repo updated
First seen
Licence
Custom licence

At a glance

Launch, configure, drive, screenshot and measure the running NullPlayer app.

  • Works in 2 steps: A recipe that builds any other way is a… → There is exactly one defaults domain in…
  • Asked to run / launch / start the app
  • SKILL.md covers Rule zero: the app under test…, Routing, Route A — don't launch the GUI and Route B — launch…, plus 5 more sections
  • Runs Shell, AppleScript, Python and Swift scripts from its folder; calls swift, osascript and git

What it does

App Control is an agent skill from ad-repo/nullplayer. Launch, configure, drive, screenshot and measure the running NullPlayer app. Use when asked to run / launch / start the app, click or drag a control, reproduce a defect on screen, "open skin X", "show me it working", set up a test scenario, capture a window, check that every window opens, stretches and closes, or hand the user a loaded interactive session. Covers every skin family (Classic, Original, Original-Metal, Winamp Modern .wal, Windows Media Player .wmz, Audion faces) and names the canonical test-data…

Its SKILL.md is about 9.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts (for example `eval/README.md`, `eval/case-01-wmp-elapsed-readout.md` and `eval/ground-truth.md`).

It sits in Testing & QA, covering Test data and fixtures. It works with Swift. The repository describes itself as: nullPlayer is a free open source macOS media player with some unique features.

When your agent uses it

  • Asked to run / launch / start the app
  • Reproduce a defect on screen
  • Show me it working
  • Set up a test scenario

Example prompts

  • “open skin X”
  • “show me it working”
  • “/app-control”

Requirements

  • Python 3
  • A Bash shell

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. A recipe that builds any other way is a bug in the recipe. Release exists only for a deliberate
  2. There is exactly one defaults domain in this skill: NullPlayer. com.nullplayer.app is

What it can do on your machine

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

    Ships 10 files in scripts/ (Shell, AppleScript, Python and Swift), which the agent can run.

    Shell commands in SKILL.md call:

    • swift
    • osascript
    • git

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

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    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

App Control loads about 9.4k tokens when it runs. Until then it costs about 134 tokens; SKILL.md has 5,058 words of instructions outside code blocks.

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

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); the scripts in this folder are not scanned.

SKILL.md

Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 5,058 words (~9,445 tokens).

“skills/app-control/scripts/launch.sh is the launch command (Route B); it runs ./scripts/kill_build_run.sh --debug, which is the build-and-run command for a launch with no skin to pin. Not swift build, not Xcode, not a release build.”

— opening of SKILL.md by ad-repo, Custom licence
name
app-control

Read the full SKILL.md on GitHub

Files

SKILL.md and 16 other files (scripts) in skills/app-control of ad-repo/nullplayer.

  • SKILL.md
  • eval/README.md
  • eval/case-01-wmp-elapsed-readout.md
  • eval/ground-truth.md
  • eval/rubric.md
  • reference/launch-recipes.md
  • reference/test-data.md
  • scripts/build.sh
  • scripts/launch.sh
  • scripts/menu.applescript
  • scripts/playback-snapshot.sh
  • scripts/size-isolation-test.sh
  • scripts/skin-mode-switch-test.sh
  • scripts/skin-pick-matrix.py
  • scripts/window-census.sh
  • scripts/window-interaction-matrix.sh
  • scripts/winhelper.swift

Open the folder on GitHubat commit 3d87ce1

Compare with similar skills

App Control 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.

App Control compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
App Control this skillad-repo/nullplayer158—~9.4kAutomated safety check: PassCustom licence
Jest Testing PatternsChrisWiles/claude-code-showcase6.1k7 repos~1.5kAutomated safety check: PassNone
Java SDK E2E Test with Replay Snapshotgithub/copilot-sdk11k—~1.8kAutomated safety check: PassMIT
source-mssql E2E Test Harnessairbytehq/airbyte22k—~4.4kAutomated safety check: PassCustom licence
RTK Filter TDD in Rustrtk-ai/rtk83k—~1.9kAutomated safety check: NotesApache-2.0
OpenLogi Device Fixture ContributionAprilNEA/OpenLogi23k—~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • Jest Testing Patterns

    ChrisWiles/claude-code-showcase

    Jest patterns for React Native style tests: TDD discipline, mock factory functions, module and GraphQL hook mocking, custom render helpers and anti-patterns to avoid.

    6.1k GitHub starsUsed in 7 repos~1.5k tokens
    Testing & QAAuto-check passed
  • Official

    Creates a Java SDK end-to-end test for the Copilot SDK that runs against a recorded YAML snapshot through a replay proxy, so CI needs no real authentication.

    11k GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed
  • Official

    Stands up a throwaway local SQL Server 2022 backend, applies SQL fixtures and runs Airbyte spec, check, discover and read against source-mssql images.

    22k GitHub stars~4.4k tokensUpdated today
    Testing & QAAuto-check passed
  • Enforces red-green-refactor for new RTK output filters in Rust, using real captured fixtures, snapshot tests with insta and token-savings assertions.

    83k GitHub stars~1.9k tokensUpdated today
    Testing & QAAuto-check: notes
  • Guides recording, privacy review and offline verification of OpenLogi device fixtures with the fixture contribute and verify commands, without treating replay as proof of hardware behavior.

    23k GitHub stars~1.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Official

    Stands up a throwaway local MySQL 8.0 backend, applies SQL fixtures and sweeps the Airbyte spec, check, discover and read commands against a source-mysql image.

    22k GitHub stars~2.6k tokensUpdated today
    Testing & QAAuto-check passed

More from ad-repo/nullplayer

All 40 skills in this repo
  • Skin Screenshots

    ad-repo/nullplayer

    Capture one centred main-window screenshot per skin across every skin system (Classic, Original, Original-Metal, Modern/.wal, Media Player/.wmz, Audion Faces) and assemble them into a fixed-duration…

    158 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Vis Classic Guide

    ad-repo/nullplayer

    Comprehensive implementation and profile reference for NullPlayer's visclassic mode (CVisClassicCore, VisClassicBridge, SpectrumAnalyzerView integration, menu/keyboard controls…

    158 GitHub stars~739 tokensUpdated today
    Auto-check passed
  • Chromecast Casting

    ad-repo/nullplayer

    Google Cast Protocol v2, message framing, debugging, and test scripts.

    158 GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Emby Integration

    ad-repo/nullplayer

    Emby API, authentication flow, rating scale, streaming, scrobbling, and video playback.

    158 GitHub stars~3.2k tokensUpdated today
    Auto-check passed
  • Live UI Testing

    ad-repo/nullplayer

    How to debug a defect that only exists on screen — instrument first, drive the app yourself, and measure what is actually drawn.

    158 GitHub stars~4.1k tokensUpdated today
    Auto-check passed
  • Metal Gotchas

    ad-repo/nullplayer

    Cross-cutting Metal pitfalls in NullPlayer's visualization code — command encoder ordering, render-to-texture y-flip, shader availability checks, and the AudioEngine spectrum coalescing pattern that…

    158 GitHub stars~1.4k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about App Control

What does App Control do?

Launch, configure, drive, screenshot and measure the running NullPlayer app. App Control is an agent skill from ad-repo/nullplayer. Launch, configure, drive, screenshot and measure the running NullPlayer app.

When should I use App Control?

App Control fits situations like: asked to run / launch / start the app; reproduce a defect on screen; show me it working; set up a test scenario.

How do I install App Control in Claude Code?

Run `npx skills add ad-repo/nullplayer --skill app-control -a claude-code`. Or copy the skill folder (skills/app-control in ad-repo/nullplayer) into .claude/skills/app-control in your project. Claude Code loads it when a task matches its description.

How do I install App Control in Codex?

Run `npx skills add ad-repo/nullplayer --skill app-control -a codex`. Or copy the skill folder (skills/app-control in ad-repo/nullplayer) into .agents/skills/app-control in your project. Codex loads it when a task matches its description.

Can I use App Control 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 ad-repo/nullplayer --skill app-control -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/app-control, .gemini/skills/app-control, .github/skills/app-control and .opencode/skills/app-control in your project.

What does App Control need to run?

Going by SKILL.md and its folder, App Control needs a shell, AppleScript, Python and Swift for the scripts in its folder and the command-line tools its instructions call (swift, osascript and git). Our summary lists: Python 3; A Bash shell.

Does App Control access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is App Control 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does App Control use?

App Control has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.

How many tokens does App Control use?

About 9.4k tokens (SKILL.md is roughly 38k 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 App Control?

Skills that share tags, products or a category with App Control: Jest Testing Patterns (ChrisWiles/claude-code-showcase, 6.1k stars), Java SDK E2E Test with Replay Snapshot (github/copilot-sdk, 11k stars), source-mssql E2E Test Harness (airbytehq/airbyte, 22k stars) and RTK Filter TDD in Rust (rtk-ai/rtk, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains App Control?

ad-repo (a GitHub user) maintains it in ad-repo/nullplayer, which has 158 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 10, 2026.

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