AstroLab
A study tool for astronomy and physics built for the terminal. No heavy web interfaces, just real NASA data and AI-generated quizzes to help you study between lectures.
I built this because reading blocks of theoretical physics gets boring fast. With AstroLab, I pull the Astronomy Picture of the Day (APOD) and let Gemini AI create interactive, university-level quizzes and flashcards out of it.
See it in action
The Tech & Why
- Python + Rich: I love CLI tools. Rich makes the terminal look great without a browser.
- NASA API: Real-world data is better than textbook examples.
- Gemini 2.5 Flash: Fast enough to generate quizzes and deep dives on the fly.
- Offline / Smart Demo Mode: I coded a fallback caching system. If you don't have API keys or internet, the app won't crash. It serves pre-generated, high-quality offline quizzes. I know what it's like to have your code break during a review because of missing .env files, so I fixed that friction.
Try it out
I packaged this up so anyone can run it instantly:
pip install astrolab-cli
Then, just run:
astrolab
Track Your Progress & Deep Dive
I didn't just want to answer questions; I wanted to see if I was improving. The app features local persistence with a stats tracker.
If you get a quiz question wrong, AstroLab doesn't just give you the answer. It asks if you want a "Deep Dive", where it acts like a physics professor and explains the exact concept you missed using everyday analogies right in the terminal.
Built for the Hack Club Sidequest Challenger.
Release files for astrolab-cli 1.0.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| astrolab_cli-1.0.8.tar.gz | 14.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| astrolab_cli-1.0.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.5 kB
Release files / astrolab_cli-1.0.8.tar.gz
| Download URL | astrolab_cli-1.0.8.tar.gz |
|---|---|
| Size | 14.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a86e0604a650603e8ab13ef158fbad7da83da44ee439497a6acb737de70d950a
|
|
BLAKE2b-256 checksum How to use checksums |
4622e9551af6a28b85e4a3c033aa8a58def7e70ed5b5bed7d87a32b1fc09917c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 23, 2026.
Transparency logRelease files / astrolab_cli-1.0.8-py3-none-any.whl
| Download URL | astrolab_cli-1.0.8-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
09c642f3702ce840031e5bc2cf8ce2156f04dcfdd2f4e33f4bc3564e322597bd
|
|
BLAKE2b-256 checksum How to use checksums |
ee82a6b55985f27fb0e2f2f7b54a1cb8e8134541456542901c4adcb87c61ae8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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 Apr 23, 2026.
Transparency log