Give your agents a phone number.
Phone numbers that hand the sign-in code straight to your agent.
Real SIM lines, not just VoIP.

Sign-in tests
+1 415 555 0142 · Mobile
- Acme Stagingnow
Your Acme verification code is 418204. It expires in 10 minutes.
418 204 - Acme Staging4m
Your Acme verification code is 902117.
902 117 - +1 646 555 018711m
Booked. Confirmation BK-2291.
- Acme Staging26m
Your Acme verification code is 377051.
377 051
Acme Staging · just now · to +1 415 555 0142
Verification code
Your Acme verification code is 418204. It expires in 10 minutes. Don't share it with anyone.
Activity
Shared with 2 people, 1 test key and 1 agent
The Phonekit inbox
Set up in one command.
Pick your tool.
$npx skills add https://www.phonekit.io --skill phonekit --agent claude-code --copyYour agent gets past
“Enter the code.”
- 1Mark the line
- 2Send the code
- 3Read it and sign in
Your agent stops asking you for the code.
✻ Welcome to Claude Code
> Sign in to staging with my test number and check the dashboard loads
⏺ phonekit - mark_number (MCP)(number: "sign-in-tests")
⎿ Marked 10:24:05
⏺ playwright - browser_click (MCP)(element: "Send code")
⎿ Clicked
⏺ phonekit - read_messages_after (MCP)(number: "sign-in-tests")
⎿ code 418204 · arrived 1.8s after the mark
⏺ playwright - browser_type (MCP)(text: "418204")
⎿ Typed
⏺ Signed in. The dashboard loads.
? for shortcuts
Enter the code
We texted a 6-digit code to +1 415 555 0142.
Verify
Your Acme verification code is 418204.
418 204
Read by claude-code via MCP
Three lines in your test.
Give each parallel run its own line and they never read each other's codes.
Read the SDK guideProven on every push.
A broken text path fails the build, not your users.
e2e · sign-in
on push · main · 52s
Set up job2s
Install Phonekit CLI3s
Mark the test lines1s
$phonekit message mark --number ci-signin-1
$phonekit message mark --number ci-signin-2
Marked. Now trigger the SMS, then run: phonekit code wait
Run sign-in tests41s
$npx playwright test e2e/sign-in.spec.ts
Running 24 tests using 2 workers, one line each
✓ [chromium] sign-in with SMS code (4.1s)
✓ [chromium] invite a teammate by text (5.3s)
✓ [webkit] sign-in with SMS code (4.4s)
✓ [webkit] reset password by text (4.9s)
…
24 passed (41.0s)

Real SIM lines where VoIP won't do.
Standard
US local VoIP
Most of your own tests.
Mobile
Real SIM line on a mobile network
Services that only text mobiles.
Most numbers sold for testing are VoIP. Mobile numbers are real SIMs, for the services that only text mobiles. Both share the same inbox, access and API.
- Sending
- 10 a minute, 100 a day, per number
- Who you can text
- Your lines, your team's phones, anyone who texted you in 30 days, and 5 more
- Messages
- Encrypted, kept 30 days
For your own product, not other people's accounts.
Test products that text.
Invites, links, confirmations, replies. Give a test agent its own number, text your product and check whatever comes back.
- Table for 4 on Friday at 8?10:24:02
- I have 8:15 by the window. Want it?10:24:04
- Yes10:24:09
- Booked. Confirmation BK-2291.10:24:11
run 4 of 20 · reply in 2.1 s · assertion passed
Sign-in tests
+1 415 555 0142
Who can use it
- SLSena LindqvistReads codes
- TBTheo BrandtManages access
- ci-signinTest key · read only
- build-agentAgent · read and send
Acme's owners and admins can always open it. No one else can.
Decide who reads each number.
Share each number with exactly the people, test keys and agents that need it. It stays with the company when people leave.
Sharing account codes across a team? Shared company access
Our own agents kept stopping at the sign‑in code, so we built Phonekit. Now they don't.
The Phonekit team, on our own products
Get a number.
Tell us what you're testing. We'll set up your workspace.
✓ sign-in with SMS code (4.2 s)