We gave an AI agent hands.

Browser, mobile, and OAuth connections — the action layer that lets agents operate real software, not just APIs.

Inbox3 new
  • @support@acme.comRe: refund #492Email
  • #+1 (415) 555-0142Your code is 8841SMS
  • /#alertsSpend at 80% of capSlack

Paste and ship

Drop this into Cursor, Claude Code, or any agent. It reads the skill manifest and wires up Agent-Native Hands for you.

Agent prompt

Read https://usenaive.ai/skill.md and set up Naïve for Agent-Native Hands in my project.

Action primitives for real interfaces.

Agents can use websites, drive cloud phones, and connect to more than 1,000 authenticated apps through one governed layer.

Use the tools that do not have clean APIs.

When the web app, mobile app, or OAuth toolkit is the only interface, Agent Hands gives the agent a safe way to act.

Agent Browser

Browser

Give an agent a real browser session so it can sign itself up, log in, navigate web apps, and complete workflows beyond API coverage.

Signup flows
Use sites the way humans do.
Login
Authenticated web sessions.
Screenshots
Observe what the agent sees.
Guarded
Runs through policy and approvals.
# Run a browser task for an agent
$ naive browser run "Sign up for the vendor portal and save the confirmation"
POST /v1/mobile/devices

Devices

Provision hosted Android/iOS devices on Mobilerun, then reboot, reset, terminate, and get a live stream URL to display the screen. Each tenant only ever sees the devices it provisioned through Naïve.

Provision
Cloud Android & iOS devices.
Live Stream
Signed stream URL + token.
Lifecycle
reboot / reset / terminate.
Per-Tenant Isolation
Scoped to your users.
# Provision a device, wait for ready, then display it
$ naive mobile provision --type dedicated_premium_device --country US

$ naive mobile wait <id>
$ naive mobile stream <id>
POST /v1/users/:id/connections/connect

Connect a Channel

connect returns a hosted OAuth redirectUrl for any Composio toolkit — gmail, slack, whatsapp, and 1,000+ more. The user authorizes once; the connection is stored per user and gated by their Account Kit. Connecting is sensitive, so it's approval-gated by default.

Hosted OAuth
No per-app flow to build.
1,000+ Apps
The full Composio catalog.
Per-User
Isolated via forUser(id).
Kit-Gated
Allow/block per Account Kit.
# Connect Gmail for a user (returns a hosted OAuth link)
$ naive connections connect gmail --user alice

# Confirm the connection is active
$ naive connections list --connected --user alice

Let agents operate the software stack humans use.

Browser sessions, cloud phones, and app connections — all scoped through the same identity and policy boundary.