Agent skill

Argent Settings Permissions

by bbplayer-app in bbplayer-app/BBPlayer

Grant, deny, or reset an app's runtime permissions (camera, microphone, photos, contacts, notifications, calendar, location, location-always, media-library, motion, reminders) on an iOS simulator or…

MITAuto-check passedMobile

Install Argent Settings Permissions

skills CLI
$ npx skills add bbplayer-app/BBPlayer --skill argent-settings-permissions -a claude-code

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

GitHub CLI
$ gh skill install bbplayer-app/BBPlayer argent-settings-permissions --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/bbplayer-app/BBPlayer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/argent-settings-permissions .claude/skills/argent-settings-permissions && 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
argent-settings-permissions
GitHub stars
1.2k
Token cost
~3.8k tokens
SKILL.md length
1,400 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
MIT

At a glance

Grant, deny, or reset an app's runtime permissions (camera, microphone, photos, contacts, notifications, calendar, location, location-always, media-library, motion, reminders) on an iOS simulator or…

  • The permission cannot be changed through the app itself - and only then
  • SKILL.md covers What this tool is for, When to use it - and when NOT to, Supported permissions &… and Actions, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Pre-authorize before the app asks

What it does

Argent Settings Permissions is an agent skill from bbplayer-app/BBPlayer. Grant, deny, or reset an app's runtime permissions (camera, microphone, photos, contacts, notifications, calendar, location, location-always, media-library, motion, reminders) on an iOS simulator or Android device using the argent settings-permissions tool - without navigating the system Settings UI. Use when the permission cannot be changed through the app itself - and only then, pre-authorize before the app asks, deny up front, re-enable a permission the user already denied, or reset so the prompt reappears. If…

Its SKILL.md is about 3.8k 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. It works with Android and iOS. The repository describes itself as: 一款简约、好用的 BiliBili 音乐播放器。 The licence is MIT.

When your agent uses it

  • The permission cannot be changed through the app itself - and only then
  • Pre-authorize before the app asks
  • Re-enable a permission the user already denied
  • Reset so the prompt reappears

Example prompts

  • “/argent-settings-permissions”

What it can do on your machine

Read from SKILL.md and the folder at commit 7b98d88. 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 (its code samples are json).

    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

Argent Settings Permissions loads about 3.8k tokens when it runs. Until then it costs about 168 tokens; SKILL.md has 1,400 words of instructions outside code blocks.

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

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 bbplayer-app/BBPlayer at commit 7b98d88, republished under its MIT licence (© bbplayer-app). 1,400 words, ~3,808 tokens.

