Forward SMS codes from your phone to your scripts and AI agents
Install the app on an Android phone. Every text it receives, plus verification codes from app notifications, reaches you through a REST API, a webhook, MCP or a one-line CLI command.
Free for one phone. 1.2 MB, Android 8.0 or newer, no sign-up.
GitHubYour GitHub verification code is 482913. It expires in 10 minutes.
Set up in two minutes
The phone is your account. There's no email to confirm and no dashboard to learn.
Install the app on the phone that gets the texts
Tap Get started and allow SMS access. For codes that apps send as notifications, turn on Also forward codes from app notifications.
Copy your API key
It's on the app's home screen, next to ready-to-paste setup lines for Claude Code, Cursor and curl.
Ask for the code
Your script or agent calls
waitright after it clicks "Send code", and gets the code the moment the text lands.
Use it from wherever the code is needed
One API key works for all of these. Every message comes with the detected code, the service it's from and the phone that got it.
Add the MCP server to Claude Code, Claude Desktop, Cursor or any MCP client. When a login asks for a code, the agent calls wait_for_code instead of asking you.
claude mcp add --transport http sms-forwarder https://api.smsforwarder.app/mcp \ --header "Authorization: Bearer sk_your_key"
{
"mcpServers": {
"sms-forwarder": {
"type": "http",
"url": "https://api.smsforwarder.app/mcp",
"headers": { "Authorization": "Bearer sk_your_key" }
}
}
}
Prefer skills to MCP? Drop the skill file into your agent's skills folder and set SMSFORWARDER_API_KEY. It teaches the agent when to wait for a code and how.
mkdir -p ~/.claude/skills/sms-forwarder curl -o ~/.claude/skills/sms-forwarder/SKILL.md https://smsforwarder.app/skill.md
Wait for the next code and print only the code, so it drops straight into a shell script. Exits with status 2 if nothing arrives in time.
npm install -g smsforwarder smsforwarder login sk_your_key CODE=$(smsforwarder code --timeout 90)
The wait call holds the connection open until the next code arrives (up to 120 seconds), so there's no polling loop to write.
curl -G https://api.smsforwarder.app/v1/codes/wait \
-H "Authorization: Bearer sk_your_key" \
-d timeout=60
{"code":"731942","message":{"service":"Amazon","from":"+1 262-…","body":"…","source":"sms",…}}
Get every new message pushed to your URL as JSON, signed with HMAC-SHA256 so you can check it came from us. Set it from the app or the API. Paste a Slack, Discord or Telegram bot URL instead and each message arrives as a chat message, code first.
curl -X PUT https://api.smsforwarder.app/v1/webhook \
-H "Authorization: Bearer sk_your_key" \
-d '{"url":"https://example.com/sms"}'
What gets forwarded
- Texts from any sender, on either SIM
- Verification codes that apps show as notifications, such as Google prompts, banking apps and messengers
- Codes in English, Chinese and many other languages, picked out of the message for you
- Texts that arrive while the phone is offline, sent as soon as it's back
What stays on your phone
- Notifications without a code, including your chats, are never sent
- Turn on "codes only" and plain texts stay on the phone too
- The app can't send texts. It only receives
- Messages are deleted from our servers after 7 days on the free plan
Pricing
Free covers one phone and the everyday "log me in" use. Pro is for teams and test rigs with several numbers.
Free
- 1 phone
- 100 messages a month
- 7 days of message history
- API, MCP, CLI and webhooks
Pro
- Up to 5 phones on one key
- 10,000 messages a month
- 90 days of message history
- Everything in Free
Questions
Do I need to create an account?
No. Opening the app on your phone creates the account and its API key. To add another phone, tap Add another phone in the app and type the 6-digit code into the new one.
Android says "Restricted setting" when I allow SMS access
Android 13 and newer does this for apps installed outside an app store. Open Settings, Apps, SMS Forwarder, tap the ⋮ menu and choose Allow restricted settings, then try again. Step-by-step with pictures of where to tap.
Does it work on iPhone?
Not yet. iOS doesn't let apps read texts directly, so the iPhone version will use a Shortcuts automation. We're building it now.
The phone stops forwarding after a while
Tap Keep running in the background in the app so Android doesn't put it to sleep. On Xiaomi, Huawei, OPPO and vivo phones, also turn on autostart for SMS Forwarder in the phone's settings.
Can my agent send texts with it?
No. SMS Forwarder only receives. That keeps it out of spam territory and means a leaked key can't cost you money.
How is this different from an SMS gateway app?
Most SMS gateway apps are built for sending bulk texts. This one is built for the other direction: getting codes and messages off your phone and into your tools, with code detection, a wait-for-code call and AI integrations included.