
Rozenite Agent
- 430 installs
- 641 repo stars
- Updated August 4, 2026
- callstackincubator/rozenite
rozenite-agent is a Claude Code skill that configures Rozenite agent workflows to inspect, debug, and automate React Native development tasks for developers building AI-assisted mobile applications with Callstack tooling
About
rozenite-agent is a Mobile Development skill from callstackincubator/rozenite that wires Rozenite agent workflows into Claude Code for React Native projects. The skill guides developers through AI-assisted inspection, debugging, and automation of mobile dev tasks using Callstack's Rozenite devtooling layer on top of React Native runtimes. Developers reach for rozenite-agent when they want agent-driven navigation of native modules, component trees, Metro bundler issues, and mobile-specific debugging loops without leaving their coding agent session. The skill targets React Native engineers who already use or evaluate Rozenite as a bridge between mobile devtools and LLM-assisted workflows.
- React Native focus
- Rozenite devtools bridge
- agent-driven debugging
- mobile workflow automation
- Callstack integration
Rozenite Agent by the numbers
- 430 all-time installs (skills.sh)
- Ranked #1,916 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/callstackincubator/rozenite --skill rozenite-agentAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 430 |
|---|---|
| repo stars | ★ 641 |
| Last updated | August 4, 2026 |
| Repository | callstackincubator/rozenite ↗ |
How do you automate React Native debugging with AI agents?
Use Rozenite agent workflows to inspect, debug, and automate React Native development tasks with AI-assisted mobile devtooling from Callstack.
Who is it for?
React Native developers using Callstack Rozenite who want AI agents to inspect, debug, and automate mobile development tasks.
Skip if: Web-only frontend teams or native iOS/Android projects that do not use React Native or Rozenite.
When should I use this skill?
A React Native project needs AI-assisted inspection, Metro debugging, or Rozenite devtooling automation inside an agent session.
What you get
Configured Rozenite agent workflows, React Native debug sessions, and automated mobile inspection routines.
- Rozenite agent workflow config
- mobile debug automation routines
Files
CLI
- Use
npx rozenitefor Rozenite commands. - Run
npx rozenitefrom the app root where Metro is started for the target app. In monorepos, this is usually the app package root, not the repository root.
Handoff
- Keep this skill for shell-driven
rozenite agent ...workflows. - If the user wants code instead of shell commands, or asks for a Node.js or TypeScript script, wrapper, benchmark, automation, or agent runtime built on top of Rozenite, switch to
rozenite-agent-sdk.
Rules
- Agent work is session-scoped. Reuse one session across related commands.
- Always run Rozenite commands in serial. Never issue Rozenite agent commands in parallel.
- Start with
npx rozenite agent session create. It creates or reuses the device session and returns when ready. Stop the session when done withnpx rozenite agent session stop <sessionId>. - If
session createfails because multiple devices are connected, runnpx rozenite agent targets, choose the rightid, then retry with--deviceId <id>. - Treat
npx rozenite agent targetsas the source of truth for available targets. If the expected target is missing, ask the user to run the app on a device. - Pass
--session <id>on every domain command. - Treat the Rozenite session ID as a public runtime identifier, not a secret, credential, or token.
- Use this skill and its
domains/*.mdreferences as the source of truth for workflow, tool choice, and tool arguments. - If this skill or a domain reference already identifies the expected domain, try it directly. If a reference already lists the exact tool and arguments you need, call it directly.
- Discover domains from the live session with
npx rozenite agent domains --session <id>only if a domain call fails, the expected domain is unclear, or you need to confirm what is currently registered. - Do not call
npx rozenite agent <domain> toolsor fetch tool schema when this skill or its references already provide the needed tool name and arguments. - Check
npx rozenite agent <domain> tools --session <id>ornpx rozenite agent <domain> schema --tool <name> --session <id>only when no matching reference exists, the references do not answer the question, a call fails, or the live domain exposes behavior that differs from the references. - Skip confirmation or discovery steps that do not add new information.
- For live app inspection, Rozenite session data is the source of truth. Use the relevant live domain before exploring source code.
- Trust that Rozenite is correctly installed. Do not explore the codebase for setup unless the Rozenite CLI fails.
- Do not explore the codebase to infer live runtime state when Rozenite can answer directly.
- Explore source code only when the user asks about implementation or setup, when no relevant domain is available, or when Rozenite shows the required plugin or domain is not registered and the task becomes setup or debugging.
- If the expected plugin domain is missing from the live session, tell the user that the corresponding plugin must be installed and registered in the app.
- When referring to plugin domains in user-facing output, use the plugin's
pluginIdinstead of the normalized slug. - When making Rozenite calls against a discovered plugin domain, use the live domain token returned by Rozenite.
- Built-in domains are
console,network,react,performance, andmemory. - Additional domains can appear at runtime from the app or installed plugins.
Calls
- Do not pass domain tool names as direct CLI subcommands.
- Always invoke domain tools with
npx rozenite agent <domain> call --tool <toolName> --args '<json>' --session <id>. - If a domain reference lists only tool names, treat them as tool names, not CLI actions.
- Example:
npx rozenite agent at-rozenite__mmkv-plugin call --tool list-storages --args '{}' --session <id>. - If a command fails with
Unknown domain action, check the CLI syntax and retry withcall --tool <toolName> --session <id>.
Flow
1. Run Rozenite commands one at a time. 2. Use npx rozenite agent targets as the source of truth for available targets when device selection matters. If the expected target is missing, ask the user to run the app on a device. 3. Run npx rozenite agent session create. 4. If a matching file exists under domains/*.md, read it. 5. If the reference already lists the needed tool and arguments for the expected domain, call it directly. 6. Run npx rozenite agent domains --session <id> only if the call fails, the expected domain is unclear, or you need to confirm what is currently registered. 7. If the expected plugin domain is missing, tell the user to install and register the corresponding plugin in the app. 8. Check npx rozenite agent <domain> tools --session <id> or npx rozenite agent <domain> schema --tool <name> --session <id> only if the reference is insufficient, the call fails, or you need to confirm a live mismatch. 9. Fall back to source-code exploration only if no relevant domain exists or the task is about implementation or setup. 10. When no further Rozenite calls are needed, stop the session with npx rozenite agent session stop <sessionId>.
Read, filter, and paginate React Native console messages from the app, and clear the log buffer when needed.
Tools
clearMessages->{}getMessages->{}|{"cursor":"<cursor>"}|{"limit":50}|{"levels":["error"]}|{"text":"warning"}
Flow
Logs are captured automatically. Use getMessages -> optional filtered and paginated reads -> clearMessages.
Controls Plugin Domain
A Rozenite plugin for exposing app-defined controls in React Native DevTools. You get a custom control panel: read runtime values, flip toggles, switch options, submit text input, and trigger actions (e.g. reset, refetch) without building extra debug screens. Use this domain to list sections and items, read values, and mutate them via set-value or press-button.
Domain
- Plugin ID:
@rozenite/controls-plugin - Domain token:
at-rozenite__controls-plugin
Tools
list-sections->{}get-item->{"sectionId":"<id>","itemId":"<id>"}set-value->{"sectionId":"<id>","itemId":"<id>","value":true}|{"sectionId":"<id>","itemId":"<id>","value":"option-a"}press-button->{"sectionId":"<id>","itemId":"<id>"}
Item Types
text— read-only display value;set-valuewill throwtoggle— boolean value;set-valuerequiresbooleanselect— string value from a fixedoptionslist;set-valuevalidates against valid optionsinput— free-form string value;set-valuerequiresstringbutton— no value; usepress-buttonto trigger
Minimal Flow
list-sections -> get-item (to read current value) -> set-value or press-button.
Mutation: set-value / press-button.
Disabled items will throw on mutation attempts.
File System Plugin Domain
A Rozenite plugin for browsing app files and previewing file contents in React Native DevTools. It provides read-only filesystem inspection through either Expo FileSystem or an RNFS-compatible provider. Use it to discover roots, inspect directories, and preview files without mutating app data.
Domain
- Plugin ID:
@rozenite/file-system-plugin - Domain token:
at-rozenite__file-system-plugin
Tools
list-roots->{}list-entries->{"path":"<directoryPath>"}|{"path":"<directoryPath>","offset":0,"limit":100}read-entry->{"path":"<fileOrDirectoryPath>"}read-text-file->{"path":"<filePath>"}|{"path":"<filePath>","maxBytes":1000000}read-image-file->{"path":"<imagePath>"}|{"path":"<imagePath>","maxBytes":1000000}
Minimal Flow
list-roots -> list-entries -> read-entry -> read-text-file / read-image-file.
Use list-roots first to learn which root directories are available on the connected device.
Capture one-off heap snapshots or run allocation sampling over a reproduction. Metro writes artifacts under .rozenite/agent/sessions/<deviceId>/memory and .rozenite/agent/sessions/<deviceId>/profiles for offline analysis.
Tools
takeHeapSnapshot->{}|{"nameHint":"before-login"}startSampling->{}stopSampling->{}|{"nameHint":"home-screen"}
Flow
takeHeapSnapshot for one-shot heap capture.
Sampling: startSampling -> reproduce issue -> stopSampling.
Returned artifact metadata includes the Metro-managed absolute and relative paths.
MMKV Plugin Domain
A Rozenite plugin for MMKV storage inspection in React Native DevTools. It provides real-time inspection of MMKV instances, data visualization with type detection (string, number, boolean, buffer), and management: list storages and entries, read/create/edit/remove entries. Use it when the app uses react-native-mmkv and exposes instances via useMMKVDevTools.
Domain
- Plugin ID:
@rozenite/mmkv-plugin - Domain token:
at-rozenite__mmkv-plugin
Tools
list-storages->{}list-entries->{}|{"storageId":"<storageId>"}|{"storageId":"<storageId>","offset":0,"limit":100}read-entry->{"key":"<key>"}|{"storageId":"<storageId>","key":"<key>"}create-entry->{"key":"<key>","type":"string","value":"<value>"}|{"storageId":"<storageId>","key":"<key>","type":"number","value":1}edit-entry->{"key":"<key>","type":"string","value":"<value>"}|{"storageId":"<storageId>","key":"<key>","type":"boolean","value":true}remove-entry->{"key":"<key>"}|{"storageId":"<storageId>","key":"<key>"}
Minimal Flow
list-storages -> list-entries -> read-entry.
Mutation: create-entry / edit-entry / remove-entry.
If multiple storages exist, include storageId.
Network Activity Plugin Domain
A Rozenite plugin for fallback network inspection when the built-in network domain is unavailable, such as on older React Native versions. It mirrors the built-in network API for HTTP request recording and inspection, and adds plugin-specific tools for WebSocket and SSE traffic.
Domain
- Plugin ID:
@rozenite/network-activity-plugin - Domain token:
at-rozenite__network-activity-plugin
Precedence
- Prefer the built-in
networkdomain first. - If
networkis missing fromrozenite agent domains --session <sessionId>, or it fails to initialize/use for the current app, fall back to this plugin domain.
HTTP Parity Tools
startRecording->{}stopRecording->{}getRecordingStatus->{}listRequests->{}|{"cursor":"<cursor>"}|{"limit":50}getRequestDetails->{"requestId":"<requestId>"}getRequestBody->{"requestId":"<requestId>"}getResponseBody->{"requestId":"<requestId>"}
Realtime Extras
listRealtimeConnections->{}|{"cursor":"<cursor>"}|{"limit":50}getRealtimeConnectionDetails->{"requestId":"<requestId>"}
listRequests and getRequestDetails stay HTTP-focused for fallback compatibility. Use the realtime tools only when you need WebSocket or SSE traffic.
Minimal Flow
HTTP fallback: startRecording -> reproduce traffic -> listRequests -> getRequestDetails -> optional body fetch.
Realtime: startRecording -> reproduce traffic -> listRealtimeConnections -> getRealtimeConnectionDetails.
Record HTTP/HTTPS traffic, then list requests, inspect request and response details and bodies, and analyze timing, similar to the browser DevTools Network panel.
Precedence
- Prefer this built-in
networkdomain when available. - If
networkis missing fromrozenite agent domains --session <sessionId>or fails to initialize or work for the current app, fall back to@rozenite/network-activity-plugin.
Tools
startRecording->{}stopRecording->{}getRecordingStatus->{}listRequests->{}|{"cursor":"<cursor>"}|{"limit":50}getRequestDetails->{"requestId":"<requestId>"}getRequestBody->{"requestId":"<requestId>"}getResponseBody->{"requestId":"<requestId>"}
Flow
startRecording -> reproduce traffic -> listRequests -> getRequestDetails -> optional body fetch.
Start a performance trace on the session target, reproduce the issue while recording, then stop and export the trace to a Metro-managed artifact under .rozenite/agent/sessions/<deviceId>/traces. Calls return only artifact metadata.
Tools
startTrace->{}|{"categories":["<category>",...]}|{"options":"<string>"}stopTrace->{}|{"nameHint":"startup-regression"}
Flow
startTrace -> reproduce issue while recording -> stopTrace. Metro writes the trace; the call returns only artifact metadata.
React Navigation Plugin Domain
A Rozenite plugin for React Navigation debugging and inspection in React Native DevTools. It provides real-time navigation state monitoring, action timeline inspection, and deep-link testing (React Navigation v7). Use this domain to read focused route and root state, navigate by route name, go back, open deep links, or dispatch low-level actions when needed.
Domain
- Plugin ID:
@rozenite/react-navigation-plugin - Domain token:
at-rozenite__react-navigation-plugin
Tools
get-root-state->{}get-focused-route->{}list-actions->{}|{"offset":0,"limit":100}navigate->{"name":"<routeName>"}|{"name":"<routeName>","params":{"id":1}}go-back->{}|{"count":2}open-link->{"href":"myapp://route"}dispatch-action->{"action":{"type":"NAVIGATE","payload":{"name":"Home"}}}reset-root->{"state":{...}}
Minimal Flow
get-focused-route or get-root-state -> optional list-actions -> navigate / go-back.
Fallback: dispatch-action or reset-root only when high-level navigation calls are not enough.
Search and traverse the React component tree, read props, state, and hooks for any node, and record render timelines for performance analysis by starting and stopping profiling, then fetching commit data.
Tools
searchNodes->{"query":"<query>"}|{"query":"<query>","cursor":"<cursor>"}|{"query":"<query>","limit":20}getTree->{}|{"depth":2}|{"root":123}|{"cursor":"<cursor>"}getComponent->{"id":123}|{"nodeId":123}|{"id":123,"include":["props"]}getNode->{"nodeId":123}getChildren->{"nodeId":123}|{"nodeId":123,"cursor":"<cursor>"}|{"nodeId":123,"limit":20}getProps->{"nodeId":123}|{"nodeId":123,"cursor":"<cursor>"}|{"nodeId":123,"limit":20}getState->{"nodeId":123}|{"nodeId":123,"cursor":"<cursor>"}|{"nodeId":123,"limit":20}getHooks->{"nodeId":123}|{"nodeId":123,"path":[0,"subHooks",1]}|{"nodeId":123,"limit":20}startProfiling->{}|{"shouldRestart":true}isProfilingStarted->{}stopProfiling->{}|{"waitForDataMs":3000}|{"slowRenderThresholdMs":16}getRenderData->{"rootId":1,"commitIndex":0}|{"rootId":1,"commitIndex":0,"cursor":"<cursor>"}|{"rootId":1,"commitIndex":0,"limit":20}
Flow
Search and inspect: getTree / searchNodes -> getComponent / getNode / getChildren -> getProps / getState / getHooks.
Profile: startProfiling -> reproduce interaction -> stopProfiling -> getRenderData.
Redux DevTools Plugin Domain
A Rozenite plugin for Redux state inspection and curated history control in React Native DevTools. It exposes store discovery, current state reads, action-history inspection, normal Redux action dispatch, and safe Redux DevTools history operations such as jump, toggle, reset, rollback, commit, sweep, pause, and lock.
Domain
- Plugin ID:
@rozenite/redux-devtools-plugin - Domain token:
at-rozenite__redux-devtools-plugin
Tools
list-stores->{}get-store-state->{}|{"instanceId":"<instanceId>"}list-actions->{}|{"instanceId":"<instanceId>"}|{"instanceId":"<instanceId>","offset":0,"limit":50}get-action-details->{"actionId":2}|{"instanceId":"<instanceId>","actionId":2}dispatch-action->{"action":{"type":"counter/increment"}}|{"instanceId":"<instanceId>","action":{"type":"todos/add","payload":{"text":"Buy milk"}}}jump-to-action->{"actionId":2}|{"instanceId":"<instanceId>","actionId":2}toggle-action->{"actionId":2}|{"instanceId":"<instanceId>","actionId":2}reset-history->{}|{"instanceId":"<instanceId>"}rollback-state->{}|{"instanceId":"<instanceId>"}commit-current-state->{}|{"instanceId":"<instanceId>"}sweep-skipped-actions->{}|{"instanceId":"<instanceId>"}set-recording-paused->{"paused":true}|{"instanceId":"<instanceId>","paused":false}set-locked->{"locked":true}|{"instanceId":"<instanceId>","locked":false}
Minimal Flow
Read: list-stores -> get-store-state or list-actions -> get-action-details.
Mutation: dispatch-action for normal Redux updates.
History control: jump-to-action, toggle-action, reset-history, rollback-state, commit-current-state, sweep-skipped-actions, set-recording-paused, set-locked.
If multiple stores exist, include instanceId.
Storage Plugin Domain
A Rozenite plugin for inspecting multiple storage backends in React Native DevTools. It provides a single inspector for sync and async storages, including MMKV, AsyncStorage, and Expo SecureStore via adapters. Use it for storage inspection and entry mutation across supported adapters.
Domain
- Plugin ID:
@rozenite/storage-plugin - Domain token:
at-rozenite__storage-plugin
Tools
list-storages->{}list-entries->{"adapterId":"<adapterId>","storageId":"<storageId>"}|{"adapterId":"<adapterId>","storageId":"<storageId>","offset":0,"limit":100}read-entry->{"adapterId":"<adapterId>","storageId":"<storageId>","key":"<key>"}create-entry->{"adapterId":"<adapterId>","storageId":"<storageId>","key":"<key>","type":"string","value":"<value>"}edit-entry->{"adapterId":"<adapterId>","storageId":"<storageId>","key":"<key>","type":"boolean","value":true}remove-entry->{"adapterId":"<adapterId>","storageId":"<storageId>","key":"<key>"}
Minimal Flow
Read: list-storages -> list-entries -> read-entry.
Mutation: create-entry / edit-entry / remove-entry.
Use list-storages first to learn valid adapterId, storageId, and supported value types.
TanStack Query Plugin Domain
A Rozenite plugin for inspecting and managing TanStack Query caches in React Native DevTools. Use it to inspect query and mutation state, paginate large caches, refetch or invalidate specific queries, and clear caches when needed.
Domain
- Plugin ID:
@rozenite/tanstack-query-plugin - Domain token:
at-rozenite__tanstack-query-plugin
Tools
get-cache-summary->{}get-online-status->{}set-online-status->{"online":false}list-queries->{}|{"limit":20}|{"limit":20,"cursor":"<cursor>"}get-query-details->{"queryHash":"<queryHash>"}refetch-query->{"queryHash":"<queryHash>"}set-query-loading->{"queryHash":"<queryHash>","enabled":true}set-query-error->{"queryHash":"<queryHash>","enabled":true}invalidate-query->{"queryHash":"<queryHash>"}reset-query->{"queryHash":"<queryHash>"}remove-query->{"queryHash":"<queryHash>"}clear-query-cache->{}list-mutations->{}|{"limit":20}|{"limit":20,"cursor":"<cursor>"}get-mutation-details->{"mutationId":12}clear-mutation-cache->{}
Minimal Flow
Inspection: get-cache-summary or get-online-status -> list-queries / list-mutations -> get-query-details / get-mutation-details.
Query management: refetch-query, set-query-loading, set-query-error, invalidate-query, reset-query, remove-query, set-online-status.
Cache cleanup: clear-query-cache or clear-mutation-cache only when broad cache deletion is intended.
Related skills
FAQ
What is rozenite-agent used for?
rozenite-agent configures Rozenite agent workflows so Claude Code can inspect, debug, and automate React Native development tasks. The skill bridges Callstack mobile devtooling with AI-assisted coding sessions for component and runtime debugging.
Does rozenite-agent require React Native?
rozenite-agent targets React Native projects using Callstack Rozenite devtooling. Web-only or pure native iOS/Android stacks without React Native should use platform-specific debugging skills instead.