A comprehensive Python library for scientific computing and data analysis
Project description
scitex.ai · Read the Docs · pip install scitex
SciTeX — Modular Python Toolkit for Researchers and AI Agents
Four Freedoms for Research
- The freedom to run your research anywhere — your machine, your terms.
- The freedom to study how every step works — from raw data to final manuscript.
- The freedom to redistribute your workflows, not just your papers.
- The freedom to modify any module and share improvements with the community.
AGPL-3.0 — because research infrastructure deserves the same freedoms as the software it runs on.
🎬 Demo
40 min, zero human intervention — AI agent conducts full research pipeline:
Literature search → Data analysis → Statistics → Figures → 21-page manuscript → Peer review simulation
📦 Installation
uv pip install scitex # Core (minimal)
uv pip install scitex[plt,stats,scholar] # Typical research setup
uv pip install scitex[all] # Recommended: Full installation
⚙️ Configuration
Modular environment configuration via .env.d/:
# 1. Copy examples
cp -r .env.d.examples .env.d
# 2. Edit with your credentials
$EDITOR .env.d/
# 3. Source in shell (~/.bashrc or ~/.zshrc)
source /path/to/.env.d/entry.src
Structure:
.env.d/
├── entry.src # Single entry point
├── 00_scitex.env # Base settings (SCITEX_DIR)
├── 00_crossref-local.env # CrossRef database
├── 00_figrecipe.env # Plotting config
├── 01_scholar.env # OpenAthens, API keys
├── 01_audio.env # TTS backends
└── ... # Per-module configs
Three Interfaces
🐍 Python API for Humans and AI Agents
@stx.session — Reproducible Experiment Tracking
import scitex as stx
@stx.session
def main(filename="demo.jpg"):
fig, ax = stx.plt.subplots()
ax.plot_line(t, signal)
ax.set_xyt("Time (s)", "Amplitude", "Title")
stx.io.save(fig, filename)
return 0
Output:
script_out/FINISHED_SUCCESS/2025-01-08_12-30-00_AbC1/
├── demo.jpg # Figure with embedded metadata
├── demo.csv # Auto-exported plot data
├── CONFIGS/CONFIG.yaml # Reproducible parameters
└── logs/{stdout,stderr}.log # Execution logs
stx.io — Universal File I/O (30+ formats)
stx.io.save(df, "output.csv")
stx.io.save(fig, "output.jpg")
df = stx.io.load("output.csv")
stx.stats — Publication-Ready Statistics (23 tests)
result = stx.stats.test_ttest_ind(group1, group2, return_as="dataframe")
# Includes: p-value, effect size, CI, normality check, power
🖥️ CLI Commands for Humans and AI Agents
scitex --help-recursive # Show all commands
scitex scholar fetch "10.1038/..." # Download paper by DOI
scitex scholar bibtex refs.bib # Enrich BibTeX
scitex stats recommend # Suggest statistical tests
scitex audio speak "Done" # Text-to-speech
scitex capture snap # Screenshot
# List available APIs and tools
scitex list-python-apis # List all Python APIs (210 items)
scitex mcp list-tools # List all MCP tools (120+ tools)
scitex introspect api scitex.stats # List APIs for specific module
🔧 MCP Tools — 120+ tools for AI Agents
Turn AI agents into autonomous scientific researchers.
Typical workflow: Scholar (find papers) → Stats (analyze) → Plt (visualize) → Writer (manuscript) → Capture (verify)
| Category | Tools | Description |
|---|---|---|
| writer | 28 | LaTeX manuscript compilation |
| scholar | 23 | PDF download, metadata enrichment |
| capture | 12 | Screen monitoring and capture |
| introspect | 12 | Python code introspection |
| audio | 10 | Text-to-speech, audio playback |
| stats | 10 | Automated statistical testing |
| plt | 9 | Matplotlib figure creation |
| diagram | 9 | Mermaid and Graphviz diagrams |
| dataset | 8 | Scientific dataset access |
| social | 7 | Social media posting |
| canvas | 7 | Scientific figure canvas |
| template | 6 | Project scaffolding |
| verify | 6 | Reproducibility verification |
| dev | 6 | Ecosystem version management |
| ui | 5 | Notifications |
| linter | 3 | Code pattern checking |
Claude Desktop (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"scitex": {
"command": "scitex",
"args": ["mcp", "start"],
"env": {
"SCITEX_ENV_SRC": "${SCITEX_ENV_SRC}"
}
}
}
}
🧩 Standalone Packages
SciTeX integrates several standalone packages that can be used independently:
| Package | scitex Module | Description |
|---|---|---|
| figrecipe | scitex.plt |
Publication-ready matplotlib figures |
| crossref-local | scitex.scholar.crossref_scitex |
Local CrossRef database (167M+ papers) |
| openalex-local | scitex.scholar.openalex_scitex |
Local OpenAlex database (250M+ papers) |
| socialia | scitex.social |
Social media posting (Twitter, LinkedIn) |
| scitex-writer | scitex.writer |
LaTeX manuscript compilation |
| scitex-dataset | scitex.dataset |
Scientific dataset access |
Each package works standalone or as part of scitex:
pip install figrecipe # Use independently
pip install scitex[plt] # Or via scitex
📖 Documentation
- Read the Docs: Complete API reference
- Examples: Usage examples and demonstrations
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scitex-2.20.0.tar.gz.
File metadata
- Download URL: scitex-2.20.0.tar.gz
- Upload date:
- Size: 9.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e03b1e59a4b438a6f594cce273e75b365a755f00496f5f5145f584961508e958
|
|
| MD5 |
df94da374490956bf0b4dc63edf6a385
|
|
| BLAKE2b-256 |
88c8590a9f4db519ff344d4dfe747e12969fed962575aa95988f89ad54c27f85
|
Provenance
The following attestation bundles were made for scitex-2.20.0.tar.gz:
Publisher:
publish-pypi.yml on ywatanabe1989/scitex-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex-2.20.0.tar.gz -
Subject digest:
e03b1e59a4b438a6f594cce273e75b365a755f00496f5f5145f584961508e958 - Sigstore transparency entry: 993613637
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-python@5765007cbaf3dd2dfe0b39fc513a18d134aaaf66 -
Branch / Tag:
refs/tags/v2.20.0 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@5765007cbaf3dd2dfe0b39fc513a18d134aaaf66 -
Trigger Event:
release
-
Statement type:
File details
Details for the file scitex-2.20.0-py3-none-any.whl.
File metadata
- Download URL: scitex-2.20.0-py3-none-any.whl
- Upload date:
- Size: 4.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2f88e397bdfcaef65522e4ebdce0a9756c300b0dbc8c2ccaf5a96fc706da808
|
|
| MD5 |
e04e34909e21ae0b17306cc841f9faa3
|
|
| BLAKE2b-256 |
51983ce51cc99a2d1b1768320e77edb778bbb59cca6addadfa99f10cf4a34c44
|
Provenance
The following attestation bundles were made for scitex-2.20.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on ywatanabe1989/scitex-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitex-2.20.0-py3-none-any.whl -
Subject digest:
d2f88e397bdfcaef65522e4ebdce0a9756c300b0dbc8c2ccaf5a96fc706da808 - Sigstore transparency entry: 993613711
- Sigstore integration time:
-
Permalink:
ywatanabe1989/scitex-python@5765007cbaf3dd2dfe0b39fc513a18d134aaaf66 -
Branch / Tag:
refs/tags/v2.20.0 - Owner: https://github.com/ywatanabe1989
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@5765007cbaf3dd2dfe0b39fc513a18d134aaaf66 -
Trigger Event:
release
-
Statement type: