# Twilio Dev Phone

The Twilio Dev Phone makes it easier for you to test your Twilio apps when you don't have access to SMS and calling capabilities. It uses existing Twilio products to send and receive calls and SMS from your local development environment.

![Dev Phone interface with dial pad, call history, and messaging feature.](https://docs-resources.prod.twilio.com/39ca73d4368ac4af25134dc168d814e1df86d8bf9028887b878a3cebb247c9e6.png)

## Install the Dev Phone

To use the Dev Phone, you'll need to first have an [up-to-date installation of the Twilio CLI](/docs/twilio-cli/getting-started/install), as well as access to a spare Twilio phone number. That means that [if you're using a trial account, you'll need to upgrade](https://help.twilio.com/hc/en-us/articles/223183208-Upgrading-to-a-paid-Twilio-Account).

Once you've installed the Twilio CLI, you're ready to add the Dev Phone plugin with the following command:

```bash
twilio plugins:install @twilio-labs/plugin-dev-phone
```

Once it's installed, you can run the Dev Phone with the following command:

```bash
twilio dev-phone
```

You should see output that looks something like this:

```bash
# OUTPUT

Hello 👋 I'm your dev-phone and my name is dev-phone-XXXXXX



✅ I'm using your profile API key.



💻 Creating a new conversation...

✅ I'm using the conversation CHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX from service ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX



💻 Creating a new sync list for call history...

✅ I'm using the sync service ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX



💻 Deploying a Functions Service to handle incoming calls and SMS...

✅ I'm using the Serverless Service ZSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX



💻 Creating a new TwiML App to allow voice calls from your browser...

✅ I'm using the TwiML App APXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX



🚀 Your local webserver is listening on port 3001

🌐 Opening http://localhost:3001/ your browser

▶️  Use ctrl-c to stop your dev-phone
```

These services are created when you start the Twilio Dev Phone. When you stop it (by pressing `CTRL + C`), the Twilio Dev Phone will delete the resources from your account. If something happens and you're not able to manually tear down the Dev Phone, then the old resources will be removed the next time you run the Dev Phone plugin.

## When to use the Dev Phone

You may be wondering: is this the tool that I actually need? We think it's best to start with the following question: *Am I having issues testing my Twilio app with my personal cell phone?*\
If the answer is yes, then the Dev Phone might be the right tool for you. Some example use cases include:

* You don't have access to a Twilio phone number that can send and receive communications from your region (this is often the case [for numbers outside of the US and Canada](https://www.twilio.com/blog/developers-guide-phone-number-regulatory-requirements)).
* You don't have cell service, but you do have a reliable internet connection (maybe you're developing in a building with poor cell service, the cell network is down, or you're just running low on minutes on your phone!)
* Your phone is in another room, and you just don't want to go and get it.

In any of these scenarios, you can use the Dev Phone as a replacement for your Twilio phone number.

> \[!WARNING]
>
> Currently, using the Dev Phone means that a phone number's webhooks will be overwritten, which is why we recommend NOT using phone numbers that are currently configured. Especially if a number is being used in production, your customers communications will come in to the Dev Phone tab in your browser!

### Send a Message

![Twilio Dev Phone interface showing SMS input and send button.](https://docs-resources.prod.twilio.com/d124c7f97c26e944e92b94d36e79be46692e1ef9adc1a4e89040534ef2856b4c.gif)

To send a message, fill out the Destination number field. Then, type in a message in the SMS interface (on the lower right-hand corner of the Dev Phone) and then click "Send".

### Make an Outbound Call

![Dev Phone interface showing keypad and destination number entry.](https://docs-resources.prod.twilio.com/25978bd6fd9623919022b9b322b3496f7105050454385a54985c6b035d05539e.gif)

To make an outbound call, fill out the Destination number field and then click the "Call" button.

### Receive Inbound Calls/SMS

To receive inbound calls and SMS, call or text the Dev Phone's configured phone number. Your communications should pass directly through to the Dev Phone, where you can click to accept.

## Next Steps

* [Leave feedback on the Dev Phone](https://airtable.com/shrn1gZFT0uayIjgJ) so that we can make improvements
* The Dev Phone is open source! Open an issue or pull request on [the Dev Phone Github repository](https://github.com/twilio-labs/dev-phone)
* [Start building with the Dev Phone](/docs/messaging/tutorials/how-to-send-sms-messages) in place of your cell phone!
