Quick Start
Three Interfaces
SciTeX exposes the same capabilities through three interfaces: Python API, CLI commands, and MCP tools for AI agents.
Python API
@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
stx.plt – Publication-Ready Figures
fig, ax = stx.plt.subplots()
ax.plot_line(x, y, label="signal")
ax.set_xyt("Time (s)", "Amplitude", "Sine Wave")
stx.io.save(fig, "plot.png")
# Creates: plot.png + plot.csv + plot.yaml (recipe for reproduction)
stx.scholar – Literature Management
# Enrich BibTeX with abstracts, DOIs, citation counts
stx.scholar.enrich_bibtex("refs.bib", add_abstracts=True)
CLI Commands
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
MCP Tools (120+ tools for AI agents)
Turn AI agents into autonomous scientific researchers.
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 |
Neuroimaging/physiology datasets |
social |
7 |
Social media posting |
canvas |
7 |
Figure composition |
template |
6 |
Project scaffolding |
verify |
6 |
Reproducibility verification |
dev |
6 |
Version checking |
ui |
5 |
Notifications |
linter |
3 |
Code pattern checking |
Claude Code Setup — add .mcp.json to your project root. Use SCITEX_ENV_SRC
to load all configuration from a .src file — this keeps .mcp.json static
across environments:
{
"mcpServers": {
"scitex": {
"command": "scitex",
"args": ["mcp", "start"],
"env": {
"SCITEX_ENV_SRC": "${SCITEX_ENV_SRC}"
}
}
}
}
Switch environments via your shell profile:
# Local machine
export SCITEX_ENV_SRC=~/.scitex/scitex/local.src
# Remote server
export SCITEX_ENV_SRC=~/.scitex/scitex/remote.src
Generate a template .src file:
scitex env-template -o ~/.scitex/scitex/local.src
Or install globally:
scitex mcp install
Complete Example
A typical research script combining session, I/O, plotting, and statistics:
import scitex as stx
@stx.session
def main(
n=200,
noise=0.1,
CONFIG=stx.INJECTED,
plt=stx.INJECTED,
logger=stx.INJECTED,
):
"""Analyze noisy sine wave."""
import numpy as np
# Generate data
x = np.linspace(0, 4 * np.pi, n)
y_clean = np.sin(x)
y_noisy = y_clean + np.random.normal(0, noise, n)
# Save raw data
stx.io.save({"x": x, "y_clean": y_clean, "y_noisy": y_noisy}, "data.npz")
# Visualize
fig, ax = plt.subplots()
ax.plot_scatter(x, y_noisy, alpha=0.3, label="Noisy")
ax.plot_line(x, y_clean, color="red", label="True")
ax.set_xyt("x", "y", f"Sine Wave (noise={noise})")
stx.io.save(fig, "sine.png")
# Correlation between noisy and clean
result = stx.stats.test_pearson(y_clean, y_noisy)
logger.info(f"Pearson r={result['effect_size']:.3f}, p={result['pvalue']:.1e}")
# Save summary
stx.io.save({"r": result["effect_size"], "p": result["pvalue"]}, "stats.yaml")
return 0
Next Steps
Core Concepts – Architecture and design principles
Module Overview – Detailed module documentation
Plot Gallery – Plot examples