
argent-tv-interact
Control and inspect TV apps via argent, Apple TV (tvOS), Android TV (leanback), and Amazon Fire TV (Vega). Boot the target, read focus, navigate with the D-pad remote, type, screenshot, and on Vega debug the JS runtime (evaluate, console logs, network inspector). Use when a task targets a TV (runtimeKind "tv", or platform "vega"), or mentions Apple TV / tvOS / Android TV / leanback / Vega / Fire TV / VVD.
- Installs
- 21.2K
- Last 24h
- +294
- Trending rank
- #980
- Security
- Pass
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/software-mansion/argent --skill argent-tv-interact- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads argent-tv-interact automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
Security audits
Independent scans of the skill's instructions and bundled files.
SKILL.md
The instructions your agent reads when the skill is triggered.
Argent TV (Apple TV + Android TV + Fire TV)
Critical
- A TV is focus-driven, not touch-driven. Drive every interaction with
describe+tv-remote+keyboard; never usegesture-*/ coordinate taps; they don't apply on any TV platform. - Always
describebefore navigating to find the live cursor and your target; never guess focus from a screenshot. The cursor is the focused element; on Vega the toolkit often leavesfocusedfalse and marks the highlighted item[selected], so treat[selected]as the cursor when nothing reports[focused]. - Pass the
udidfromlist-devices: an Apple TV simulator UDID or an Android TV / Vegaserial. Dispatch is automatic from the id; the same tools drive all three.
The navigation loop
describe: find the cursor and your target (returns the focused element + all focusable ones, not a tap tree).tv-remote: move focus toward the target. Prefer one call with a path ending inselect, e.g.{button:["down","right","select"]}; count rows/columns from the frames to build the path.describeagain to confirm. On a miss, repeat.
Tools
describe {udid}: focus view: the focused /[selected]element + focusable elements with labels and normalized frames. Call before and after navigating. Empty tree → see the per-platform notes.tv-remote {udid, button}: D-pad / remote.buttonis one key or a whole path (run in one call). Keys:up/down/left/right,select,back,menu,home,playPause, plus media keysrewind/fastForward/next/previous/volumeUp/volumeDown/mute. Single:{button:"down"}; repeat:{button:"down", repeat:3}; path:{button:["up","right","select"]}.keyboard {udid, text}: type into the focused field (focus it withtv-remotefirst). One call carriestextorkey, never both; to type and then press a key, send twokeyboardsteps in onerun-sequence. Namedkeypresses (e.g.{key:"enter"}) work on Vega; on Apple TV / Android TV move focus withtv-remoteinstead.launch-app/restart-app/reinstall-app {udid, bundleId}:bundleIdfrom the app manifest. Vegareinstall-apptakesappPath= a.vpkg.screenshot {udid, scale?}: Apple TV viaxcrun simctl io(downscaled); Android TV / Vega host-side viaadb/screencap.
Per-platform
Apple TV (tvOS simulator)
- Boot like any iOS sim (
boot-device); the AX + HID daemons auto-start on the firstdescribe/tv-remote(first call may take a few seconds). Give the RN bundle a few seconds to render before the firstdescribe. - Media-transport / volume keys are rejected: the sim's HID stack ignores them (they work on Android TV / Vega).
- Dev build:
open-url {udid, url:"<scheme>://expo-development-client/?url=http%3A%2F%2F<HOST_IP>%3A8081"}(<HOST_IP>= your Mac's LAN IP, shown on the launcher).
Android TV (leanback emulator)
- Boot the leanback AVD like any emulator; see
argent-android-emulator-setup. describemay report zero focusables on a screen with visible tiles: manyreact-native-tvosscreens use RN's own focus engine, invisible to the OS accessibility tree.describeauto-falls-back to the full UI tree (and says so in the hint);tv-remotestill moves focus, so drive blind +screenshotto confirm.- Dev build:
adb -s <serial> reverse tcp:8081 tcp:8081, deep-link<pkg>://expo-development-client/?url=http%3A%2F%2F10.0.2.2%3A8081, dismiss the first dev-menu withadb shell input keyevent KEYCODE_DPAD_CENTER(not Back: Back exits the app).
Fire TV (Vega / VVD)
list-devicesshows aserial(use asudid) and avvdImage.boot-device {vvdImage}(e.g."tv") starts the single SDK-managed VVD; skip if one already runs.- Stop the VVD with
vega virtual-device stopin your shell. The CLI only tracks VVDs it started in the foreground, so it may report "not running" for one started viaboot-device; to restart that one useboot-device {vvdImage, force:true}(stops then re-boots). - Empty
describetree →restart-app(the automation toolkit attaches at launch), then retry. Input ignored → enable developer mode in the VVD:vsm developer-mode enable. - Editing
node_moduleshas no effect on a Release build; only Debug.vpkgbuilds load patchable JS. - Profiling / crashes →
amazon-devices-buildertools-mcpserver (analyze_perfetto_traces,get_app_hot_functions,symbolicate_acr); docs via itssearch_documentationtool.
Common gotchas
- Empty focus right after
launch-app/restart-appis the splash / loading window;describeretries internally; wait ~2-3s and retry on a cold start. - Passing a phone/tablet (
runtimeKind: "mobile") udid totv-remotefails with a clear "tvOS-only" / "Android-TV-only" error; pick a TV target fromlist-devices.
Fast Refresh (dev builds)
Needs a Debug build + Metro running. argent only connects to Metro; start Metro and port-forward yourself (any platform). Metro is fixed on :8081.
- Apple TV / Android TV: use the dev-build deep-links above;
npm startfor Metro. - Vega: build/install a Debug
.vpkg(vega device install-app -p <path>),npm start,vega device start-port-forwarding --port 8081 --forward false, thenvega device launch-app -a <appId>. Confirmhttp://localhost:8081/json/listshows aHermes React Nativetarget;.tsxedits then hot-reload.
Debugging the JS runtime (Vega)
Once that same Debug build + Metro setup is in place, the JS-runtime tools work on a Vega VVD: debugger-connect, debugger-status, debugger-evaluate, debugger-log-registry (console logs), view-network-logs, and view-network-request-details. Verify with debugger-status: it returns a status result rather than an error when not connected: status: "connected" means the setup works; status: "not_connected" carries a reason and guidance (e.g. metro_not_running → Metro itself is not up). Vega-specific: on no_app_connected, check vega device start-port-forwarding before relaunching the app: a down device→host forward is the usual cause, and the generic guidance can't know about it. See the argent-metro-debugger skill.
Vega's React Native forks RN 0.72 and serves the legacy Hermes inspector, so three things differ from iOS / Android:
debugger-component-tree,debugger-inspect-element,debugger-reload-metroand thereact-profiler-*/profiler-*tools are not supported. Component-tree and inspect-element are hard-blocked: they needRuntime.addBinding, which this Hermes acknowledges but never installs. The rest are simply unverified on the legacy inspector. Usedescribefor on-screen structure; with both component tools gated off, componentfile:linetracing has no path on Vega.debugger-statusreportsisNewDebugger: false.projectRootis empty (RN 0.72's Metro sends no project-root header), so lookups that resolve paths against the project root return no location.
FAQ
What does the argent-tv-interact skill do?
Control and inspect TV apps via argent, Apple TV (tvOS), Android TV (leanback), and Amazon Fire TV (Vega). Boot the target, read focus, navigate with the D-pad remote, type, screenshot, and on Vega debug the JS runtime (evaluate, console logs, network inspector). Use when a task targets a TV (runtimeKind "tv", or platform "vega"), or mentions Apple TV / tvOS / Android TV / leanback / Vega / Fire TV / VVD.
How do I install argent-tv-interact?
Run npx skills add https://github.com/software-mansion/argent --skill argent-tv-interact in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/argent-tv-interact/ (personal) or .claude/skills/argent-tv-interact/ (project).
Which AI agents can use argent-tv-interact?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is argent-tv-interact safe to install?
Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk passed. As with any skill, read the SKILL.md and bundled scripts before installing.
Who maintains argent-tv-interact?
It is published by software-mansion in software-mansion/argent. It has 21,232 recorded installs.
More from software-mansion/argent
argent-android-emulator-setup
software-mansion/argent
Set up and connect to an Android emulator using argent MCP tools. Use when starting a new session on Android, booting an emulator, getting a device serial, or before any UI interaction task.
argent-react-native-optimization
software-mansion/argent
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.
argent-ios-simulator-setup
software-mansion/argent
Set up and connect to an iOS simulator using argent MCP tools. Use when starting a new session, booting an iOS simulator, getting an iOS UDID, or before any iOS simulator interaction task.
argent-react-native-app-workflow
software-mansion/argent
Step-by-step workflows for developing or debugging React Native apps on iOS simulator or Android emulator. Use when starting the app, debugging Metro, fixing builds, diagnosing runtime errors, or running tests.
argent-device-interact
software-mansion/argent
Interact with an iOS simulator, Android emulator, or Chromium (CDP) app using argent MCP tools. Use when tapping UI elements, performing gestures, scrolling/swiping, typing text, pressing hardware buttons, launching apps, opening URLs, taking screenshots, waiting for an element to appear or disappear, or checking visible app state after interactions. Not for TV targets.
argent-react-native-profiler
software-mansion/argent
Profile a React Native Hermes app to measure re-render and CPU performance using argent profiler tools. Use when optimizing for performance, measuring before/after a fix, spotting slow components, diagnosing re-renders, checking CPU hotspots, or producing a ranked issue report.
Popular mobile skills
design-mobile-apps
designed-by-ai/skills
Design mobile app screens with Sleek, edit Sleek projects, and implement their designs in React Native or HTML.
ios-design
uizze.sh
Design and review iOS UI/UX for iPhone apps in SwiftUI, UIKit, or React Native. Use for mobile app design, screen redesigns, navigation flows, typography, forms, keyboard and safe-area layout, and accessibility checks. Apply Apple Human Interface Guidelines and consult real product references through the optional Uizze connection.
vercel-react-native-skills
vercel-labs/agent-skills
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
animate-expo
emilkowalski/skills
Build animations in React Native and Expo, making the decisions in the order that determines whether they feel right — should it animate, which thread it runs on, which properties, spring or timing, how the gesture hands off, how it degrades. Writes the implementation with Reanimated, Gesture Handler, Expo Router and expo-haptics. Use when animating anything in an Expo app, adding gestures, sheets, screen transitions, press feedback or haptics, or fixing motion that stutters on device. For web animation use animate.
xcode-project-setup
firebase/agent-skills
Safely modifies Xcode projects (.pbxproj) to add Swift Packages and link files. Use this skill whenever an iOS project needs dependencies installed (e.g. Firebase, Alamofire).
firebase-remote-config-basics
firebase/agent-skills
Manages Firebase Remote Config templates, feature flags, loading strategies, and SDKs (Android, iOS). Use when downloading/deploying remoteconfig JSON templates, managing version history/feature flags, setting in-app defaults, fetchAndActivate(), real-time listeners, or SDK setup. Don't use for Firebase Hosting, Auth, Firestore, Data Connect, Crashlytics, or App Hosting.