Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add AndrewDongminYoo/rn-agents-kit --skill rn-metro-consolegit clone --depth 1 https://github.com/AndrewDongminYoo/rn-agents-kitWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/andrewdongminyoo/rn-agents-kit/rn-metro-console)<a href="https://agentmods.dev/skills/andrewdongminyoo/rn-agents-kit/rn-metro-console"><img src="https://agentmods.dev/badge/skills/andrewdongminyoo/rn-agents-kit/rn-metro-console/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/andrewdongminyoo/rn-agents-kit/rn-metro-console"><img src="https://agentmods.dev/badge/skills/andrewdongminyoo/rn-agents-kit/rn-metro-console.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00072 | $0.01618 |
| Opus 5 | $0.00036 | $0.00809 |
| Sonnet 5 | $0.00014 | $0.00324 |
| Haiku 4.5 | $0.00007 | $0.00162 |
Grade A, and why
rn-metro-console scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
RN Metro Console — Read App Logs via Metro's CDP
Overview
Runs the bundled rn-console.mjs to collect a running RN app's console.log/info/warn/error output from Metro's Chrome DevTools Protocol (CDP) endpoint, and prints it for the agent to read.
It is bounded by default — it collects for a short window (or up to N logs) and then exits — so it never blocks the agent.
This is the log half of the verification loop; pair it with rn-device-capture (the screen) to confirm a change behaved at runtime.
It is read-only with respect to your source — it writes nothing, only prints.
When to Use
- "watch the logs", "tail the console", "did this
console.logfire?" - Verifying a fix by observing runtime behavior, without the DevTools GUI
adb logcatis unavailable (iOS) or too noisy
Prerequisites / Setup
- Metro running (
npm start/npx react-native start) onlocalhost:8081, with the app open on a simulator/device so a CDP target exists. - Node ≥ 22 (built-in
WebSocket). On older Node, installwsin the project; run the helper from the project root sowsresolves.
Quick Steps (read-only on source)
1 — Locate the helper
rn-console.mjs ships inside this skill's own directory, not in the user's project.
After install (marketplace plugin or a project .claude/skills/) the working directory is the user's RN app, where a path like skills/rn-metro-console/rn-console.mjs does not exist.
When this skill is active you are given its absolute base directory; resolve the helper from that path:
SKILL_DIR="<this skill's base directory>" # the absolute path provided when this skill loaded
2 — Capture (bounded)
Run from the user's project root (so a ws fallback resolves), invoking the helper by its installed path:
node "$SKILL_DIR/rn-console.mjs" # collect ~10s, all levels
node "$SKILL_DIR/rn-console.mjs" --duration 5 # collect 5s then exit
node "$SKILL_DIR/rn-console.mjs" --max 30 # stop after 30 logs
node "$SKILL_DIR/rn-console.mjs" --level error # errors only
node "$SKILL_DIR/rn-console.mjs" --filter "Login" # substring filter
node "$SKILL_DIR/rn-console.mjs" --device "com.example.app" --preflight # print the selected target as JSON
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago Changed · +4 lines 9ae2152847f5
- 10d ago First seen · 113 lines · 72 tokens per session scan A d7b742e9dbbd
rn-metro-console is a skill published in the GitHub repository AndrewDongminYoo/rn-agents-kit (2 stars, last pushed 6d ago), licensed Apache-2.0. It adds 72 tokens to every session and 1,618 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
argent-metro-debugger
Debug a JS runtime via CDP using argent debugger tools. Primary path is React Native via Metro (iOS / Android / Vega); a subset of the tools (debugger-connect, debugger-status, debugger-evaluate, debugger-log-registry) also drive a Chromium (CDP) app's renderer (an Electron app, or any Chromium browser exposing CDP)…
argent-react-native-optimization
Optimizes a React Native app by profiling first to find real bottlenecks, then sweeping for mechanical issues. Entry-point for all performance work. Use when the app feels slow, user asks to optimize, fix re-renders, reduce jank, or improve startup. Delegates to argent-react-native-profiler for measurement.
audit-ppmplugin
Statically audit a built .ppmplugin before wrap testing. Checks archive layout, manifest compatibility, bundle consistency, Android DEX integrity and SDK leakage, iOS framework structure, native source-to-receiver alignment, and the PCF composite-key/sendAsync transport contract. Reports CRITICAL, WARNING, and INFO…
generate-ppmplugin-manifest
Validate, reconcile to the chosen target(s), and stage the manifest.json for a .ppmplugin bundle. In the normal flow the committed ./manifest.json already exists (authored by /generate-native-extension), so this stage reads it, runs the plugin's upload-compatibility checks locally as a pre-flight gate (name regex…
argent-native-profiler
Native profiling for CPU hotspots, UI hangs, memory issues. iOS via xctrace; Android via Perfetto. Use when diagnosing native-level performance issues.
rozenite
Use Rozenite for Agents to inspect React Native DevTools data and Rozenite plugins on a live app target, either through shell-driven rozenite agent commands or programmatic @rozenite/agent-sdk usage. Trigger this skill for any task that needs live app inspection, debugging, or plugin interaction through Rozenite.