Metadata-Version: 2.4
Name: scistudio
Version: 0.3.4a32
Summary: AI-native, inclusive workflow runtime for multimodal scientific data
Author: Jiazhen Zhang
License: Apache-2.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2.0
Requires-Dist: fastapi<0.142,>=0.110
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: uvicorn[standard]>=0.29
Requires-Dist: numpy>=2.1
Requires-Dist: zarr>=3.0
Requires-Dist: pyarrow>=15.0
Requires-Dist: watchdog>=4.0
Requires-Dist: typer>=0.12
Requires-Dist: xxhash>=3.4
Requires-Dist: httpx>=0.27
Requires-Dist: pyyaml>=6.0
Requires-Dist: psutil>=5.9
Requires-Dist: filelock>=3.13
Requires-Dist: ruamel.yaml>=0.18
Requires-Dist: pywinpty>=2.0; sys_platform == "win32"
Requires-Dist: platformdirs>=4.2
Requires-Dist: packaging>=24.0
Requires-Dist: fastmcp<5,>=3.1
Requires-Dist: matplotlib>=3.8
Requires-Dist: pandas>=2.2
Requires-Dist: openpyxl>=3.1
Provides-Extra: ai
Requires-Dist: anthropic>=0.30; extra == "ai"
Requires-Dist: openai>=1.30; extra == "ai"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: pytest-cov>=6.0; extra == "dev"
Requires-Dist: pytest-xdist>=3.5; extra == "dev"
Requires-Dist: pytest-timeout>=2.3; extra == "dev"
Requires-Dist: hypothesis>=6.0; extra == "dev"
Requires-Dist: ruff>=0.11; extra == "dev"
Requires-Dist: mypy>=1.15; extra == "dev"
Requires-Dist: types-PyYAML>=6.0; extra == "dev"
Requires-Dist: import-linter>=2.0; extra == "dev"
Requires-Dist: griffe>=1.7; extra == "dev"
Requires-Dist: pre-commit>=4.0; extra == "dev"
Requires-Dist: setuptools>=68.0; extra == "dev"
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: tifffile>=2024.8; extra == "dev"
Requires-Dist: vulture>=2.11; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6; extra == "docs"
Requires-Dist: mkdocstrings[python]>=0.26; extra == "docs"
Requires-Dist: griffe>=1.7; extra == "docs"
Dynamic: license-file

<div align="center">

<img src="desktop/assets/icon.png" alt="SciStudio" width="120" />

# SciStudio

**Scientific workflow bench with your AI partner.**

[![Status: alpha](https://img.shields.io/badge/status-alpha-orange.svg)]()
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-green.svg)](LICENSE)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/)
[![CI](https://github.com/jiazhenz026/SciStudio/actions/workflows/ci.yml/badge.svg)](https://github.com/jiazhenz026/SciStudio/actions/workflows/ci.yml)
[![Docs](https://img.shields.io/badge/docs-online-blue.svg)](https://jiazhenz026.github.io/SciStudio/)
[![Discord](https://img.shields.io/badge/Discord-join-5865F2.svg?logo=discord&logoColor=white)](https://discord.gg/5b7kTRU2k)

**English** | [简体中文](README.zh-CN.md)

</div>

---

<div align="center">

<!-- Drop the home-page workflow canvas screenshot at docs/assets/scistudio-canvas.png -->
<img src="docs/assets/scistudio-canvas.png" alt="SciStudio workflow canvas" width="820" />

</div>

## What is SciStudio?

SciStudio is an interactive workflow orchestration system for multimodal scientific data analysis. You and your AI partner works together on a same canvas interactively. It starts from spatial multi-omics and is progressively expanding to other data modalities. SciStudio lets researchers connect scientific software, AI agents, scripts and multimodal data into one visual workflow.

- **Typed data, one graph** — blocks exchange typed data and flow through the
  same workflow, so every step stays connected end to end.
- **View your data in your way** - Customize the way you preview your data, customize your figure with plot cards.
- **Bring your existing tools** — run R or Python scripts and
  launch desktop apps like Fiji as ordinary blocks in the flow.
- **AI-native** — a built-in assistant (Claude Code or Codex) helps you build
  workflows, author new blocks, and inspect your data.
- **Extensible** — add your own blocks, data types, and plots, and share them as
  installable packages.

## Install

### For users

Download the latest SciStudio desktop app from the
[**Releases page**](https://github.com/jiazhenz026/SciStudio/releases) — a macOS
`.dmg` or a Windows installer. Open it and you're ready; Python and all
dependencies are bundled, so there is nothing else to set up.

Then follow the [**Quickstart**](https://jiazhenz026.github.io/SciStudio/user-guide/getting-started.html).

### For servers

```bash
pip install scistudio
```

The wheel bundles the web frontend. Every desktop update is also a PyPI release
of the same build: `0.3.4-alpha-build0029` is `scistudio==0.3.4a29`. Once a
stable release exists, add `--pre` to get the newest alpha.

### For developers (run from source)

```bash
git clone https://github.com/jiazhenz026/SciStudio.git
cd SciStudio

# Python backend (use a conda env or a virtualenv)
python -m pip install ".[dev]"

# Frontend dependencies
npm --prefix frontend install

# Run the desktop app against your source:
# Vite HMR for the frontend + the SciStudio backend + Electron.
npm --prefix desktop run dev
```

Frontend edits hot-reload; restart the command to pick up backend changes. See
[`desktop/README.md`](desktop/README.md) for packaging the app (`.dmg` /
Windows installer).

## Documentation

Full documentation lives at **[jiazhenz026.github.io/SciStudio](https://jiazhenz026.github.io/SciStudio/)**:

- [**User Guide**](https://jiazhenz026.github.io/SciStudio/user-guide/README.html)
  — building and running workflows, previewing data, history and branches, the
  AI assistant, and writing your own blocks, types, and plots.
- [**Quickstart**](https://jiazhenz026.github.io/SciStudio/user-guide/getting-started.html)
  — from a fresh install to your first running workflow.
- [**API Reference**](https://jiazhenz026.github.io/SciStudio/user-guide/api-reference/index.html)
  — the public API you can rely on, with signatures and stability tiers.
- [**Package Development**](https://jiazhenz026.github.io/SciStudio/package-development/index.html)
  — building a distributable SciStudio package (blocks, types, previewers).
- [**Architecture**](docs/architecture/ARCHITECTURE.md) — how SciStudio is built
  and why.

The User Guide and API Reference are the same docs SciStudio provisions into each
project, so what you read online matches what ships with the app.

## Contributing

Contributions are welcome — bug reports, feature ideas, docs, and code. Start by
reading [**CONTRIBUTING.md**](CONTRIBUTING.md), and see [`AGENTS.md`](AGENTS.md)
for the full development workflow (branch, issue, gate, tests, docs, review).

To build and ship your own blocks (rather than change the core), follow the
[Package Development guide](https://jiazhenz026.github.io/SciStudio/package-development/index.html).

## Community

Questions, feedback, and bug reports are very welcome while SciStudio is in alpha:

- [Discord](https://discord.gg/5b7kTRU2k)
- [GitHub Issues](https://github.com/jiazhenz026/SciStudio/issues)

## Status

SciStudio is in **alpha** and under active development. Interfaces and APIs may
change between releases; the [API Reference](https://jiazhenz026.github.io/SciStudio/user-guide/api-reference/index.html)
marks the stability tier of each public symbol.

## License

SciStudio is released under the Apache License 2.0. See [LICENSE](LICENSE) for
the full text.
