Works with your capture software
ASIAIR, N.I.N.A., SharpCap, Ekos / KStars, SGP, Voyager, APT — all supported out of the box, with zero setup. If it writes standard files, Sortronomy sorts them.

Drop in a folder, get a clean library
After a night of imaging, your capture software leaves you one giant folder of cryptically named files. Sortronomy is a small command-line wizard that reads what your camera recorded inside each photo and copies every frame into a clean, processing-ready library — by camera, target, date, and filter. Entirely offline, and it never touches your originals.
Every capture app — ASIAIR, N.I.N.A., SharpCap, and the rest — dumps a night’s work into one folder of files with names like Light_0042.fit. Weeks later it’s hard to say which frames belong to which target, filter, or night. Sortronomy fixes that in one run: point it at the messy folder and it reads the details your gear recorded inside each file — camera, target, capture time, filter — and copies every frame into a tidy, processing-ready tree. Lights are grouped under their target; darks, flats, and bias frames get their own calibration area.
It’s built to be safe to try: originals are copied, never moved or renamed in place, and a dry run builds the full folder structure before a single file is written. Everything happens on your machine — no account, no upload, no telemetry.
“Completely offline — your data never leaves your computer.”
ASIAIR, N.I.N.A., SharpCap, Ekos / KStars, SGP, Voyager, APT — all supported out of the box, with zero setup. If it writes standard files, Sortronomy sorts them.
Sortronomy reads the details your gear recorded into every shot — and folds different spellings of the same camera into one name — so files land in the right place even when their names are a mess.
Your originals stay exactly where they are. The organised library is built from copies, and re-running only fills in what’s missing.
Preview the entire folder tree before a single file is copied — inspect it in Finder or Explorer, then run for real.
Shots taken after dark roll into that night’s folder, so a single session never gets split across two dates — even past midnight.
No account, no uploads, no telemetry. Everything runs on your machine — nothing ever leaves your computer.
Three steps from a messy capture folder to a clean library — one small program, no account, nothing uploaded.
One command installs the right build for your system — a single small binary, nothing else. It verifies the download and puts sortronomy on your PATH.
curl -fsSL https://raw.githubusercontent.com/sidthesloth92/db-astro-suite/main/tools/sortronomy/scripts/install.sh | shPrefer a manual install? Grab a binary from the releases page.
$ curl -fsSL …/install.sh | sh ↓ sortronomy v0.0.1 · darwin/arm64 ✓ checksum verified ✓ installed to ~/.local/bin/sortronomy $ sortronomy --version sortronomy v0.0.1
Type sortronomy and answer a few questions — where your captures are, where the library should go, and how to group it (focal length, date, filter, imaging session). A review screen confirms everything before anything runs, and a dry run creates the folders without copying a single file. One-shot-colour rig? Tag a filter once and every frame gets labelled.
sortronomy$ sortronomy ? Input folder ~/Captures ? Output folder ~/Astro Library ? Group by focal length Yes ? Group by date Yes ? Group by filter Yes Review ▸ Execute Dry run — create folders only Go back and edit Cancel
Confirm, and every frame is copied into place — camera, focal length, target, session date, filter — with calibration frames in their own area. Your originals are never moved or renamed. Re-run it any time: existing files are left alone and only what's missing is filled in.
~/Astro Library/ ├─ ASI2600MM Pro/ │ └─ 530mm/ │ └─ M31/ │ └─ 2026-05-28/ │ ├─ Ha/ 48 lights │ ├─ OIII/ 36 lights │ └─ SII/ 36 lights └─ Calibration/ ├─ Darks/ 40 ├─ Flats/ 30 └─ Bias/ 50
~/Captures/ ├─ 2026-05-28_2130_Light_120s.fit ├─ 2026-05-28_2132_Light_120s.fit ├─ 2026-05-28_2134_Light_120s.fit ├─ Light_0001.fit ├─ Light_0002.fit ├─ M31_Ha_300s.fit ├─ ASI2600_NGC7000.fit ├─ Dark_-10C_120s.fit ├─ Flat_Ha_001.fit ├─ Bias_0001.fit └─ … 1,274 more frames
~/Organised/ ├─ ASI2600MM Pro/ (mono camera) │ └─ 530mm/ (focal length) │ └─ M31/ (target) │ └─ 2026-05-28/ (session date) │ ├─ Ha/ 48 lights (one folder per filter) │ ├─ OIII/ 36 lights │ └─ SII/ 36 lights ├─ ASI2600MC Pro/ (one-shot colour) │ └─ 250mm/ │ └─ Veil Nebula/ │ └─ 2026-05-30/ │ └─ OSC · L-eXtreme/ 42 (filter tagged) ├─ ASI183MM/ (second rig, normalised) │ └─ 1000mm/ │ └─ Jupiter/ │ └─ 2026-05-31/ │ └─ L/ 900 frames └─ Calibration/ (grouped by frame type) ├─ Darks/ 40 ├─ Flats/ 30 └─ Bias/ 50
A raw capture dump on the left; the same frames sorted by camera, focal length, target, session date, and filter on the right — mono rigs get one folder per filter, one-shot-colour rigs a single tagged folder.