A CLI to interact with the Svix API.
With the Svix CLI, you can:
- Interact with the Svix CLI
- Validate Webhook payloads
The Svix CLI is available on macOS via Homebrew:
brew install svix/svix/svix
The Svix CLI is available on Windows via the Scoop package manager:
scoop bucket add svix https://github.com/svix/scoop-svix.git
scoop install svix
The Svix CLI is available on Linux via:
- The Snap Store:
snap install svix
- The Arch User Repository (AUR):
yay -S svix-cli
- For Ubuntu/Debian: get the
deb
package from our Github releases page - For Fedora/CentOS: get the
rpm
package from our Github releases page
You can download and use our pre-built executables directly from our releases page, and use them as is without having to install anything.
- Download and extract the
tar.gz
archive for your operating system. - Run the
svix
executable from the command line:./svix help
.
Note: you may need to allow execution by running chmod +x svix
.
You can also put the binaries anywhere in your PATH
so you can run the command from anywhere without needing to provide its full path. On macOS or Linux you can achieve this by moving the executable to /usr/local/bin
or /usr/bin
.
Installing the Svix CLI provides access to the svix
command.
svix [command]
# Run `svix help` for information about the available commands
svix help
# or add the `--help` flag to any command for a more detailed description and list of flags
svix [command] --help
The listen
command creates an on-the-fly publicly accessible URL for use when testing webhooks.
NOTE: You don't need a Svix account when using the listen
command.
The cli then acts as a proxy, forwarding any requests to the given local URL. This is useful for testing your webhook server locally without having to open a port or change any NAT configuration on your network.
Example:
svix listen http://localhost:8000/webhook/
Output:
Webhook relay is now listening at
https://play.svix.com/in/c_pSbznmV2KCg38CY7zYpFBUktsgl/
All requests on this endpoint will be forwarded to your local url:
http://localhost:8080/webhook/
View logs and debug information at
https://play.svix.com/view/c_pSbznmV2KCg38CY7zYpFBUktsgl/
To disable logging run "svix listen --no-logging"
The above command will return you a unique URL and forward any POST requests it receives
to http://localhost:8000/webhook/
.
# Set your Auth Token temporarily via the SVIX_AUTH_TOKEN environment variable
export SVIX_AUTH_TOKEN=<MY-AUTH-TOKEN>
# or to persistently store your auth token in a config file run
svix login # interactively configure your Svix API credentials
# Create an Application with the name "Demo"
svix application create '{ "name": "demo" }'
# or pipe in some json
echo '{ "name": "demo" }' | svix application create
# or use the convenience cli flags
svix application create --data-name demo
# List Applications
svix application list --limit 2 --iterator some_iterator
The Svix CLI supports the following commands:
Command | Description |
---|---|
login | Interactively configure your Svix API credentials |
application | List, create & modify applications |
authentication | Manage authentication tasks such as getting dashboard URLs |
endpoint | List, create & modify endpoints |
event-type | List, create & modify event types |
message | List & create messages |
message-attempt | List, lookup & resend message attempts |
verify | Verify the signature of a webhook message |
listen | Forward webhook requests a local url |
integration | List, create & modify integrations |
import | Import data from a file to your Svix Organization |
export | Export data from your Svix Organization to a file |
open | Quickly open Svix pages in your browser |
completion | Generate completion script |
version | Get the version of the Svix CLI |
help | Help about any command |
Shell completion scripts are provided for Bash, Zsh, fish, & PowerShell.
To generate a script for your shell type svix completion <SHELL NAME>
.
For detailed instructions on configuring completions for your shell run svix completion --help
.
For a more information, checkout our API reference.
This project uses goreleaser.