Metadata-Version: 2.4
Name: setuhq
Version: 0.1.0
Summary: SetuHQ, the open exoplanet observatory: a transit search of public TESS data with a calibrated panel of AI Sentinels and deterministic Probes
Author-email: Ashforde OÜ <contact@ashforde.org>
License-Expression: AGPL-3.0-only
Project-URL: Homepage, https://setuhq.com
Project-URL: Documentation, https://github.com/ashfordeOU/SetuHQ#readme
Project-URL: Source, https://github.com/ashfordeOU/SetuHQ
Project-URL: Issues, https://github.com/ashfordeOU/SetuHQ/issues
Project-URL: Changelog, https://github.com/ashfordeOU/SetuHQ/blob/HEAD/CHANGELOG.md
Keywords: exoplanets,transit search,TESS,benchmark,citizen science
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Environment :: Console
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Astronomy
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
License-File: LICENSING.md
Requires-Dist: numpy>=1.24
Requires-Dist: scipy>=1.10
Requires-Dist: astropy>=6.0
Requires-Dist: matplotlib>=3.7
Requires-Dist: astroquery>=0.4.7
Provides-Extra: tess
Requires-Dist: lightkurve>=2.4; extra == "tess"
Provides-Extra: claude
Requires-Dist: anthropic>=0.40; extra == "claude"
Provides-Extra: mcp
Requires-Dist: mcp>=1.10; extra == "mcp"
Provides-Extra: agents
Requires-Dist: mcp>=1.10; extra == "agents"
Requires-Dist: claude-agent-sdk>=0.1; extra == "agents"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: tess-point>=0.9; extra == "dev"
Requires-Dist: mcp>=1.10; extra == "dev"
Requires-Dist: setuptools>=77; extra == "dev"
Requires-Dist: packaging>=24; extra == "dev"
Provides-Extra: survey
Requires-Dist: tess-point>=0.9; extra == "survey"
Requires-Dist: K2fov>=7; extra == "survey"
Provides-Extra: validate
Requires-Dist: triceratops>=1.1; extra == "validate"
Dynamic: license-file

<!-- The package page on PyPI (pyproject.toml: readme). PyPI does not rewrite relative paths, so every link and
     image here is absolute, pinned to the main branch. The full README is README.md on GitHub. Keep this page free
     of benchmark numbers: they live in the repository, where they are regenerated from the committed results.
     The next line is the ownership marker the official MCP registry reads; it must equal "name" in server.json. -->
<!-- mcp-name: io.github.ashfordeOU/setuhq -->

<p align="center">
  <img src="https://raw.githubusercontent.com/ashfordeOU/SetuHQ/main/docs/assets/brand/setuhq-logo-light.svg" alt="SetuHQ: the Setu mark beside the wordmark SetuHQ, whose Q is a star with a planet crossing its face" width="360">
</p>

<p align="center">
  <strong>SetuHQ · <em>the bridge</em></strong><br>
  The open exoplanet observatory: from public sky data to reviewed, explained candidates.
</p>

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

```bash
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.

```bash
git clone https://github.com/ashfordeOU/SetuHQ
SETUHQ_ROOT=$PWD/SetuHQ setuhq-mcp --list-tools
```

## Use

```bash
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](https://github.com/ashfordeOU/SetuHQ/blob/main/examples/quickstart.ipynb)
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](https://github.com/ashfordeOU/SetuHQ/blob/main/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](https://github.com/ashfordeOU/SetuHQ/blob/main/CHANGELOG.md)
- **Cite:** [CITATION.cff](https://github.com/ashfordeOU/SetuHQ/blob/main/CITATION.cff)
- **Security:** [SECURITY.md](https://github.com/ashfordeOU/SetuHQ/blob/main/SECURITY.md)

## Licence

The code is under the **GNU AGPL-3.0-only**, or under a **commercial licence** from Ashforde OÜ
([contact@ashforde.org](mailto: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](https://github.com/ashfordeOU/SetuHQ/blob/main/LICENSING.md). "SetuHQ" and the Setu mark
are trademarks of Ashforde OÜ
([TRADEMARKS.md](https://github.com/ashfordeOU/SetuHQ/blob/main/TRADEMARKS.md)).
