# README
Svix - Webhooks as a service
Svix CLI
A CLI to interact with the Svix API.
With the Svix CLI, you can:
- Interact with the Svix CLI
- Validate Webhook payloads
Installation
macOS
The Svix CLI is available on macOS via Homebrew:
brew install svix/svix/svix
Windows
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
Linux
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
Pre-built executables
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
.
Usage
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
Quick Start
# 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 convinence cli flags
svix application create --data-name demo
# List Applications
svix application list --limit 2 --iterator some_iterator
Using the listen
command
The listen
command creates an on-the-fly publicly accessible URL for use when testing webhooks.
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://api.relay.svix.com/api/v1/receive/q1FB7XNKZTO4s0Tzh5BDTZ7_oktf1NBo/
All requests on this endpoint will be forwarded to your local url:
http://localhost:8080/webhook/
The above command will return you a unique URL and forward any POST requests it receives
to http://localhost:8000/webhook/
.
Commands
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 Completions
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
.
Documentation
For a more information, checkout our API reference.
Development
Building the current commit
This project uses goreleaser.