A command-line interface for interacting with the SMS Gateway for Android API
Explore the docs »
Report Bug
·
Request Feature
- 📱 About The Project
- 💻 Getting Started
- 💻 Configuration
- 💻 Usage
- 👥 Contributing
- ©️ License
⚠️ Legal Notice
There are two CLI tools in this repository: smsgate
and smsgate-ca
. The first one is for SMS Gateway for Android itself, and the second one is for the Certificate Authority.
This CLI provides a robust interface for:
- Sending and managing SMS messages
- Configuring webhook integrations
- Issuing certificates for private deployments
- Go 1.23+ (for building from source)
- Docker (optional, for containerized execution)
- Go to the Releases page of this repository.
- Download the appropriate binary for your operating system and architecture.
- Extract the archive to a directory of your choice.
- Move the binary to a directory in your system's PATH.
go install github.com/android-sms-gateway/cli/cmd/smsgate@latest
This will download, compile, and install the latest version of the CLI tool. Make sure your Go bin directory is in your system's PATH.
docker run -it --rm --env-file .env ghcr.io/android-sms-gateway/cli \
send --phone '+12025550123' 'Hello, Dr. Turk!'
The CLI can be configured using environment variables or command-line flags. You can also use a .env
file in the working directory to set these variables.
Option | Env Var | Description | Default value |
---|---|---|---|
--endpoint , -e |
ASG_ENDPOINT |
The endpoint URL | https://api.sms-gate.app/3rdparty/v1 |
--username , -u |
ASG_USERNAME |
Your username | required |
--password , -p |
ASG_PASSWORD |
Your password | required |
--format , -f |
n/a | Output format | text |
The CLI supports three output formats:
text
: Human-readable text output (default)json
: Pretty printed JSON-formatted outputraw
: One-line JSON-formatted output
Please note that when the exit code is not 0
, the error description is printed to stderr without any formatting.
smsgate [global options] command [command options] [arguments...]
The CLI offers two main groups of commands:
- Messages: Commands for sending messages and checking their status.
- Webhooks: Commands for managing webhooks, including creating, updating, and deleting them.
For a complete list of available commands, you can:
- Run
smsgate help
orsmsgate --help
in your terminal. - Visit the official documentation at docs.sms-gate.app.
The CLI uses exit codes to indicate the outcome of operations:
0
: success1
: invalid options or arguments2
: server request error3
: output formatting error
For security reasons, it is recommended to pass credentials using environment variables or a .env
file.
# Send a message
smsgate send --phones '+12025550123' 'Hello, Dr. Turk!'
# Send a message to multiple numbers
smsgate send --phones '+12025550123' --phones '+12025550124' 'Hello, doctors!'
# or
smsgate send --phones '+12025550123,+12025550124' 'Hello, doctors!'
# Get the status of a sent message
smsgate status zXDYfTmTVf3iMd16zzdBj
Credentials can also be passed via CLI options:
smsgate send -u <username> -p <password> --phones '+12025550123' 'Hello, Dr. Turk!'
Text
ID: zXDYfTmTVf3iMd16zzdBj
State: Pending
IsHashed: false
IsEncrypted: false
Recipients:
+12025550123 Pending
+12025550124 Pending
JSON
{
"id": "zXDYfTmTVf3iMd16zzdBj",
"state": "Pending",
"isHashed": false,
"isEncrypted": false,
"recipients": [
{
"phoneNumber": "+12025550123",
"state": "Pending"
},
{
"phoneNumber": "+12025550124",
"state": "Pending"
}
],
"states": {}
}
Raw
{"id":"zXDYfTmTVf3iMd16zzdBj","state":"Pending","isHashed":false,"isEncrypted":false,"recipients":[{"phoneNumber":"+12025550123","state":"Pending"},{"phoneNumber":"+12025550124","state":"Pending"}],"states":{}}
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the Apache-2.0 license. See LICENSE for more information.
Android is a trademark of Google LLC.