This release is a pre-release and may not be stable for production use.
ScienceFlow turns an executable task with a measurable objective into persistent, evaluator-guided research. It coordinates parallel workers, promotes valid results into recoverable stages, preserves the best artifacts, and exposes the full process through a TUI and Web monitor.
Quick start
Requirements: Python 3.11+ and access to a supported model API.
uv tool install scienceflow==0.2.0b5
scienceflow config init
scienceflow config path # edit the generated private model registry
scienceflow tui --workspace "$PWD/sf_workspace"
pipx install scienceflow==0.2.0b5 is an equivalent isolated installation.
Inside an activated virtual environment, use
python -m pip install scienceflow==0.2.0b5. On Debian and Ubuntu, avoid
bypassing PEP 668 with --break-system-packages.
Chat normally in the TUI, or enter /long-research to configure and launch a
managed task. Closing the TUI detaches from research without terminating its workers.
Minimal TUI example
The built-in circle-packing example needs no dataset. After starting the TUI,
complete these prompts in order:
1 · Prepare the task
/long-research circle-packing data=none workers=2 cpu=16 gpu=cpu duration=1h
2 · Accept the model defaults
default
3 · Start after preflight passes
run
ScienceFlow runs preflight checks, starts two CPU workers, evaluates candidate solutions,
and retains the best valid artifact under the workspace. Follow it with
/tasks or /status 1.
| Command | Purpose |
|---|---|
/long-research DESCRIPTION | Prepare and launch a research task. |
/tasks, /status N | List tasks or inspect one task. |
/stop N, /resume N, /attach N | Control or follow a task. |
/research-usage N, /resources | Inspect model, cost, and resource usage. |
/models | Select the fixed chat model. |
/web, /web stop | Start or stop the workspace Web monitor. |
Resume the latest chat session with:
scienceflow tui --workspace "$PWD/sf_workspace" --resume
How it works
- Explore: isolated workers advance executable workspaces under explicit CPU, GPU, model, and time budgets.
- Evaluate: task evaluators convert artifacts into normalized evidence and final scores.
- Preserve: Stage Gate admits valid results as immutable, recoverable stages while the best artifact remains available independently of submission state.
- Adapt: ESTRA continues the current route or re-anchors work to a stronger archived stage at research boundaries.
Agent messages, reasoning, tool calls, evaluator results, resource samples, costs, and stage lineage are retained as structured events for inspection and future training workflows.
Task contract
| You provide | ScienceFlow manages |
|---|---|
| Objective, constraints, and metric direction | Research lifecycle and parallel workers |
| Executable task code and required data | Isolated workspaces and resource leases |
| Evaluator and valid artifact contract | Evidence normalization and Stage admission |
| Baseline or starting implementation | Exploration, recovery, selection, and finalization |
A registered task.yaml is the source of truth for measurement and valid
artifacts. ScienceFlow does not invent a missing evaluator or silently replace required
task data.
Models, resources, and task environments
Model settings stay local in ~/.config/scienceflow/models.json (mode
600); API keys are excluded from task manifests, sessions, and reports. See the
redacted example.
The base package provides the control plane and TUI. Install task-specific ML/GPU dependencies only when needed:
python -m pip install "scienceflow[full]"==0.2.0b5
CPU and GPU allocations form task boundaries; CPU capacity is divided across workers. Model
pricing is optional—without it, the UI reports Cost —. Do not resume a
workspace with a different task, dataset, evaluator, prompt, or artifact contract.
Develop from source
git clone --branch preview https://github.com/science-learner/ScienceFlow.git
cd ScienceFlow
uv sync --python 3.12 --group dev
uv run scienceflow config init
uv run scienceflow tui --workspace "$PWD/sf_workspace"
Use uv sync --extra full --group dev only when tests require the full ML/GPU
environment.
Research
ScienceFlow uses the same Stage Gate and evaluator contract across machine-learning engineering, scientific modeling, and mathematical optimization. In the reported 24-hour, 75-task MLE-bench evaluation, it reaches 70.22 ± 1.18% Any-Medal over three runs.
Citation
If ScienceFlow supports your research, please cite:
@misc{zhao2026scienceflow,
title = {{ScienceFlow}: A Long-Horizon Agent for {ML} Research, Scientific Discovery and Beyond},
author = {Mingming Zhao and Jiqian Dong and Kangping Xu and Zadid Hasan and Chengrui Fan and Shan Jiang and Shuai Mao and Yating Ling and Linyi Zou and Tailin Zhou and Yun Hin Chan and Wenkai Zhang and Zhanhong Zhou and Guowei Huang and Hongliang Li and Wenjing Cun and Zhitang Chen and Mingxuan Yuan and Yanhui Geng},
year = {2026},
eprint = {2608.14354},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
doi = {10.48550/arXiv.2608.14354},
url = {https://arxiv.org/abs/2608.14354}
}
Metadata
Release files for scienceflow 0.2.0b5
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 | Actions |
|---|---|---|---|---|
| scienceflow-0.2.0b5.tar.gz | 1.9 MB | With provenance | Details for scienceflow-0.2.0b5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| scienceflow-0.2.0b5-py3-none-any.whl | Python 3 | none | any | Details for scienceflow-0.2.0b5-py3-none-any.whl |
Total release size: 4.0 MB
Release files / scienceflow-0.2.0b5.tar.gz
| Download URL | scienceflow-0.2.0b5.tar.gz |
|---|---|
| Size | 1.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90597ccf69e9624f207c55933b8731c3a3fc98258326ee723f31aa41c9f1abb0
|
|
BLAKE2b-256 checksum How to use checksums |
d249b10fc8eede0bc8bd4b79ef7e4e55bb83dad4ad6aadaf5db9f0e305004c2e
|
| 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 Sep 21, 2026.
Transparency logRelease files / scienceflow-0.2.0b5-py3-none-any.whl
| Download URL | scienceflow-0.2.0b5-py3-none-any.whl |
|---|---|
| Size | 2.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
069185d4d61d94414739e78cc076eb666fac8acbc18ac6f32f6e19fd334a7e0e
|
|
BLAKE2b-256 checksum How to use checksums |
00ac8cbae36c65ba259d67fda2e0e992152074e870e6ea19f37af7b6509e36f1
|
| 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 Sep 21, 2026.
Transparency logSecurity for scienceflow 0.2.0b5
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 scienceflow-0.2.0b5.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 Sep 21, 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.