The Twilio CLI allows you to manage your Twilio resources from your terminal or command prompt. Let's get it installed and take a quick tour.
Warning
Currently, only Node.js 18 is supported. Please upgrade if you are using an older version of Node.js.
Install the Twilio CLI
Danger
It's strongly recommended to use one of the other installation methods if possible. An installation by npm does not auto-update, and uses your system's version of Node.js, which may be older than the version Twilio develops the CLI against.
npm install -g twilio-cli
//To install the CLI on macOS using [Homebrew](https://brew.sh/), run:
brew tap twilio/brew && brew install twilio
wget -qO- https://twilio-cli-prod.s3.amazonaws.com/twilio_pub.asc \
| sudo apt-key add -
sudo touch /etc/apt/sources.list.d/twilio.list
echo 'deb https://twilio-cli-prod.s3.amazonaws.com/apt/ /' \
| sudo tee /etc/apt/sources.list.d/twilio.list
sudo apt update
sudo apt install -y twilio
scoop bucket add twilio-scoop https://github.com/twilio/scoop-twilio-cli
scoop install twilio
docker run -it --rm twilio/twilio-cli bash
//Consult the [dedicated Twilio CLI Docker documentation](https://www.twilio.com/docs/twilio-cli/getting-started/docker) for more details on usage.
Once the CLI has finished installing, run twilio --version (or twilio -v) to verify your installation. You'll see similar output to this:
$ twilio --version
twilio-cli/5.0.0 darwin-x64 node-v14.19.0
Login to your Twilio account
In order for the CLI to access your Twilio account and execute commands on your behalf, you need to log in and provide your Twilio credentials. This can be done by running:
twilio login
You will be prompted for your Account SID and Auth Token, both of which you can find on the dashboard of your Twilio console.
This will create an API Key for you that will be stored securely and used to issue authenticated requests as you use the CLI. This secure API Key and your settings will be stored locally as a profile.
Install CLI autocomplete (bash or zsh only)
Autocomplete allows you to type part of a command, parameter, or flag, and the Twilio CLI will either automatically complete the command or display suggestions for you. If you have autocomplete enabled, you can prompt the CLI for these suggestions by pressing the Tab key.
Enable autocomplete by running the appropriate command for your shell:
twilio autocomplete bash
twilio autocomplete zsh
Explore the Twilio CLI
The best way to learn about what you can do with the CLI is to run the command:
twilio
When you do, you will get a list of the various topics and commands available to run. Topics are groupings for more topics and commands, similar to the folder structure on your file system.
$ twilio
Unleash the power of Twilio from your command prompt. Visit https://twil.io/cli for documentation.
VERSION
twilio-cli/5.0.0 darwin-x64 node-v14.19.0
USAGE
$ twilio [COMMAND]
TOPICS
api advanced access to all of the Twilio APIs
config manage Twilio CLI configurations
debugger Show a list of log events generated for the account
email sends emails to single or multiple recipients using Twilio SendGrid
feedback provide feedback to the CLI team
phone-numbers manage Twilio phone numbers
plugins list available plugins for installation
profiles manage credentials for Twilio profiles
COMMANDS
autocomplete display autocomplete installation instructions
feedback provide feedback to the CLI team
help display help for twilio
login create a new profile to store Twilio Account credentials and configuration
plugins list installed plugins
update update the twilio CLI
See something that looks interesting? Just try running it:
twilio api -h
Since api is a topic, you will actually be shown more topics and commands that are contained within that topic. Let's say in the process of exploring, you stumbled upon this command:
twilio api:core:messages:list
If you run that command, it will list all of your SMS messages, which may be a lot. How can you filter them? Or, more generally, how can you discover what options a given CLI command provides? The answer is to add --help or -h to the command like so:
twilio api:core:messages:list --help
twilio api:serverless:v1:services:create -h
If you type a command, you might get an error if you haven't provided all the required options. This is another situation where adding --help or -h to the command can give you more information.
Some quick examples
- List your Twilio phone numbers
twilio phone-numbers:list
- Send a text message
twilio api core messages create \
--from "+15017122661" \
--to "+15558675310" \
--body "I sent this from my terminal 😎"