Hookstride CLI
Hookstride CLI lets you manage projects and webhook destinations, inspect delivery activity, and view billing records. It includes an interactive console with the same selected-project commands.
Version 0.3.1 adds signed test-event sending with an existing project's delivery API key, and optional delivery-status polling. Project and destination management remain available; billing and credential changes, delivery replay, and destructive operations remain unavailable.
Installation
Requires Python 3.11 or later.
uv tool install hookstride-cli
Alternatively, use pipx install hookstride-cli.
hookstride --version
hookstride status
hookstride console
Upgrade an existing installation with uv tool upgrade hookstride-cli.
Authentication
Authenticated commands require a Control API token (whrctl_), available from your Hookstride dashboard. Project delivery API keys (whrk_) do not grant CLI access.
In an interactive console, run auth login and enter the token at the hidden prompt:
hookstride console
For one-off commands, set HOOKSTRIDE_CONTROL_TOKEN in your shell without entering it on the command line:
read -rs "HOOKSTRIDE_CONTROL_TOKEN?Control token: "
echo
export HOOKSTRIDE_CONTROL_TOKEN
hookstride auth status
The read example above works in zsh. In Bash, use read -rs -p "Control token: " HOOKSTRIDE_CONTROL_TOKEN followed by echo and export HOOKSTRIDE_CONTROL_TOKEN.
Tokens entered through auth login are retained only for the interactive console session. The CLI does not write tokens to its settings file.
Commands
hookstride status
hookstride auth status
hookstride projects list
hookstride projects use PROJECT_UUID
hookstride projects create --account ACCOUNT_UUID --name "Staging" --slug staging
hookstride projects update PROJECT_UUID --name "Production EU"
hookstride destinations list
hookstride destinations create --name "Webhook receiver" --url "https://app.example.com/webhooks/hookstride"
hookstride destinations update DESTINATION_UUID --url "https://api.example.com/webhooks/hookstride"
hookstride destinations update DESTINATION_UUID --pause
hookstride destinations update DESTINATION_UUID --resume
hookstride keys list
hookstride events list --status failed
hookstride events show EVENT_UUID
hookstride events send DESTINATION_UUID --type webhook.test --wait
hookstride stats
hookstride incoming sources
hookstride incoming routes
hookstride incoming bindings
hookstride incoming registration-keys
hookstride billing status
hookstride billing history
hookstride config show
Replace the example UUIDs with identifiers from your account. Find your workspace's account_id with hookstride --json projects list; that ID is required for project creation. Project creation and renaming require an admin/owner role. Destination changes require developer access or higher.
Commands that operate on a project use the selected project. You can override the selection for an individual command:
hookstride --project PROJECT_UUID events list
Interactive console
hookstride console
Use help to view commands, Tab for completion, and exit or Ctrl+D to leave. The console also supports show projects, show events, show destinations, use PROJECT_UUID, back, and set env dev|production. The same projects create/update, destinations create/update, and events send commands work inside the console. Commands with customer-provided names and URLs are not saved to console history.
JSON output
Use --json before a command to retrieve structured data for scripts:
hookstride --json projects list
hookstride --project PROJECT_UUID --json events list --status failed
hookstride --env production --json billing history
Errors go to standard error; unsuccessful requests return a nonzero exit code. When creating a destination, the server returns a signing secret once. Save it securely immediately. Both terminal output and --json deliberately include that one-time secret, so avoid piping creation output into logs or public CI artifacts.
Send a test event
Use an existing active destination from hookstride destinations list.
The command securely prompts for a project delivery API key (whrk_). It cannot use a
Control API token (whrctl_); these credentials have different permissions.
hookstride --env production projects use PROJECT_UUID
hookstride --env production events send DESTINATION_UUID --wait
hookstride --env production events show EVENT_UUID
The event type defaults to webhook.test, with a harmless JSON payload:
{"message":"Hookstride CLI delivery test","source":"cli"}.
To send a different JSON object without placing its contents in shell history:
hookstride --env production events send DESTINATION_UUID --type demo.delivery --payload-file ./demo-payload.json --wait
To avoid the hidden prompt, set HOOKSTRIDE_PRODUCTION_API_KEY or
HOOKSTRIDE_DEV_API_KEY for the matching environment only.
Never add keys to CLI arguments, commit them to Git, or paste them into a public CI log.
The CLI does not save delivery keys or their prompts in its configuration or history.
The --wait flag polls for a terminal status and exits nonzero if delivery fails.
A non-delivered event can be examined using events show with the usual Control token.
Environments and local settings
The CLI connects to the production API by default: https://api.hookstride.com.
A new release must be published to PyPI before existing installations receive this change.
To inspect the development API explicitly, select it:
hookstride --env dev console
Development requests use https://api-dev.hookstride.com. Use a Control API token issued for the selected environment. A custom HTTPS API origin can be supplied with --api-url.
Project selections are stored separately by environment in ~/.config/hookstride/settings.json. This file contains project identifiers, not authentication tokens. Console tokens and command history remain in memory and are discarded at exit.
Documentation
Documentation: https://hookstride.com
Metadata
Release files for hookstride-cli 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| hookstride_cli-0.3.1.tar.gz | 39.9 kB | With provenance | Details for hookstride_cli-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| hookstride_cli-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for hookstride_cli-0.3.1-py3-none-any.whl |
Total release size: 60.0 kB
Release files / hookstride_cli-0.3.1.tar.gz
| Download URL | hookstride_cli-0.3.1.tar.gz |
|---|---|
| Size | 39.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e16474a7ed3c1fb5f578080d8024b4a4e5533987f6e7c57189a7df18ce006dbf
|
|
BLAKE2b-256 checksum How to use checksums |
2b410db1c3d4f45500017f82f6cfacae504ac2c5a36e4649a1738aac1a45d220
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.
Transparency logRelease files / hookstride_cli-0.3.1-py3-none-any.whl
| Download URL | hookstride_cli-0.3.1-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
26a533a8861f099aed833dbde9cbad6f46d95427500e902da72584d5bb06200d
|
|
BLAKE2b-256 checksum How to use checksums |
5222d4179f4e6921a9cddfaf08853fb1415ab3e34d60cd1d017456d9c9a187ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.7 {"installer":{"name":"uv","version":"0.13.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.
Transparency logSecurity for hookstride-cli 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for hookstride_cli-0.3.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 7, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.