StarWhisper moved on to a 17-skill astronomy package while its release tags stayed in 2023
Astronomy LLMs, StarWhisper Telescope, Virtual Sitian, and astronomy research skills
At a glance
- What is it?
- An astronomy open-source effort from the National Astronomical Observatories and Zhejiang Lab, now delivered as 17 installable research skills for Codex or Cursor. Four of them run on the standard library alone, while the release line stopped at v0.2.0 in October 2023 and the newest work is dated 2026.
- Who is it for?
- StarWhisper is worth your time if you write astronomy code and want screening, gate and planning commands that refuse to invent numbers, since four of the seventeen skills need no dependencies, no network and no telescope. It is not a source of trained weights or runnable environments: the Explore environment code is still uncommitted, the snclock inputs were not retained, and the sparse light curve scores are only comparable inside one pool.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The newest release is v0.2.0 from 2023 and the work has not stopped
Three release tags exist and all three are from 2023: v0.2.0 on 2023-10-12, v0.1.3 on 2023-09-18 and v0.1.2 on 2023-08-17. The default branch is main and its last push is dated 2026-09-20. That is a gap of roughly three years between the newest published artifact and the newest commit, and the two do not describe the same era of the project. The 2023 releases belong to the language model phase, when StarWhisper 3 answered astronomy questions and wrote code, with training data in LLM_Data/ and weights on ModelScope under AstroYuYang/StarWhisper3. Everything after that shipped without a tag: Kepler and K2 light curve classification, pulsar candidate classification, the StarWhisper Telescope agent on the Nearby Galaxies Survey, and now the virtual Sitian SN Clock. The README states that StarWhisper 4.0 is still being assembled from popular-science and research text with weights planned for ModelScope. So a visitor who installs from the newest tag gets the oldest documented capability, and the current deliverable, the skill package, carries no version number at all.
Four skills need nothing but the standard library, thirteen were adapted from elsewhere
git clone https://github.com/Yu-Yang-Li/StarWhisper.git
cd StarWhisper
powershell -File .\skills\install.ps1 # Linux / macOS: ./skills/install.shThe install is a clone plus a shell script, and the README is emphatic that the four skills on this line install no dependencies, make no network calls and touch no hardware. Those four are starwhisper-snclock with describe, rank, screen, window and audit; starwhisper-explore with bar, table and gate; starwhisper-night-plan with check-config, budget, lint-targets and endpoints; and starwhisper-varlen with contract, table, best, compare, labels and check. The other thirteen are adapted research skills covering literature retrieval, hypothesis generation, experiment design, statistical analysis, writing, review, plotting and slide decks, and their list plus environment variables live in skills/README.md. Three rules are stated as non-negotiable: without a key the tools run dry and never fabricate citations, the night planner only checks and never invokes /manipulate_nina or /ftp_transfer under any circumstance, and empty results, negative verdicts and missing data are all reported as they are rather than loosening a threshold to fill the table.
The snclock table covers 22 sources and only 2 clear the conservative threshold
snclock/ holds one production output: post-discovery burst age estimates for 22 TNS sources, each with q16, q50 and q84 quantiles, split into two tiers by whether the estimate lands inside two days. The finding worth knowing before you read the numbers is that only 2 of those 22 sources have even the conservative q84 inside two days. The README states plainly that the table's coverage is smaller than the screening window it claims and that the input snapshots for most rows were not retained, with the specifics written out in the data card. The screen_snclock.py subcommands line up with the two questions anyone has of that table: rank --top 10 pulls the youngest supernova candidates out of the SN Clock table, window --within-days 2 asks whether a given source is still inside its burst window, and audit is the command for asking how hard the evidence behind a prediction is. The README also draws the line that keeps this from being over-read: an age estimate is not spectroscopic classification, and every source in the table is already on TNS, so nothing here constitutes a new discovery.
The Explore environment is synthetic and its code is not committed
StarWhisper-Explore-v0.2 is described in three ways that all narrow what it can tell you. It is a synthetic environment: Xinglong, one telescope, six time slots in a night. The agent cannot see future perturbations and cannot change the safety thresholds. And the environment code itself is not in this repository, only the spec, the action set and the checked four-strategy table under explore/. A fourth qualifier sits in the figure caption: the diagram is not an optical simulation and not a screenshot from real hardware. That matters because Explore is where the judgment question lives. Telescope already automates observation inside a live survey, roughly ten amateur-grade telescopes on the Nearby Galaxies Survey, and the nightly plan rarely survives intact: ad hoc targets arrive, weather closes windows, and tracking, focus, the camera or the dome can each fail. The system has to keep deciding whether to continue, insert, defer, pause safely, or replan after recovery. Explore is the sandbox for deciding when that judgment holds, what it costs and when to stop. Its code being uncommitted means a reader can check the numbers but not reproduce the run.
The pre-registered gate splits four policies across 90 episodes each
The Explore comparison scores four policies over 90 episodes apiece. Mean science utility: no intervention 3.9343, random 2.4027, deterministic priority 4.3289, rule agent 4.3996. Survey completion: 77.41%, 30.19%, 61.11%, 51.67%. Follow-up rate on high-value transients: 0.00%, 30.37%, 49.81%, 73.33%. Invalid actions: 0, 18, 0, 0. Blocked dangerous attempts: 122, 72, 0, 0. The pass criteria were registered in advance and require all three seeds to clear them: no proactive safety violation, invalid action rate at or under 1%, survey completion dropping by no more than 5 percentage points, and either a 20% relative rise in high-value transient follow-up or a 5% rise in science utility. Reading the columns against those criteria, the random policy fails on completion and on invalid actions, and the two agent policies fail on the completion clause while holding invalid actions and safety attempts at zero. The file's own verdict on the rule agent against deterministic priority is 23.52 points higher follow-up, roughly 1.6% higher utility and 9.44 points lower survey completion, which it calls a stable negative result: short-term responsiveness bought excessive survey debt. All three seeds move the same direction and rerun hashes match.
Almost none of the code behind these claims is in this repository root
A second table in the README exists to redirect you elsewhere, and it is worth reading as a map of what is absent. The observation agent code is in NGSS/ and depends on NINA and other external services. Light curve classification tests are in StarWhisper_LC/, described as not a complete training reproduction. Sparse light curve training code sits in Early Classification from Sparse Light Curves/ with weights on Hugging Face. The runnable virtual Sitian system is not in this root at all: the public description is a map page at yu-yang-li.github.io/StarWhisper and the installable workflow is the separate SitianClaw repository, with the real-versus-fake prototype in GOTTA_Prototype/. The scale behind that programme is stated once: the Sitian plan places 54 one-metre-class wide field telescopes at sites inside China, sweeping about 10,000 square degrees in three colours every 30 minutes, and StarWhisper is named as one candidate path for the Sitian brain. Two further 2026 items are adjacent but separate, an all-sky camera pipeline at Xinglong in AllSky-Camera-XL/ and a satellite cloud nowcast that runs on a private repository using 2022 to 2025 historical nights, which the README says is not yet operational forecasting.
Five figure slots are empty divs while example/ holds twelve files
The README opens with a block of four links written as empty labels, each one just brackets and a URL: stargazers, LICENSE, the Communications Engineering DOI and the commit list for main. Whether a renderer draws those as badges or drops them, nothing identifies what any of them points at. Below the language switcher the same pattern repeats five times: a div with align set to center and no content inside. Those are figure slots, and the files that would fill them are sitting in the repository. example/ contains twelve of them, Agent.png, Eval.png, Release.png, StarGPT.png, a file for the LC paper, one for the Telescope paper, four numbered images whose names are Chinese words for picture one, two and three, books.jpg and sitian.png. The figure caption for the Telescope and Explore diagram is the part to read carefully: the decision structure is shared between the two projects, and it is explicitly not an optical simulation and not a photograph of real hardware. So the pictures exist, the README promises them, and the rendered page shows empty space where they should be.
skill/ and skills/ both sit at the top level and only one is referenced
The top-level listing carries two directories whose names differ by one letter: skill/ and skills/. Every path in the README points at skills/, including the install script at skills/install.ps1, the four SKILL.md files and the varlen references directory. Nothing in the file points at skill/, and no entry in the tree table describes what it holds, so a reader cannot tell whether it is an older layout kept for compatibility, a staging area, or a second collection of skills that the documentation forgot. Two other root entries have no section of their own: CITATION.cff, which carries citation metadata for a project whose weights live in two different places, and docs/, which the README never opens. There is also README_EN.md at the root, reachable from the language switcher at the top of the Chinese file, so an English version of the documentation exists even though the badge row above it renders with no text.
Editorial conclusion
StarWhisper is worth your time if you write astronomy code and want screening, gate and planning commands that refuse to invent numbers, since four of the seventeen skills need no dependencies, no network and no telescope. It is not a source of trained weights or runnable environments: the Explore environment code is still uncommitted, the snclock inputs were not retained, and the sparse light curve scores are only comparable inside one pool. Before building on it, check whether the release tag you need exists, read skills/README.md for the environment variables the thirteen adapted skills expect, and confirm which of the four figures is a synthetic environment rather than a hardware capture.
Frequently asked questions
How do I install the StarWhisper research skills?
Clone the repository, change into the StarWhisper directory and run skills/install.ps1 with PowerShell, or ./skills/install.sh on Linux and macOS. The four skills on this line install no dependencies, make no network calls and touch no hardware; the other thirteen may need environment variables listed in skills/README.md.
Does the Explore environment in StarWhisper connect to a real telescope?
No. StarWhisper-Explore-v0.2 is a synthetic environment set at Xinglong with a single telescope and six time slots per night, the agent cannot see future perturbations or change safety thresholds, and the environment code is not in the repository. Only the spec, the action set and the checked four-strategy table are published.
Are the burst ages in StarWhisper snclock new supernova discoveries?
No. The table holds post-discovery age estimates with q16, q50 and q84 quantiles for 22 TNS sources, and every source is already on TNS. An age estimate is not spectroscopic classification, coverage is smaller than the declared window, and input snapshots for most rows were not retained.
Why does the rule agent score badly on survey completion in StarWhisper?
Over 90 episodes it reaches 73.33% follow-up on high-value transients but only 51.67% survey completion, 9.44 points below deterministic priority. The README calls this a stable negative result in which short-term responsiveness bought excessive survey debt, with all three seeds moving the same direction and rerun hashes matching.
Which StarWhisper version should I start from?
The newest published tag is v0.2.0 from 2023-10-12, which belongs to the language model phase rather than the current work. The main branch was last pushed on 2026-09-20 and the present deliverable is the 17-skill package, which carries no version number of its own.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/yu-yang-li-starwhisper)