CALL.TEXT.EMAIL.

★ A UNIVERSAL COMMS PLATFORM FOR AI AGENTSEST. 2026OPEN SOURCE · MANAGED CLOUD
ONE-CLICK CONNECT
■ THE PROBLEM / TODAY

Your agent can think.
It can't pick up the phone.

LLMs are trapped in chat. The moment your agent needs to call a real person, text a real number, or answer a real email — the work stops, and a human takes over.

Or you spend six weeks wiring Twilio, 10DLC, SIP trunks, IMAP, carrier compliance, and webhook glue. Then another six weeks keeping it alive.

■ WHAT YOU WOULD HAVE TO BUILD
  • Buy phone numbers & manage carrier routing
  • Wire SIP trunks & media servers for voice
  • Register 10DLC brand + campaigns for SMS
  • Set up IMAP / SMTP & deliverability (SPF, DKIM, DMARC)
  • Normalize webhooks across Twilio, Vonage, Postmark…
  • Build a unified inbox & transcript store from scratch
  • Stay on top of TCPA, STIR/SHAKEN, CCPA, opt-outs

Your agent gets a phone number, an SMS line, and an email — in one command.

No Twilio account. No IMAP wrangling. No carrier certification loops. Hail is the one API every AI agent needs to pick up a call, send a text, or write an email on its own.

Drop it into ChatGPT, Claude, Gemini, or any agent framework. Same tools, same credentials, same bill.

01Place & receive calls with real-time transcriptionVOICE
02Send & receive SMS / MMS — 10DLC & shortcodes handledSMS
03Inbox at agent@you.hail.so — or bring your own domainMAIL
04Connect via MCP · CLI · Python · REST · webhookWIRE
$ # install & claim a number in under 5 minutes
$ brew install hail-hq/tap/hailhail-cli 0.4.1 installedauthenticated as sam@acme.devnumber claimed: +1 (415) 555-0181inbox ready:   agent@you.hail.so

# place a call on behalf of your agent
$ hail call \
    --to +14155559932 \
    --say "rebook Thursday appt for 3:30"
  ringing … connected
  transcript → stdout

# send an SMS
$ hail sms --to +14155554477 "on my way"

# send an email
$ hail mail --to ops@acme.co \
    --subject "Q3 terms" \
    --body "Please see attached…"

$ hail tail   # every channel, every agent
# mcp.json — works with Claude, ChatGPT, Gemini,
# Cursor, Cline, Zed, any MCP client
{
  "mcpServers": {
    "hail": {
      "url": "https://mcp.hail.so/sse",
      "token": "hl_live_•••••••••"
    }
  }
}

# OUTBOUND tools: hail.call, hail.sms, hail.email
# INBOUND  tools: hail.listen, hail.thread, hail.inbox
# SHARED   tools: hail.number, hail.transcript
$ pip install hail-sdk

# ------------------------------------------------
# agent.py
# ------------------------------------------------
import hail
from hail import Agent

agent = Agent(number="+14155550181")

# INBOUND — someone calls your number
@agent.on_call
def answer(call):
    call.say(llm(call.transcript))

# INBOUND — someone texts your number
@agent.on_sms
def reply(msg):
    msg.reply(llm(msg.text))

# OUTBOUND — agent reaches out on its own
def follow_up(lead):
    agent.call(to=lead.phone, say="Hi, this is Ada…")
    agent.sms(to=lead.phone,  text="Missed you — text back?")
    agent.mail(to=lead.email, subject="Follow-up", body="…")

agent.serve()
PROMPT
→ ACTION.
Tell your agent, in plain english, what to do. Hail handles the plumbing.
CALLCall +1 415 555-9932 and rebook my Thursday appt for 3:30.dialed · appt confirmed Thu 15:30
SMSText Mike and ask if the game is still on tonight.sent · reply received
MAILEmail procurement@northwind.co for revised Q3 terms.delivered · thread opened
LISTENAnswer my restaurant line 9a–9p, take reservations.live · bookings into calendar
▶ FIELD RECORDING · IN PROGRESSON AIR

YOUR AGENT
IS picking up
THE PHONE.

Hail gives every agent a real number. Customers dial it. The agent answers. You watch the transcript roll in — same as any other log line.

IN · +1 415 ███ 9932AGENT SUPPORT-BOTSTATUS CONNECTED
9:41●●● 100%
HAIL.LISTEN · INBOUND
IRIS KOWALSKI
+1 (415) 555-9932
IK
TRANSCRIPT00:02

IRISCalling about invoice 4421 —

AGENTLet me pull that up…

Watch the wire.

■ HAIL TAIL --FOLLOW · ALL CHANNELS
~ / agent · hail tail --follow
LIVE
 STREAMING
CH 
EVENTS 0
UPTIME 00:00
IDLE

$ HAIL TAIL —
one inbox, every channel.

■ THE UNIFIED LOG

Every call placed, text sent, and email answered — by any of your agents — streamed in order, indexed, searchable.

CALL · IN · 2m
Iris Kowalski
SMS · OUT · 14m
+1 415 ███ 2240
EMAIL · IN · 32m
procurement@northwind.co
CALL · OUT · 1h
Dr. Allen's office
SMS · IN · 1h
Mike
THREAD 3A7FVOICE · INSUPPORT-BOTINBOUND

Iris — Invoice #4421

IRISHi, I'm calling about the invoice from last Tuesday — I think I was double-charged.
AGENTLet me pull that up, Iris. I see invoice 4421 at $412.80 — the overage is for 820 extra minutes. That lines up against your usage.
IRISHmm, okay. Can you send me the detailed breakdown?
AGENTJust emailed it to iris@kowalski.io — anything else I can help with?

Three channels.
One API.

■ 02 / WHAT YOUR AGENT GETS
VOICE

Call.

Place and receive real phone calls on a real number. Streaming transcripts, turn detection, DTMF, voicemail — all surfaced as structured events your agent can act on.

  • LOCAL · TOLL-FREEus · ca
  • STREAMING TRANSCRIPTSREAL-TIME
  • SIP TRUNK INCLUDEDHANDLED
  • STIR/SHAKENA-ATTESTED
SMS

Text.

Send and receive SMS and MMS on the same number. 10DLC registration, opt-out keywords, carrier filtering — we handle the US compliance maze so your agent can just send the text.

  • SMS · MMS2-WAY
  • 10DLC REGISTRATIONHANDLED
  • OPT-OUT (STOP · HELP)AUTOMATIC
  • SHORTCODESAVAILABLE
MAIL

Email.

An inbox at agent@you.hail.so, or bring your own domain. Threaded, searchable, with attachments parsed into structured content for the agent to read.

  • SEND · RECEIVESMTP · IMAP
  • SPF · DKIM · DMARCAUTO
  • THREADINGMSG-ID · REFS
  • ATTACHMENTSPARSED

Built for agents
that do things.

■ 03 / USE CASES
01 / SUPPORT

Support lines

Your agent answers the phone 24/7, handles L1 tickets end-to-end, escalates to humans with full context.

VOICE · SMS · MAIL
02 / SCHEDULING

Book & rebook

Call doctors' offices, restaurants, vendors on behalf of your users. Confirm by SMS. Drop into calendar.

VOICE · SMS
03 / OUTBOUND

Outreach

Dial warm leads, text follow-ups, forward hot prospects to a human. Every touch logged to CRM.

VOICE · SMS · MAIL
04 / CONCIERGE

Concierge

A number users can text “book me a table at Rosalia's for two at 8” — your agent calls, confirms, replies.

SMS · VOICE

Self-host it.
Or let us run it.

■ 04 / HOW TO GET IT
● AVAILABLE NOW

Self-host.

Open source. AGPL-licensed. Runs anywhere Docker runs. Bring your own carrier credentials and email domain.

  • Full source on GitHub — fork, extend, contribute back
  • Deploy on Fly.io, Railway, Render, or your own infra
  • Bring your own Twilio / Bandwidth / Postmark keys
  • MCP server, CLI, and Python SDK included
  • Community support on GitHub Discussions
Self-host on GitHub →
● AVAILABLE NOW

Managed.

The full platform, hosted, with numbers, inbox, compliance, and dashboard included. No carrier accounts to set up.

  • Claim a number in one click — we handle carrier & compliance
  • Managed inbox, billing, rotation, and key management
  • Team workspaces, shared numbers, audit logs
  • 24/7 status page & SLA-backed uptime
  • SOC 2 Type II & HIPAA BAA when available
■ 06 / TRUST

Built to be boring
about compliance.

OPEN SOURCE

Open source

Audit the code. Fork it. Run it on your infra.

SHIPPED

TCPA-aware

Quiet hours, opt-out keywords, and consent tracking built in.

IN PROGRESS

SOC 2 Type II

Audit kicking off for managed cloud. HIPAA BAA to follow.

ROADMAP

EU region

Data residency & GDPR-native deploy coming with managed.

■ 07 / GET ACCESS

Get your agent
on the phone.

Hail Managed — hosted numbers, inbox, compliance, the dashboard. Sign up in 30 seconds. $5 of free credit, no card required.

IN THE MEANTIME →
Self-host today from the GitHub repo. Same product, your infra.
★ NEW WORKSPACE — 30 SECONDS
  • $5 free credit on signup
  • One number, one inbox, one SMS line
  • GitHub, Google, or email — your call
  • CLI, MCP, REST — same key
Get Access →

ALREADY HAVE AN ACCOUNT? SIGN IN