Download SKILL.mdSave it as .claude/skills/argent-settings-permissions/SKILL.md (or your agent's skills folder).
name
argent-settings-permissions
description
Grant, deny, or reset an app's runtime permissions (camera, microphone, photos, contacts, notifications, calendar, location, location-always, media-library, motion, reminders) on an iOS simulator or Android device using the argent `settings-permissions` tool - without navigating the system Settings UI. Use when the permission cannot be changed through the app itself - and only then, pre-authorize before the app asks, deny up front, re-enable a permission the user already denied, or reset so the prompt reappears. If the app can flip it - via an in-app toggle or the system permission dialog the app triggers - interact with the app instead.

What this tool is for

settings-permissions edits the platform's permission store directly - the iOS simulator's TCC database, or Android's package-manager permission flags. It replaces the manual Settings → Privacy dance during test setup: pre-authorize a service so the app never has to ask, deny it up front to test the refusal path, or reset it so the first-run dialog appears again on the next launch.

It is a test-setup / out-of-band tool, not a general permissions toggle. The default way to change a permission is still through the app - this tool is the exception for the cases the app can't reach.

When to use it - and when NOT to

Decide with this order. The first matching row wins.

SituationDo thisWhy
The app has an in-app control for the permission (a toggle in its own settings screen)Tap it in the app (describe → gesture-tap) - do NOT use this toolIt's real user behavior and exercises the flow you're testing. See argent-device-interact.
The app is about to ask (or just asked) and the system permission dialog is on screenTap the dialog (Allow / Don't Allow / Allow While Using App) - do NOT use this toolThe app-triggered prompt is the natural path; answering it is what a user does. describe exposes the dialog buttons; fall back to screenshot only if it doesn't.
You need the permission already granted/denied before the app runs, so no dialog interrupts the flowUse this tool (grant / deny) before launch-appThe app can't pre-set its own permission; a real user would do it in Settings. This is the core use case. (deny suppresses the prompt on iOS only - see Gotchas.)
The user already denied it and you need it on againUse this tool (grant)iOS never re-shows a dialog once denied - the only in-device path is the Settings app. This tool is the shortcut.
You need the first-run dialog to appear again (test the prompt itself, or reset dirty state)Use this tool (reset)Returns the permission to "not yet asked" so the app prompts on next use.
The permission is not one this tool supports on the target platform (see the support table)Do NOT use this toolIt will return an "unsupported" error. Use the app dialog if the app triggers one, or navigate the real Settings app.
The setting isn't one of the 11 runtime permissions below (e.g. Wi-Fi, cellular data, dark mode, VPN, Focus)Do NOT use this toolOut of scope - drive the Settings app or the app's own UI instead.

Rule of thumb: if a human tester could flip it inside the app, do that. Reach for settings-permissions only for a change a human would otherwise make in the system Settings app.

Supported permissions & platform coverage

permissioniOS simulator (TCC service)Android (android.permission.*)
cameracamera - only if the target simulator's runtime models it (varies by simruntime, not by the installed Xcode; simulators have no camera hardware)CAMERA
microphonemicrophoneRECORD_AUDIO
photosphotos + photos-add (add-only access is a separate TCC service; photos-add is best-effort - check applied to see whether both changed)READ_MEDIA_IMAGES + READ_MEDIA_VIDEO + READ_MEDIA_VISUAL_USER_SELECTED + READ_EXTERNAL_STORAGE
contactscontactsREAD_CONTACTS + WRITE_CONTACTS
notificationsunsupported - no iOS equivalent; answer the app's dialog insteadPOST_NOTIFICATIONS
calendarcalendarREAD_CALENDAR + WRITE_CALENDAR
locationlocationACCESS_FINE_LOCATION + ACCESS_COARSE_LOCATION
location-alwayslocation-alwaysACCESS_BACKGROUND_LOCATION (a grant also adds fine + coarse - background alone can't read location)
media-librarymedia-libraryREAD_MEDIA_AUDIO + READ_EXTERNAL_STORAGE
motionmotionACTIVITY_RECOGNITION
remindersremindersunsupported - no Android runtime permission

One abstract permission can map to several concrete Android permissions; which ones actually exist depends on the app's manifest and the device's API level (e.g. READ_MEDIA_* on API 33+ vs READ_EXTERNAL_STORAGE below it).

Actions

  • grant - pre-authorize the permission. Requires bundleId.
  • deny - refuse it. Requires bundleId. Use to test the app's "permission denied" path.
  • reset - return to the not-yet-asked state so the dialog reappears on next use. Always per-app (bundleId required):
    • iOS: removes that app's TCC row. A device-wide reset (no bundleId) is not offered - on recent iOS runtimes it reports success but leaves existing per-app grants untouched, so it would report a change that never happened.
    • Android: revokes the grant, then best-effort clears the user-set/user-fixed flags (flag-clearing first appears in Android 13 / API 33; the revoke is what counts toward success). Below API 33 (i.e. API 23-32, everywhere a user-fixed state can exist) flag-clearing is unavailable, so a reset there revokes the grant but cannot clear a "don't ask again" (user-fixed) state - the dialog may stay suppressed on those older devices.

Parameters

json
{
  "udid": "<UDID-or-serial>",
  "action": "grant",
  "permission": "camera",
  "bundleId": "com.example.app"
}
  • udid - target from list-devices (iOS simulator UDID, or Android serial). See argent-ios-simulator-setup / argent-android-emulator-setup to get one.
  • action - grant | deny | reset.
  • permission - one of the 11 names above.
  • bundleId - iOS bundle id or Android package name. Required for every action.
Show full SKILL.md (625 more words)Show less

Platform behavior

iOS simulator only. Edits the simulator's TCC store - always per-app (bundleId required). There is no host-side TCC switch on a physical iPhone, so this tool does not apply to real iOS devices. The simulator must be booted first (boot-device) - otherwise the tool fails with a "current state: Shutdown" error and surfaces the boot hint.

Android emulator and physical device. Changes the app's android.permission.* runtime permissions over adb (and, for reset, best-effort clears the user-set/user-fixed flags - the revoke is what decides success; flag-clearing needs Android 13 / API 33+). Requirements:

  • The app must be installed - the tool probes for the package first and errors clearly if it is missing (a transport/timeout failure surfaces adb's real cause, not a false "not installed").
  • The app must declare the permission in its manifest. The package manager rejects any mapped permission the manifest doesn't request; those come back in the result's skipped list. The action succeeds if at least one mapped permission sticks, and errors only if all of them were rejected.

Gotchas

  • Changing a permission can terminate a running app (system behavior on both platforms). Prefer setting permissions before launch-app; if you change one while the app is running, restart-app afterward.
  • Reset is per-app on both platforms - pass bundleId; there is no reliable device-wide reset.
  • A partial Android result is normal. applied lists what actually changed; skipped lists mapped permissions the package manager rejected (usually not in the manifest, or gated by API level). Both together tell you what happened.
  • A pre-launch deny suppresses the prompt on iOS only. On iOS a TCC denial answers the app's request, so no dialog appears. On Android a deny clears the grant but sets no "user-fixed" flag, so the app's next request still shows the system dialog - a pre-launch deny there tests the revoked state, not a suppressed prompt.
  • camera on iOS may be rejected by a simulator runtime that doesn't model the service (it varies by simruntime, not by the installed Xcode - a runtime can accept camera even when the platform's own service list omits it). A rejection surfaces as a generic CoreSimulator error, so a camera failure (unless it's the shutdown-simulator case, which gets the boot hint instead) is reported with a hint about the runtime's supported services.
  • grant location needs the app installed first (iOS). Location authorization isn't stored in TCC and isn't applied to a bundle id until the app exists, so a pre-install grant location / grant location-always records nothing. On a local simulator the tool checks install state and errors clearly instead of reporting a false success; on a remote simulator it cannot probe install state, so a pre-install grant there reports success while recording nothing - make sure the app is installed before granting location remotely. (TCC-backed services like camera/photos can be granted before install; they persist and apply on install.)

Result

Returns { action, permission, bundleId, applied, skipped? }:

  • applied - the platform-level services/permissions actually changed (the TCC service(s) on iOS; the android.permission.* names on Android).
  • skipped - Android only, present when some mapped permissions were rejected but others succeeded.

The call fails when nothing could be applied - read the error; it names the reason: an unsupported permission for the platform (notifications on iOS, reminders on Android), the app not installed (including a pre-install grant location on iOS), a shutdown simulator (iOS), or every mapped permission being rejected (usually a missing manifest entry). A non-shutdown camera failure additionally hints about the simulator runtime's supported services (a shutdown-simulator failure gets the boot hint instead).

Examples

Pre-grant the camera before launching, so the app never prompts:

json
{ "udid": "<UDID>", "action": "grant", "permission": "camera", "bundleId": "com.example.app" }

Test the denied path - refuse location, then launch and observe the fallback:

json
{ "udid": "<serial>", "action": "deny", "permission": "location", "bundleId": "com.example.app" }

Reset notifications on Android so the first-run prompt appears again next launch:

json
{
  "udid": "<serial>",
  "action": "reset",
  "permission": "notifications",
  "bundleId": "com.example.app"
}

Grant always-on location on Android (fans out to background + foreground automatically):

json
{
  "udid": "<serial>",
  "action": "grant",
  "permission": "location-always",
  "bundleId": "com.example.app"
}

© bbplayer-app, MIT. 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/argent-settings-permissions of bbplayer-app/BBPlayer.

Open the folder on GitHubat commit 7b98d88

Compare with similar skills

Argent Settings Permissions 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.

Argent Settings Permissions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Argent Settings Permissions this skillbbplayer-app/BBPlayer1.2k—~3.8kAutomated safety check: PassMIT
Engine Whats Newflutter/flutter179k—~978Automated safety check: PassBSD-3-Clause
Mobilerun Docs Referencedroidrun/mobilerun9.6k—~943Automated safety check: PassMIT
App Store Screenshots GeneratorParthJadhav/app-store-screenshots7.2k—~14kAutomated safety check: PassMIT
Rnn Codebasewix/react-native-navigation13k—~2kAutomated safety check: PassMIT
Building Native UICherryHQ/cherry-studio-app4k8 repos~2.6kAutomated safety check: PassMIT

Similar skills

  • Engine Whats New

    flutter/flutter

    Generates the "what's new" release summary and diff file for changes in the Flutter engine (//engine/src/flutter) between two releases (e.g., 3.47 vs 3.44).

    179k GitHub stars~978 tokensUpdated today
    MobileAuto-check passed
  • Mobilerun Docs Reference

    droidrun/mobilerun

    Answers questions about Mobilerun, the LLM-agent framework for automating Android and iOS devices, by pointing the agent to the right page of its v5 documentation.

    9.6k GitHub stars~943 tokensUpdated 4 days ago
    MobileAuto-check passed
  • App Store Screenshots Generator

    ParthJadhav/app-store-screenshots

    Scaffolds a Next.js editor for designing App Store and Google Play screenshots as ads and exporting them at every required size, for iOS, Mac and Android.

    7.2k GitHub stars~14k tokensUpdated today
    MobileAuto-check passed
  • Rnn Codebase

    wix/react-native-navigation

    Official

    Navigate and work with the react-native-navigation (RNN) codebase.

    13k GitHub stars~2k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Building Native UI

    CherryHQ/cherry-studio-app

    Complete guide for building beautiful apps with Expo Router.

    4k GitHub starsUsed in 8 repos~2.6k tokens
    MobileAuto-check passed
  • Sim Use

    lycorp-jp/sim-use

    Drive iOS Simulator, Android emulator/device, and physical iPhone/iPad screens for AI agents.

    1.4k GitHub stars~3.4k tokensUpdated today
    MobileAuto-check passed

More from bbplayer-app/BBPlayer

All 19 skills in this repo
  • Expo Module

    bbplayer-app/BBPlayer

    Guide for creating and writing Expo native modules and views using the Expo Modules API (Swift, Kotlin, TypeScript).

    1.2k GitHub starsUsed in 3 repos~1.4k tokens
    Auto-check passed
  • Argent Metro Debugger

    bbplayer-app/BBPlayer

    Debug a JS runtime via CDP using argent debugger tools. An agent skill from bbplayer-app/BBPlayer.

    1.2k GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Optimizes a React Native app by profiling first to find real bottlenecks, then sweeping for mechanical issues.

    1.2k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Argent Lens

    bbplayer-app/BBPlayer

    Propose multiple visual design variants for on-screen elements and let the human pick in the Argent Lens window.

    1.2k GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Argent QA Flows

    bbplayer-app/BBPlayer

    Create repeatable QA regression E2E tests as Argent flows from test cases, tickets, or acceptance criteria.

    1.2k GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed
  • Argent Screenshot Diff

    bbplayer-app/BBPlayer

    Compare saved or live app screenshots with the argent screenshot-diff tool.

    1.2k GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Argent Settings Permissions

What does Argent Settings Permissions do?

Grant, deny, or reset an app's runtime permissions (camera, microphone, photos, contacts, notifications, calendar, location, location-always, media-library, motion, reminders) on an iOS simulator or…. Argent Settings Permissions is an agent skill from bbplayer-app/BBPlayer. Grant, deny, or reset an app's runtime permissions (camera, microphone, photos, contacts, notifications, calendar, location, location-always, media-library, motion, reminders) on an iOS simulator or Android device using the argent settings-permissions tool - without navigating the system Settings UI.

When should I use Argent Settings Permissions?

Argent Settings Permissions fits situations like: the permission cannot be changed through the app itself - and only then; pre-authorize before the app asks; re-enable a permission the user already denied; reset so the prompt reappears.

How do I install Argent Settings Permissions in Claude Code?

Run `npx skills add bbplayer-app/BBPlayer --skill argent-settings-permissions -a claude-code`. Or copy the skill folder (.agents/skills/argent-settings-permissions in bbplayer-app/BBPlayer) into .claude/skills/argent-settings-permissions in your project. Claude Code loads it when a task matches its description.

How do I install Argent Settings Permissions in Codex?

Run `npx skills add bbplayer-app/BBPlayer --skill argent-settings-permissions -a codex`. Or copy the skill folder (.agents/skills/argent-settings-permissions in bbplayer-app/BBPlayer) into .agents/skills/argent-settings-permissions in your project. Codex loads it when a task matches its description.

Can I use Argent Settings Permissions 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 bbplayer-app/BBPlayer --skill argent-settings-permissions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/argent-settings-permissions, .gemini/skills/argent-settings-permissions, .github/skills/argent-settings-permissions and .opencode/skills/argent-settings-permissions in your project.

What does Argent Settings Permissions need to run?

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

Does Argent Settings Permissions 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 Argent Settings Permissions 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 Argent Settings Permissions use?

Argent Settings Permissions is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Argent Settings Permissions use?

About 3.8k tokens (SKILL.md is roughly 15k 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 Argent Settings Permissions?

Skills that share tags, products or a category with Argent Settings Permissions: Engine Whats New (flutter/flutter, 179k stars), Mobilerun Docs Reference (droidrun/mobilerun, 9.6k stars), App Store Screenshots Generator (ParthJadhav/app-store-screenshots, 7.2k stars) and Rnn Codebase (wix/react-native-navigation, 13k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Argent Settings Permissions?

bbplayer-app (a GitHub organization) maintains it in bbplayer-app/BBPlayer, which has 1,161 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 8, 2026.

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