Radon MCP
software-mansion-labs/skills
Best practices for using Radon IDE's MCP tools when developing, debugging, and inspecting React Native and Expo apps.
Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings.
$ npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bex-co/beancount-io qa-find-bugs-mobile --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/qa-find-bugs-mobile .claude/skills/qa-find-bugs-mobile && rm -rf skills-srcUse ~/.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/
Install the "qa-find-bugs-mobile" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/qa-find-bugs-mobile into .claude/skills/qa-find-bugs-mobile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-find-bugs-mobile", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/bex-co/beancount-io/tree/main/.agents/skills/qa-find-bugs-mobileType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bex-co/beancount-io qa-find-bugs-mobile --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/qa-find-bugs-mobile .agents/skills/qa-find-bugs-mobile && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qa-find-bugs-mobile" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/qa-find-bugs-mobile into .agents/skills/qa-find-bugs-mobile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-find-bugs-mobile", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bex-co/beancount-io qa-find-bugs-mobile --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/qa-find-bugs-mobile .cursor/skills/qa-find-bugs-mobile && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "qa-find-bugs-mobile" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/qa-find-bugs-mobile into .cursor/skills/qa-find-bugs-mobile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-find-bugs-mobile", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/bex-co/beancount-io.git --path .agents/skills/qa-find-bugs-mobile--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bex-co/beancount-io qa-find-bugs-mobile --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/qa-find-bugs-mobile .gemini/skills/qa-find-bugs-mobile && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "qa-find-bugs-mobile" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/qa-find-bugs-mobile into .gemini/skills/qa-find-bugs-mobile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-find-bugs-mobile", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install bex-co/beancount-io qa-find-bugs-mobileInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/qa-find-bugs-mobile .github/skills/qa-find-bugs-mobile && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "qa-find-bugs-mobile" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/qa-find-bugs-mobile into .github/skills/qa-find-bugs-mobile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-find-bugs-mobile", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bex-co/beancount-io qa-find-bugs-mobile --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bex-co/beancount-io.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/qa-find-bugs-mobile .opencode/skills/qa-find-bugs-mobile && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "qa-find-bugs-mobile" agent skill from https://github.com/bex-co/beancount-io/tree/main/.agents/skills/qa-find-bugs-mobile into .opencode/skills/qa-find-bugs-mobile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qa-find-bugs-mobile", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
qa-find-bugs-mobileHunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings.
QA Find Bugs Mobile is an agent skill from bex-co/beancount-io. Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings. Use for native mobile QA. Skip browser-only dashboard QA, ordinary code review, and store releases.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).
It sits in Mobile, covering Cross-platform mobile apps, Debugging and Root cause analysis. It works with Model Context Protocol, Expo and iOS. The repository describes itself as: 💰 Double-entry bookkeeping made easy — plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5614bc7. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
xcrunnpxnodeyarnFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and yarn, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
QA_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
QA Find Bugs Mobile loads about 2.2k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 947 words of instructions outside code blocks.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
QA_EMAIL` / `QA_PASSWORD` from **`mobile/.env`**, unless the user suppliesanother path. Pass `--env-file mobile/.env` to the shared helper from the reporoot (or `--env-file .env` when working inside `mobile/`). Do not reuse theAutomated 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.
The full file from bex-co/beancount-io at commit 5614bc7, republished under its MIT licence (© bex-co). 947 words, ~2,161 tokens.
.claude/skills/qa-find-bugs-mobile/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Read the shared QA contract first, then
mobile/AGENTS.md, especially its production-write and simulator instructions.
Use Expo MCP on iPhone 17e unless the user names another device. A mobile
viewport in Playwright is not a substitute for exercising the native app.
Arguments: optional server URL, journey names, device name, wN, SHIP=1,
DRY_RUN=1. Default to the app's selected server and report mode; inspect the
selected server before signing in or writing anything.
Record xcrun simctl list devices available -j, identify the iPhone 17e
UDID, and record its runtime, appearance, and initial boot state. Do not use
the first booted device as a proxy for the requested one.
Work inside mobile/. Install existing deps with
yarn install --frozen-lockfile if needed. Reuse a matching Metro server or
start plain npx expo start --localhost. Do not set
EXPO_UNSTABLE_MCP_SERVER=1; the local binary needs no remote MCP tunnel.
Use the native development build io.beancount.ios. Check it is installed on
the target UDID and launch it with xcrun simctl launch <udid> io.beancount.ios.
If necessary, build for that device with
SENTRY_DISABLE_AUTO_UPLOAD=true npx expo run:ios --device <udid>.
Do not count Expo Go or an old native binary's missing module/permission as a
product regression. Reusing a compatible build does not authorize copying
credentials or another simulator's data container.
Start the local MCP server:
node node_modules/expo-mcp/bin/expo-mcp.mjs \
--dev-server-url http://localhost:8081 --root /absolute/path/to/mobileConnect through an MCP client or JSON-RPC stdio: initialize,
notifications/initialized, tools/list, then tools/call. If the tools are
absent from the agent's tool list, use this installed local server; no new
dependency or hosted Expo authentication is needed. Discover its actual
schemas rather than inventing a device argument.
The currently pinned Expo MCP chooses the sole booted iOS simulator and rejects multiple devices. Record other booted simulators, temporarily shut them down when appropriate for this QA session, and restore them afterward. If another session needs one running, report the conflict instead of silently tapping it. Verify the screenshot is from iPhone 17e before the first action.
automation_tap with {projectRoot, platform:"ios", testID} or {x,y},
automation_find_view, automation_take_screenshot, and collect_app_logs.
Keep screenshots under the gitignored repo-root .tmp/qa-<date>/; decode
image content to a file, not a base64 dump in the transcript. Bound
individual log captures to 10s.testID and inspected view bounds. Taps use logical points. Expo MCP
resizes screenshots, so do not blindly divide its image coordinates by 3.
Determine the native dimensions and capture scale, or use view bounds.QA_EMAIL / QA_PASSWORD from mobile/.env, unless the user supplies
another path. Pass --env-file mobile/.env to the shared helper from the repo
root (or --env-file .env when working inside mobile/). Do not reuse the
dashboard file implicitly; the two packages may use different QA accounts.
Keep the values inside the credential helper. Tap the native
Sign In action, complete its browser OAuth/PKCE authorization, and verify that
control returns to the app and survives a relaunch. Never inject a fabricated
token/session into reactive variables to bypass the flow.osascript when macOS
Accessibility access is available. Credential typing must stay in a helper
and target a verified field. Do not assume an automation text tool exists.xcrun simctl openurl <udid> 'beancount:///(app)/<route>?param=value'.
Record that this proves the destination, not the navigation/scroll journey.
Do not use malformed or fabricated ledger/transaction IDs as a valid control.| Journey | Observable promise |
|---|---|
| auth/server | Server validation and connection test, sign-in/cancel/retry, browser callback, relaunch persistence, and explicit expired-session recovery work. Restore any local server setting changed during the run. |
| discovery | Owned/starred/discover lists, search and ledger selection land on the chosen ledger; switching clears prior ledger data. Star/unstar only when authorized and restore the initial state. |
| home | Period and account controls change summaries; recent activity opens the correct transaction; empty/loading states do not flash misleading values. |
| transactions | Search/date/type/payee/account filters compose, clear restores results, paging/refresh does not duplicate rows, detail/postings agree. |
| entry | On authorized disposable data: add/edit balanced postings, date, payee and narration; cancel preserves data; saving persists once after relaunch. Check keyboard and validation on iPhone 17e. |
| accounts | Account hierarchy/search, picker, detail entries and balance charts agree; account creation requires authorized synthetic data. |
| reports/budget | Date/interval changes affect displayed reports, chart selections and budget progress. Multi-currency and no-budget states remain honest. Budget writes require the scoped permission. |
| merchants | Grouped payees, exact-payee drill-down, search and totals match their transaction sets; shared chart tooltips clear on period changes. |
| files | Browse text files, branches, commits and diffs; navigate back; edit/save/cancel only disposable files when authorized. |
| settings | Theme, locale, local server settings and supported screens work; restore initial preferences. Inspect billing, referral, notifications and account deletion without submitting external or destructive actions. |
| accessibility | Primary controls have meaningful labels; safe areas, keyboard, dialogs and tab navigation remain usable in light/dark at this device size. |
Wait for each journey to settle, capture evidence and relevant logs, and relaunch
before retaining a failure. Do not flip config.features.agentChat; its disabled
state is deliberate. Investigate source under mobile/app/ (thin routes),
mobile/src/screens/ (behavior), src/common/ (Apollo, OAuth, vars, selectors),
and src/components/. Generated GraphQL code is evidence, not an edit target.
Trace server failures under the relevant backend package's guidance.
Apply the shared triage, root-cause, dedupe and handoff contract. State which native journeys actually ran on iPhone 17e, which were only deep-linked, and which need credentials, write authorization, physical hardware, or another OS.
© bex-co, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/qa-find-bugs-mobile of bex-co/beancount-io.
Open the folder on GitHubat commit 5614bc7
QA Find Bugs Mobile 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| QA Find Bugs Mobile this skillbex-co/beancount-io | 296 | — | ~2.2k | Automated safety check: Notes | MIT | |
| Radon MCPsoftware-mansion-labs/skills | 291 | — | ~665 | Automated safety check: Pass | None | |
| Appllama UsageAppllama/appllama-skills | 2.5k | 1 repos | ~1.6k | Automated safety check: Pass | MIT | |
| Mobile Devcallstackincubator/codex-mobile-dev-plugin | 150 | — | ~5.5k | Automated safety check: Pass | None | |
| Debugagentic-community/mcp-gateway-registry | 967 | — | ~1.8k | Automated safety check: Notes | Apache-2.0 | |
| Flowstudio Power Automate Debuggithub/awesome-copilot | 40k | 2 repos | ~5k | Automated safety check: Pass | MIT |
software-mansion-labs/skills
Best practices for using Radon IDE's MCP tools when developing, debugging, and inspecting React Native and Expo apps.
Appllama/appllama-skills
Use the Appllama MCP (mcp.appllama.io) well — research real top-grossing mobile apps, their screens, flows, and UI elements, then build from what you learn.
callstackincubator/codex-mobile-dev-plugin
A skill your agent uses when building, running, changing, or debugging local iOS, Android, Expo, React Native, or SwiftUI apps.
agentic-community/mcp-gateway-registry
Debug issues in the MCP Gateway Registry using first-principles thinking.
github/awesome-copilot
Debug failing Power Automate cloud flows using the FlowStudio MCP server.
github/awesome-copilot
Pro+ subscription required. An agent skill from github/awesome-copilot.
bex-co/beancount-io
Close an accounting period in a Beancount ledger by reconciling each active account through beancount-reconcile, checking assertions and recurring gaps, reviewing flags, then proposing a commit with…
bex-co/beancount-io
Import a bank or card CSV, OFX/QFX, or QIF export into an existing Beancount ledger.
bex-co/beancount-io
Write or repair a reusable Beangulp importer from a sample bank export, with reviewed golden files and a passing test harness.
bex-co/beancount-io
Scaffold a new Beancount ledger with bea init and validation, with optional Fava browser setup when requested.
bex-co/beancount-io
Record a described options trade or lifecycle event as validated Beancount transactions through bea, after review and confirmation.
bex-co/beancount-io
Reconcile one Beancount account against a CSV statement or pasted PDF text.
Works with
Categories
Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings. QA Find Bugs Mobile is an agent skill from bex-co/beancount-io. Hunt bugs in the running Beancount mobile app using local Expo MCP on the iPhone 17e simulator, sign in with QAEMAIL and QAPASSWORD, reproduce failures, trace root causes, and deduplicate findings.
QA Find Bugs Mobile fits situations like: native mobile QA; tasks that involve Cross-platform mobile apps; tasks that involve Debugging.
Run `npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a claude-code`. Or copy the skill folder (.agents/skills/qa-find-bugs-mobile in bex-co/beancount-io) into .claude/skills/qa-find-bugs-mobile in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a codex`. Or copy the skill folder (.agents/skills/qa-find-bugs-mobile in bex-co/beancount-io) into .agents/skills/qa-find-bugs-mobile in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bex-co/beancount-io --skill qa-find-bugs-mobile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qa-find-bugs-mobile, .gemini/skills/qa-find-bugs-mobile, .github/skills/qa-find-bugs-mobile and .opencode/skills/qa-find-bugs-mobile in your project.
Going by SKILL.md and its folder, QA Find Bugs Mobile needs the command-line tools its instructions call (xcrun, npx, node and yarn) and credentials named QA_PASSWORD. Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
QA Find Bugs Mobile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with QA Find Bugs Mobile: Radon MCP (software-mansion-labs/skills, 291 stars), Appllama Usage (Appllama/appllama-skills, 2.5k stars), Mobile Dev (callstackincubator/codex-mobile-dev-plugin, 150 stars) and Debug (agentic-community/mcp-gateway-registry, 967 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bex-co (a GitHub organization) maintains it in bex-co/beancount-io, which has 296 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 9, 2026.
Source: bex-co/beancount-io on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.