★ StarDown ★
Stars, on your disk, fast.
List and bulk-download everything you've ever starred — with live progress bars that don't suck.
Why StarDown?
Stars are bookmarks. Bookmarks rot. Repos get deleted, renamed, DMCA'd, or force-pushed into oblivion. StarDown turns your star list into a local archive — snapshots or full git clones, pulled down in parallel with a gorgeous live dashboard.
- ⚡ Async engine — one shared HTTP session, bounded concurrency, 128 KiB streaming chunks, atomic writes, auto-resume
- 📊 Rich live progress — per-repo bars with speed + ETA, plus a global counter (plain fallback in pipes/CI)
- 🎯 Two download modes —
tarsnapshots (fast, tiny) orgitclones (full history) - 🔎 Filter before you pull — by language, topic, search text, forks, archived
- 🔑 Auth-aware — token support for private stars + 30x the rate limit
- 🪶 Zero friction — one command install, double-click launchers included
Install
pip install -e .
That's it. You now own the stardown command everywhere.
No install? No problem — use the zero-setup launchers (they fetch deps on first run):
.\run.bat download --user octocat./run.sh download --user octocat
Quickstart
# Peek at your stars in a pretty table
stardown list --user octocat
# Archive them all — fast snapshots, 16 at a time
stardown download --user octocat --out stars
# Just your Python CLI obsessions, as JSON
stardown list --user octocat --language python --topic cli --format json --out stars.json
# Your own stars via token (also unlocks private repos)
export GH_TOKEN=ghp_...
stardown download --me --out stars
Usage
stardown list --user NAME [--me] [--language LANG] [--topic TOPIC]
[--search TEXT] [--no-forks] [--no-archived] [--limit N]
[--format table|json|csv] [--out FILE]
stardown download --user NAME [--out DIR] [--method tar|git]
[--workers 16] [--keep-tar] [--no-extract] [--force]
[--ssh] [--full] [--no-progress] [filters...]
| Flag | What it does |
|---|---|
--method tar (default) |
Snapshot archives via the API — 5–10x faster, no .git weight |
--method git |
Real clones (--depth 1 unless --full), reruns pull --ff-only to update |
--workers N |
Parallel downloads (default 16, max 64) |
--keep-tar / --no-extract |
Keep the .tar.gz files / skip extracting |
--force |
Re-download even if already cached (.stardown-done marker) |
--no-progress |
Plain output for scripts and CI |
Auth: you probably don't need to think about it. StarDown takes --token if you hand it one, else $GH_TOKEN, else it quietly checks your gh login and git's own credential store — and tells you when it finds something. No login anywhere? It goes anonymous (60 API calls/hr instead of 5,000). --no-auto-auth skips the snooping.
Under the hood
- Single
httpx.AsyncClientwith keepalive reuse (fewer handshakes, fewer FDs) Semaphore-bounded concurrency — fast without trippingEMFILE- Crash-safe writes: stream to
.part, resume withRange, atomicos.replaceon completion - Blocking tar extraction offloaded to a thread so the event loop never stalls
uvloopauto-engaged on Linux when installed (pip install -e .[linux])- Sync
gitpath kept inclone.pyas the simple fallback
Dev
pip install -e .[test]
python -m pytest tests/ -q
src/stardown/ api.py · async_download.py · clone.py · cli.py · ui.py
tests/ offline unit tests (no network)
run.bat · run.sh zero-install launchers
Credits
Built by wydyippee ★ — for folk who star first and read later.
License
MIT — see LICENSE. StarDown save your sources? Smash that star. 🌟
Release files for stardown 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stardown-0.6.0.tar.gz | 18.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stardown-0.6.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.4 kB
Release files / stardown-0.6.0.tar.gz
| Download URL | stardown-0.6.0.tar.gz |
|---|---|
| Size | 18.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b6605aa306629a17cee4129dbcab5338fca599f3044e38fe17177086304c0b3b
|
|
BLAKE2b-256 checksum How to use checksums |
49fa9b141832a354d3e444d360fc6209e2a57dc6339bdfdfa9b5ce08cb928f7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency logRelease files / stardown-0.6.0-py3-none-any.whl
| Download URL | stardown-0.6.0-py3-none-any.whl |
|---|---|
| Size | 19.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
601b2978736ee625a8078dbe11a8a708f2130b6f5e7739729ce10a6a02b05993
|
|
BLAKE2b-256 checksum How to use checksums |
25265106cffd9e53c94e6a1b5fae33e037d0b7c8a453b71380bef6f952877b76
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 18, 2026.
Transparency log