Skip to content

Give your agents a phone number.

Phone numbers that hand the sign-in code straight to your agent.

Real SIM lines, not just VoIP.

Acme · sample workspace

The Phonekit inbox

Set up in one command.

Pick your tool.

$npx skills add https://www.phonekit.io --skill phonekit --agent claude-code --copy

Your agent gets past
“Enter the code.”

  1. 1Mark the line
  2. 2Send the code
  3. 3Read it and sign in

Your agent stops asking you for the code.

~/acme-web

✻ 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

staging.acme.dev/sign-in/verify
controlled by your agent

Enter the code

We texted a 6-digit code to +1 415 555 0142.

418204

Verify

Phonekit
Sign-in tests · +1 415 555 014210:24:07

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 guide
e2e/sign-in.spec.ts
const number = phonekit.number("sign-in-tests")
const after = await number.mark()

await page
  .getByRole("button", { name: "Send code" })
  .click()
const code = await number.waitForOtp({ after })

await page
  .getByLabel("Verification code")
  .fill(code)

✓ sign-in with SMS code (4.2 s)

Proven on every push.

A broken text path fails the build, not your users.

An engraving of a nano-SIM card, contact side up, casting a long shadow

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.

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.

Get a number