No insight into what’s happening under the hood
Who is delegating writing code to agents?
Who is delegating testing changes to agents?
Giving agents
hands and eyes
in React Native
Callstack / Szymon Chmal
Szymon Chmal
Incubator Lead at Callstack
OPEN SOURCE
The agent loses the app
as soon as it starts
Agents can change, build, and run. A developer still carries testing, debugging, and verification.
Code generation
skyrocketed
Verification
stays flat
Why are agents
stuck guessing?
No easy way to interact with simulators or physical devices
Rozenite opened
the first window
Agents gained structured access to the state inside a running React Native app.
rozenite.dev ↗
Agents reach Rozenite
through the shell
One session connects the agent to the running app. Plugin domains expose navigation and storage as tools.
npx rozenite agent session createnpx rozenite agent at-rozenite__react-navigation-plugin call \
--tool get-focused-route --args '{}' --session rz_7f2anpx rozenite agent at-rozenite__mmkv-plugin call \
--tool list-storages --args '{}' --session rz_7f2anpx rozenite agent at-rozenite__mmkv-plugin call \
--tool list-entries --args '{"storageId":"default"}' --session rz_7f2anpx rozenite agent at-rozenite__mmkv-plugin call \
--tool read-entry --args '{"storageId":"default","key":"premium_offer"}' --session rz_7f2aRozenite can expose the
meaning behind the state
/checkout/paymentpremium_offer: false200 OKexplain-premium-offer
{
"visible": false,
"eligible": false,
"reason": "already_subscribed"
}
Understand the rule.
Form a hypothesis.
Change the conditions.
The debugging surface can include the business rules that define what should happen.
Agents can reason about
React rendering
Rozenite
React insight alongside app state, network activity, and custom tools.
agent-react-devtools
Direct, CLI-first access to the React DevTools protocol.
Runtime evidence connects component behavior to the data and renders that produced it.
React evidence still does not prove
what appeared on screen
Complete your order
agent-device brings
the device into the loop
Agents can see, understand, and operate what is actually running on simulators or physical devices.
agent-device.dev ↗Complete your order
agent-device snapshot -i
agent-device tap @e3
Agents read both
structure and pixels
@e1 [heading] "Checkout" @e2 [text] "Annual plan · $99" @e3 [button] "Continue" @e4 [text] "Total today · $99.00"
Complete your order
The agent continues
the flow on its own
Cloud agents do not
come with iPhones
Lease the device
when the agent needs it
agent-device proxy --port 4310agent-device connect proxy
--daemon-base-url https://example.trycloudflare.com/agent-device
--daemon-auth-token $TOKEN
agent-device open Maps --platform ios --device "iPhone 17 Pro"agent-device closeagent-device disconnectThe agent works
through the proxy
Interaction and visual evidence flow through the agent-device proxy.
One agent can combine
every layer of evidence
Business meaning
Rozenite exposes app-defined rules, decisions, and safe controls.
React rendering
Rozenite and agent-react-devtools expose component behavior.
JavaScript runtime
CDP provides logs, execution context, and runtime diagnostics.
Device + pixels
agent-device adds the rendered interface, interaction, and proof.
"The premium offer disappears after restart."
- 01Reproduce the flow
- 02Inspect persisted state
- 03Check the network response
- 04Inspect the React component
- 05Change the condition
- 06Repeat and capture evidence
Evidence instead
of confidence
"The fix should work."
One exploration becomes
a repeatable check
The agent can work
through the running app
The agent carries the feedback loop. A developer sets direction and decides what ships.
What’s left for us, developers?
Developers own
the bigger picture
Turn product intent into clear, unambiguous requirements.
Keep the architecture aligned with those requirements.
Make the system maintainable and extensible as it evolves.
Judge the evidence, risk, and readiness to ship.
The agent operates the loop. The developer keeps the whole system coherent.