
rozenite-agent
Use Rozenite for Agents through CLI-driven rozenite agent commands to inspect React Native DevTools data and Rozenite plugins on a live app target. Trigger this skill for shell-based debugging and live session work. For Node.js or TypeScript scripts, wrappers, automations, or other programmatic SDK usage, use rozenite-agent-sdk instead.
- Installs
- 471
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/callstackincubator/rozenite --skill rozenite-agent- 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 rozenite-agent automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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.
Listing output contract
agent domains, agent <domain> tools, and tools that declare the shared
pagination contract always write compact JSON by default. This includes
built-in and third-party plugin tools. Pass --pretty for indented JSON. The
--json / -j option is retained as a compatibility no-op and never changes
the output shape.
- With two or more rows, row-shaped results use the stable columnar contract:
{"cols":["id","kind"],"rows":[["console","static"],["react","static"]]}.colsis exactly the requested field order; an absent optional value is represented bynullin its row, since a positional array cell can't simply be omitted without shifting the columns after it. - With zero or one row, row-shaped results remain row-keyed:
{"items":[{"id":"console","kind":"static"}]}. Here an absent optional value is omitted from the object entirely (notnull), so these payloads never grow past their pre-columnar shape — the reason 0/1-row results stay row-keyed in the first place. - Tool listings default to
name,description,readOnly,destructive, andidempotent.nameis the globally qualified identifier to pass to a latercallorschemacommand. Traits are optional;nullin a columnar row or an omitted key in a row-keyed result means unknown, notfalse. - Terminal pages omit pagination metadata. When more rows exist,
nextis a shell-escaped, runnablenpx rozenite agent ...command that preserves the connection, session, projection, and limit options. CLI-owned domain and tool listings pass their cursor with--cursor; paginated tool calls pass the producer cursor inside--args. - A
--cursorfrom an earlier page can go stale if the underlying data was invalidated (for example, an app relaunch resets the network domain's capture buffer). Re-running a stale cursor returns{"page":{"reset":true},"items":[]}instead of a normal empty page — treat that as "restart this listing from scratch," not "no more rows."
Declared paginated calls include console messages, React
tree/search/inspection rows, render data, network request listings, and any
plugin tool registered with pagination metadata. Tool-specific metadata (for
example roots, totalCount, or recording) remains alongside the row shape.
Undeclared tool results, SDK responses, and genuinely non-row command results
retain their existing shapes.
- Paginated calls return a trimmed default projection, not every declared
field. For example,
console getMessagesomitsargsPreviewandcontextby default. Pass-f, --fields <csv>to pick specific columns, or-v, --verboseto include every field the tool declares.
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 domain token. - 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. Plugin domain tokens are short, derived names, not the npm package name:
@rozenite/mmkv-pluginbecomesmmkv,@avasapp/rozenite-plugin-ablybecomesavasapp/ably. - Domain token shape tells you provenance: a bare word (
mmkv) is a built-in or an official@rozenite/*plugin;scope/name(avasapp/ably) is a third-party scoped plugin; a verbatimrozenite-*name is a third-party unscoped plugin.evil/mmkvandmmkvare never the same plugin.
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>. - Continue a paginated domain tool call by passing its returned cursor inside
--args;--cursoris only for CLI-owned domain and tool listings. - If a domain reference lists only tool names, treat them as tool names, not CLI actions.
- Example:
npx rozenite agent mmkv 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
- Run Rozenite commands one at a time.
- Use
npx rozenite agent targetsas 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. - Run
npx rozenite agent session create. - If a matching file exists under
domains/*.md, read it. - If the reference already lists the needed tool and arguments for the expected domain, call it directly.
- 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. - If the expected plugin domain is missing, tell the user to install and register the corresponding plugin in the app.
- Check
npx rozenite agent <domain> tools --session <id>ornpx 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. - Fall back to source-code exploration only if no relevant domain exists or the task is about implementation or setup.
- When no further Rozenite calls are needed, stop the session with
npx rozenite agent session stop <sessionId>.
FAQ
What does the rozenite-agent skill do?
Use Rozenite for Agents through CLI-driven rozenite agent commands to inspect React Native DevTools data and Rozenite plugins on a live app target. Trigger this skill for shell-based debugging and live session work. For Node.js or TypeScript scripts, wrappers, automations, or other programmatic SDK usage, use rozenite-agent-sdk instead.
How do I install rozenite-agent?
Run npx skills add https://github.com/callstackincubator/rozenite --skill rozenite-agent 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/rozenite-agent/ (personal) or .claude/skills/rozenite-agent/ (project).
Which AI agents can use rozenite-agent?
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 rozenite-agent safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains rozenite-agent?
It is published by callstackincubator in callstackincubator/rozenite, and it is an official skill from the maker of the technology it covers. It has 471 recorded installs.
More from callstackincubator/rozenite
rozenite-agent-sdk
callstackincubator/rozenite
Use Rozenite for Agents through @rozenite/agent-sdk in Node.js or TypeScript code. Trigger this skill when Codex needs to write or run scripts, wrappers, automations, benchmarks, or agent runtimes that call Rozenite programmatically instead of driving the rozenite agent CLI directly.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.