Twilio supplies SMS delivery APIs and inbound webhooks. A coding-agent integration also needs routing, message state, authentication, and a path back into the agent. Campfire SMS provides a hosted bridge you connect to your existing runtime.
Your agent
SMS OUTThe integration test needs a callback URL. Use the staging fixture?
SMS INUse the existing staging fixture. Keep production untouched.
RESULTFixture connected. Integration check passes in the current repo.
Your phone
Campfire SMS: The integration test needs a callback URL. Use the staging fixture?
You: Use the existing staging fixture. Keep production untouched.
Campfire SMS: Fixture connected. Integration check passes in the current repo.
Sending a text is the first half
Twilio's receive-and-reply guide shows how an application handles an incoming message. For a coding workflow, your application must also decide which agent and task should receive the text.
An outbound-only SMS tool can report “tests finished.” To answer “investigate the failure,” you need an inbound path that returns the reply to the correct active session. That is the bridge between SMS transport and coding-agent work.
What a DIY bridge needs
| Part | Question to resolve |
|---|---|
| SMS provider | How will your application send and receive messages? |
| Inbound authentication | How will you validate the provider request and allowed sender? |
| Message queue | Where does a reply wait while the agent is busy? |
| Task routing | Which active agent should handle this message? |
| Retry handling | How will repeated delivery avoid repeated work? |
| Runtime connection | How does the existing agent retrieve and acknowledge replies? |
| Operations | Who maintains hosting, credentials, delivery failures, and opt-out handling? |
These are design questions for your application, not features an SMS send call supplies on its own. A DIY route makes sense when you need custom behavior and want to own that service.
What the hosted Campfire SMS route does
Campfire SMS handles phone enrollment, SMS transport, authenticated message retrieval, and the bridge to your connected agent. You use an account and connector instead of provisioning your own Twilio account, public inbound endpoint, and message-routing service.
The connector's tools let an active agent open a bridge, check pending messages, acknowledge handled messages, and send an SMS. Those steps make the reply loop explicit. The agent continues using its own repo and tools.
Connect without building a new bot
Follow the Codex or Claude Code setup for the environment where your agent already runs. The local installation starts with the one-time command supplied after phone verification:
npx -y @campfiresms/setup YOUR_INSTALLATION_CODEThen test an outbound message and an inbound reply with the running agent. You do not need to create a Campfire SMS coding project or move your repository.
Budget for the complete workflow
For DIY, consider provider charges, hosting, and the time to maintain the application. Provider pricing depends on the sender and destination; inspect current Twilio pricing for your setup rather than assuming a single universal rate.
Campfire SMS offers 40 free messages after phone verification, then a monthly plan or one-time packs. Read pricing and message counting for the current options. Your coding agent and compute costs remain separate.
Neither route grants native tool permissions or supplies a running coding model. Keep the host available and decide how the agent should check replies.
Common questions
Do I need my own Twilio account for Campfire SMS?
No. The hosted Campfire SMS service handles SMS delivery. You verify your phone and connect the agent through Campfire SMS.
Is an outbound Twilio MCP tool enough for two-way control?
An outbound send tool can alert you. Two-way steering also requires an inbound path, routing to the agent, and message handling.
Should I build my own bridge?
Build one when owning custom messaging infrastructure is part of your product. Use a hosted bridge when you mainly want to reach an existing agent by text.