Downloads and latest version for your packages across crates.io, PyPI, npm and GitHub releases. Agent-friendly: JSON when piped.
Project description
downstat
Downloads and latest version for your published packages across crates.io, PyPI, npm and GitHub releases - in one view, instead of curling five APIs by hand.
Why
If you publish to several registries, "is this tool getting used, and what's
live where?" means visiting crates.io, PyPI, npm, and a GitHub releases page
one at a time. downstat <name> answers it in one shot; downstat --all does
your whole portfolio. JSON when piped, a table in a terminal.
Install
cargo install downstat
Quickstart
# One package across every registry it's on
downstat dotpick
# PACKAGE REGISTRY VERSION DOWNLOADS
# dotpick crates.io 0.1.0 1,234 total · 56 (90d)
# dotpick pypi 0.1.0 42 (30d)
# dotpick github v0.1.0 7 (releases)
# JSON for scripting
downstat dotpick | jq '.packages[0].registries[] | {registry, downloads}'
# Just one registry
downstat dotpick --only crates
# Your whole portfolio (from ./downstat.toml)
downstat --all
downstat.toml:
packages = ["dotpick", "whatport", "onym", "vership"]
What it reads
| registry | downloads | latest version |
|---|---|---|
| crates.io | total + 90-day | ✓ |
| PyPI | 30-day (via pypistats.org) | ✓ |
| npm | 30-day | ✓ |
| GitHub releases | summed release-asset downloads | ✓ (latest tag) |
The GitHub repo is discovered from crates.io's repository field. A
GITHUB_TOKEN/GH_TOKEN env var (optional) lifts GitHub's unauthenticated
rate limit for large --all runs.
Counts are normalized but not directly comparable across registries (the
windows differ - that's why each recent value is labelled). ghcr and Homebrew
taps expose no public download counts, so they are omitted rather than faked.
Exit codes
| code | meaning |
|---|---|
0 |
success |
1 |
the queried name was found on no registry |
2 |
a network or parse failure |
3 |
usage error (bad arguments / config) |
For agents (clispec)
downstat follows The CLI Spec: structured output on
stdout, structured error envelopes on the last line of stderr, and a schema
subcommand whose output validates against clispec.dev/schema/v0.2.json
(checked by the test suite). Every command is read-only (mutating: false).
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file downstat-0.1.0.tar.gz.
File metadata
- Download URL: downstat-0.1.0.tar.gz
- Upload date:
- Size: 32.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ed947573ce406be3afd185a719080525920af21e6947ae48e4b451badc5c61a
|
|
| MD5 |
a4e3ba54909b99a9bf6314ce0b4c05d6
|
|
| BLAKE2b-256 |
45eb94bf97026479540e8e75d49d42715ee81c13551c6dc46bc3afa10f7ba9e4
|
File details
Details for the file downstat-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: downstat-0.1.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
154c44708178beec050069cbefbd58ad656c5727c469701dbdcbe80ef315993b
|
|
| MD5 |
85b9463574f11f16bfa7e21ef130046b
|
|
| BLAKE2b-256 |
92159ec6ab6e56e5f70be3467bab2e7257de10802297ccff3484d5af56b53d31
|
File details
Details for the file downstat-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: downstat-0.1.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5253a544552890b85c8381e5c83a28e92c0d6e5ac6b7d284ab2a387412f5f416
|
|
| MD5 |
9b86d852186100e5a0fb36aad897420d
|
|
| BLAKE2b-256 |
3ed783b3fc4ebe33321c7e7747ca468fbc5f0a5a7708277f3ff0d312455f3a34
|
File details
Details for the file downstat-0.1.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: downstat-0.1.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d024770f404a0ac96330e45da7b2a7120a6dfbffb7233d98ef9b88650012e7cd
|
|
| MD5 |
0ddcd54315b60fb03112e52b81d63376
|
|
| BLAKE2b-256 |
6bb13e505f6aec5d20c5a19a41ad4be2661f7afa7c68b3525fc62b1cec77a557
|
File details
Details for the file downstat-0.1.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: downstat-0.1.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.23 {"installer":{"name":"uv","version":"0.11.23","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff14736b96556b93266ac6e7e8735fba87cb34b8f9aa6a7a1ee33b98d62bd845
|
|
| MD5 |
d036fb4695a4e35d07f74ede3df21c03
|
|
| BLAKE2b-256 |
5e07b265eedbf1e3520e65a56d639eb01022609878d90076fbdf96ab1717f21e
|