Let agents send email, SMS, and messages.

Email, SMS, Slack, WhatsApp, and 1,000+ apps through one OAuth — send, reply, and read across every channel.

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 Messaging for you.

Agent prompt

Read https://usenaive.ai/skill.md and set up Naïve for Messaging in my project.

Every channel behind one API.

Naïve wraps the Composio catalog as the Connections primitive — connect a toolkit once per user, then call any tool with a single bearer token — and gives each agent its own carrier-registered phone number for native SMS.

Phone & SMS

Provision a US number, send and receive SMS.

Read docs

Team Chat

Post to Slack, Discord, and Microsoft Teams.

Read docs

Phone & SMS

Provision a real US number — send & receive SMS natively.

Read docs

Connect once. Message anywhere.

The Connections primitive returns a hosted OAuth link; after the user authorizes, execute any toolkit's tool — Gmail, Slack, WhatsApp, and more — scoped to that user.

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 connected --user alice
POST /v1/phone/provision

Phone & SMS

Provision a real US number with carrier (10DLC) registration handled at provisioning, then send and receive SMS. Inbound works immediately; outbound unlocks when the campaign is approved.

US Numbers
Local or toll-free, per user.
Send & Receive
Outbound SMS + an inbound inbox.
10DLC Built In
Carrier registration at provisioning.
Agent-Scoped
Assign numbers with permissions.
# Provision a US number (registers the 10DLC campaign)
$ naive phone provision --user alice \
    --ein 12-3456789 --area-code 415

# Send an SMS once the campaign is approved
$ naive phone send --user alice \
    --from <phone_id> --to "+14155551234" \
    --body "Your order shipped!"
POST /v1/users/:id/connections/gmail/execute

Email — Gmail & Outlook

Once connected, send mail from the user's Gmail or Outlook, create drafts, and reply in-thread. Gmail exposes 60+ tools and Outlook 300+ — all behind the same execute call.

Gmail
Send and read — 60+ tools.
Outlook
Send and manage — 300+ tools.
Drafts & Threads
Create, reply, label.
Attachments
Files attached by URL.
# Send an email from the user's Gmail
$ naive connections execute gmail GMAIL_SEND_EMAIL --user alice \
    --args '{"recipient_email":"lead@co.com","subject":"Hi","body":"..."}'

# Or send via the user's Outlook
$ naive connections execute outlook OUTLOOK_SEND_EMAIL --user alice \
    --args '{"to_email":"lead@co.com","subject":"Hi","body":"..."}'
POST /v1/users/:id/connections/slack/execute

Team Chat — Slack, Discord & Teams

Post to Slack channels with Markdown or Block Kit and threaded replies, to Discord channels, and to Microsoft Teams — each through the same connection execute.

Slack
Markdown or Block Kit.
Discord
Post to any channel.
Microsoft Teams
Channel + chat tools.
Threads
Reply in-thread.
# Post a Slack message to a channel
$ naive connections execute slack SLACK_SEND_MESSAGE --user alice \
    --args '{"channel":"general","markdown_text":"Deploy is live :rocket:"}'

# Post to a Discord channel
$ naive connections execute discordbot DISCORDBOT_CREATE_MESSAGE --user alice \
    --args '{"channel_id":"C0ABC12345","content":"Deploy is live"}'
POST /v1/users/:id/connections/whatsapp/execute

Messaging — WhatsApp & Telegram

Reach users on WhatsApp with text, templates, media, and interactive buttons, and on Telegram — same per-user connection, same execute call.

WhatsApp
Reach any WhatsApp number.
Telegram
Message chats and channels.
Templates
Send outside the 24h window.
Media & Buttons
Rich, interactive messages.
# Send a WhatsApp message
$ naive connections execute whatsapp WHATSAPP_SEND_MESSAGE --user alice \
    --args '{"to_number":"14155551234","text":"Your order has shipped!"}'

# Send a Telegram message
$ naive connections execute telegram TELEGRAM_SEND_MESSAGE --user alice \
    --args '{"chat_id":"123456789","text":"Your order has shipped!"}'
POST /v1/users/:id/phone/:id/sms

Native Phone Numbers & SMS

Provision a real US phone number for an agent — Naïve handles the carrier (10DLC) registration — then send and receive SMS natively, no third-party OAuth. Provisioning requires the company EIN and is approval-gated; inbound texts arrive on your webhook.

Real US Number
Carrier-registered, agent-owned.
Send & Receive
Outbound + inbound SMS.
Per-User
Isolated via forUser(id).
Approval-Gated
Provisioning needs sign-off.
# Provision a number (requires your EIN) — approval-gated
$ naive phone provision --user alice --ein 88-1234567

# Send an SMS once the carrier campaign is approved
$ naive phone send <number-id> --user alice \
    --to 14155551234 --body "Your order has shipped!"
GET /v1/users/:id/connections/:toolkit/tools

Discover & Manage

List the tools any connected app exposes, check a user's active connections from the local mirror, browse the full company catalog with GET /v1/toolkits, and disconnect when you're done.

List Tools
Per-toolkit schemas.
Connection Status
Cheap mirror read.
Catalog Search
GET /v1/toolkits.
Disconnect
Optionally purge tokens.
# See which apps a user can use + connection status
$ naive connections list --user alice --search slack

# List the tools an app exposes
$ naive connections tools gmail --user alice

# Disconnect an app for the user
$ naive connections disconnect slack --user alice

Put every inbox, number, and channel in your agents.

Email, SMS, team chat, and messaging through one identity-aware API — every channel scoped per user.