Gmail and Outlook — send, draft, reply, and read.
View primitiveLet agents send email, SMS, and messages.
Email, SMS, Slack, WhatsApp, and 1,000+ apps through one OAuth — send, reply, and read across every channel.
- @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.
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 docsTeam Chat
Post to Slack, Discord, and Microsoft Teams.
Read docsMessaging
Reach users on WhatsApp and Telegram.
Read docsPhone & SMS
Provision a real US number — send & receive SMS natively.
Read docsConnections
One hosted OAuth, every Composio toolkit, per user.
View primitiveConnect 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.
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.
# 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 alicePhone & 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.
# 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!"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.
# 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":"..."}'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.
# 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"}'Messaging — WhatsApp & Telegram
Reach users on WhatsApp with text, templates, media, and interactive buttons, and on Telegram — same per-user connection, same execute call.
# 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!"}'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.
# 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!"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.
# 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 alicePut every inbox, number, and channel in your agents.
Email, SMS, team chat, and messaging through one identity-aware API — every channel scoped per user.