SetuHQ · the bridge
The open exoplanet observatory: from public sky data to reviewed, explained candidates.
SetuHQ is an open, reproducible transit search of public NASA TESS light curves. A reviewer panel of AI Sentinels (Claude by default; other providers supported and labelled) and deterministic matched-filter Probes marks every dip in blind-coded light curves, the way Planet Hunters volunteers do. The pipeline then vets each dip, fits a limb-darkened transit model and bounds its false-alarm probability. Every candidate keeps its provenance: data hash, config hash, code fingerprint and every reviewer's marks.
Every SetuHQ output is a candidate, never a confirmation. Follow-up observations decide what is a planet.
Install
pip install setuhq # the setuhq command
pip install "setuhq[mcp]" # plus the setuhq-mcp server for AI assistants
pip install "setuhq[tess,mcp]" # plus TESS downloads through lightkurve
Python 3.11 or later. The package carries the pipeline and the reference tables it reads (the Claret 2017
limb-darkening coefficients and the secondary-eclipse calibration), so setuhq run searches, vets and fits a
TESS target from a plain install (with the tess extra for the download). The stored runs, the frozen
real-TOI benchmark, the leaderboard and the site are data, not code, and stay in the repository: to reproduce
them, or to point the MCP tools at them, use a checkout and set SETUHQ_ROOT to it.
git clone https://github.com/ashfordeOU/SetuHQ
SETUHQ_ROOT=$PWD/SetuHQ setuhq-mcp --list-tools
Use
setuhq --help # every command
setuhq run my_config.toml --out runs/my-run # a config names the targets and the panel (configs/ in the repository)
setuhq crossmatch runs/my-run # the NASA Exoplanet Archive cross-match the Docket shows
setuhq docket runs/my-run --out site/docket --title "My run"
setuhq mcp # the MCP server over stdio (also installed as setuhq-mcp)
Without installing anything: uvx --from "setuhq[mcp]" setuhq mcp.
The quick-start notebook walks through the stored pi Men run offline: the candidates, the docket data, a Probe on a stored light curve and an MCP tool called as a plain function.
The MCP server
setuhq-mcp lets an AI assistant run SetuHQ's own code and read its stored results instead of guessing
them: the exoplanet catalogue, a run's candidates with full provenance, BLS search and vetting, the
transit fit, the bounded false-alarm probability and the Methods physics. Every answer carries its
provenance and honesty labels. The server runs on your computer; nothing is sent to Ashforde OÜ. Set-up
for each client is in
docs/MCP-INSTALL.md.
Learn more
- The full README, the evidence and the benchmark: https://github.com/ashfordeOU/SetuHQ
- The app: https://setuhq.com
- Changelog: CHANGELOG.md
- Cite: CITATION.cff
- Security: SECURITY.md
Licence
The code is under the GNU AGPL-3.0-only, or under a commercial licence from Ashforde OÜ (contact@ashforde.org) for use the AGPL does not suit. SetuHQ's own data, benchmark, leaderboard data and paper are under CC BY 4.0. See LICENSING.md. "SetuHQ" and the Setu mark are trademarks of Ashforde OÜ (TRADEMARKS.md).
Metadata
Release files for setuhq 0.1.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 | Provenance | |
|---|---|---|---|---|
| setuhq-0.1.0.tar.gz | 899.3 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| setuhq-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / setuhq-0.1.0.tar.gz
| Download URL | setuhq-0.1.0.tar.gz |
|---|---|
| Size | 899.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6fdc9bcecd5da9a4ca3a8e917c23fc0d26a49f9344cffb8e6c52be08366d1929
|
|
BLAKE2b-256 checksum How to use checksums |
b964096c4d1a10193c8e5484cfa69dbdd5c22cbc5aad0274f00613de3a4d6b44
|
| 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 Oct 22, 2026.
Transparency logRelease files / setuhq-0.1.0-py3-none-any.whl
| Download URL | setuhq-0.1.0-py3-none-any.whl |
|---|---|
| Size | 891.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8c06476d910fea63ad9eb86d8091247a0f6f8dcf2381ea3c91f102d7ae218150
|
|
BLAKE2b-256 checksum How to use checksums |
33c057b23bc9f35738770fe63bddc8ba22aa8483d574fad6a1924292e57d446c
|
| 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 Oct 22, 2026.
Transparency logSecurity for setuhq 0.1.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for setuhq-0.1.0.tar.gz
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 Oct 22, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.