Skip to main content

awa-cli

Command-line interface for the Awa Postgres-native job queue. Run migrations, inspect and manage jobs, walk the storage transition, drive the Dead Letter Queue, list cron schedules, and serve the web admin UI.

Install

The CLI is shipped as both a Rust binary and a Python wheel. Either distribution gives you the same awa executable, including the embedded React admin dashboard for awa serve.

# Python (no Rust toolchain needed)
pip install awa-cli

# Rust
cargo install awa-cli

If you're already using the awa-pg Python SDK, install both with one command:

pip install 'awa-pg[ui]'

That pulls in awa-cli as a dependency so python -m awa serve works end-to-end alongside the worker SDK.

Quick start

# Run migrations
awa --database-url $DATABASE_URL migrate

# Inspect
awa --database-url $DATABASE_URL queue stats
awa --database-url $DATABASE_URL job list --state failed
awa --database-url $DATABASE_URL job dump 12345
awa --database-url $DATABASE_URL job dump-run 12345

# Admin
awa --database-url $DATABASE_URL job retry 12345
awa --database-url $DATABASE_URL queue pause email
awa --database-url $DATABASE_URL queue drain email

# Web UI
awa --database-url $DATABASE_URL serve
# → http://127.0.0.1:3000

DATABASE_URL may be passed as the --database-url flag or read from the environment.

Commands

Command Description
migrate Apply migrations, or extract / print SQL with --sql / --extract-to
job list List jobs with --state / --kind / --queue filters
job dump <id> Pretty-print one job and its full lifecycle metadata
job dump-run <id> [--attempt N] Pretty-print one attempt run
job retry <id> Retry a failed or cancelled job
job cancel <id> Cancel a job
job retry-failed (--kind K | --queue Q) Retry every failed job matching exactly one filter
job discard --kind K Delete every failed job of a given kind
queue stats Per-queue depth, lag, and throughput
queue pause / resume / drain <queue> Queue admin
cron list / remove List or remove cron schedules
dlq depth [--queue Q] Total DLQ rows, optionally split by queue
dlq list List DLQ entries with --kind / --queue / --tag / --before-* filters
dlq retry <id> Retry a single DLQ row
dlq retry-bulk Retry every DLQ row matching the filter (--all required if no filter is given)
dlq move Move existing failed terminal rows into the DLQ
dlq purge Delete DLQ rows matching the filter (--all required if no filter is given)
storage status Current storage-transition state
storage prepare --engine E Prepare a future storage engine without changing routing
storage prepare-queue-storage-schema Materialize the queue-storage schema (tables, indexes, functions)
storage enter-mixed-transition Begin routing new writes to the prepared engine
storage finalize Finalize the transition once drain and capability gates pass
storage abort Abort a prepared or mixed-transition rollout
serve Start the embedded web admin UI

Run awa <command> --help for the flags on any subcommand.

Storage transition

For an existing 0.5.x cluster moving to the queue-storage engine, the typical sequence is:

awa --database-url $DATABASE_URL storage prepare-queue-storage-schema
awa --database-url $DATABASE_URL storage prepare --engine queue_storage
# ... roll out a binary that supports queue storage to all workers ...
awa --database-url $DATABASE_URL storage enter-mixed-transition
# ... drain the canonical engine ...
awa --database-url $DATABASE_URL storage finalize

See docs/upgrade-0.5-to-0.6.md for the full pre-flight checklist, gate semantics, and rollback notes. Fresh installs auto-finalize on first migrate and do not need this sequence.

Dead Letter Queue

dlq retry-bulk and dlq purge require an explicit filter (--kind, --queue, or --tag) or --all. This is intentional — a bare bulk retry / purge with no filter would touch every DLQ row, which is almost never what you want. See docs/dead-letter-queue.md.

Web UI

awa serve starts an embedded admin UI (awa-ui) bound to 127.0.0.1:3000 by default. The UI is read-only when the database reports transaction_read_only = on (e.g. on a replica) or when --read-only is passed explicitly. Mutation endpoints return 503 in that mode.

License

MIT OR Apache-2.0

Metadata

Release files for awa-cli 0.6.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for awa-cli 0.6.10
File Actions
awa_cli-0.6.10-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details for awa_cli-0.6.10-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
awa_cli-0.6.10-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details for awa_cli-0.6.10-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
awa_cli-0.6.10-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for awa_cli-0.6.10-py3-none-macosx_11_0_arm64.whl
awa_cli-0.6.10-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for awa_cli-0.6.10-py3-none-macosx_10_12_x86_64.whl

Total release size: 22.2 MB

Release files / awa_cli-0.6.10-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL awa_cli-0.6.10-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 5.7 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
85a87b5a76f5826f0251a2199cc4c5a4ef5fb9a35d8f1634cd66d759ce2e24b2
BLAKE2b-256 checksum
How to use checksums
92d91a3be1122c6969ab805fbf59798662cf01993f6ca8896e100691956e8e21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 3, 2026.

Transparency log

Release files / awa_cli-0.6.10-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL awa_cli-0.6.10-py3-none-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 5.5 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
29c5ff51328c7f36a91e6be6260270c32dd2b901b6f5ea194387beb0fb662d0e
BLAKE2b-256 checksum
How to use checksums
25fcd62cdb08c05ff3e6ee37dcd26ed90a8f3c584a4cf16153fe64267b18b889
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 3, 2026.

Transparency log

Release files / awa_cli-0.6.10-py3-none-macosx_11_0_arm64.whl

Download URL awa_cli-0.6.10-py3-none-macosx_11_0_arm64.whl
Size 5.4 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
084500b6b7945a63eb217d557153a17db1d73b76ec285ac0b46b60d96e0509a4
BLAKE2b-256 checksum
How to use checksums
78341a0df19932910b6bbf758faacb8b18f7c1ef6ff2239f4e6007f3199cd843
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 3, 2026.

Transparency log

Release files / awa_cli-0.6.10-py3-none-macosx_10_12_x86_64.whl

Download URL awa_cli-0.6.10-py3-none-macosx_10_12_x86_64.whl
Size 5.6 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7ff374303b801abe1da8e868f8ae85598d954c048e8cce98eff97dd67466ae1f
BLAKE2b-256 checksum
How to use checksums
9acd449454c6ee36a5f7685b2bd122561df4da8105e1f491b9bb4f9ba971945e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 3, 2026.

Transparency log

Security for awa-cli 0.6.10

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

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for awa_cli-0.6.10-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

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 3, 2026.

Transparency log

A 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.

Release history Release notifications | RSS feed

This release

0.6.10 This release

4 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page