Skip to main content

SciTeX Live Paper (scitex-live-paper)

SciTeX

The web-readable foundation for live, AI-verifiable research papers.

Full Documentation · uv pip install scitex-live-paper[all]

pypi python docs

tests cov


Problem and Solution

# Problem Solution
1 A PDF is dead — you cannot click a claim, see the code that produced it, re-run it, or check provenance. Live-paper renderer — turns an accepted manuscript bundle into a page where every claim is hash-linked to the executable artefact that produced it.
2 Verification rots — a badge stamped at acceptance says nothing about whether the claims still hold after the code moved on. Live re-verify (M2 shipped) — per-claim and bulk verify endpoints call scitex-clew against the live project so the badge tracks a continuous re-review cycle.
3 Claim-model drift — every consumer re-defines Claim slightly differently until nothing interoperates. Deliberately thin consumer — the claim model is owned upstream by scitex-clew; this package reads it, never extends it.

Quick Start

from scitex_live_paper import bundle

loaded = bundle.load("./bundle/")
print(len(loaded.claims), "claims,", loaded.paper_state.stage)
# Render the static site (viewer + claims sidebar + DAG + index)
scitex-live-paper render ./bundle/ --out ./site/

For a runnable walk-through see examples/example_live_paper.py.

Demo

A runnable load-and-summarise demo lives in examples/example_live_paper.py (run every example with examples/00_run_all.sh):

python examples/example_live_paper.py
# bundle: bundle-min
# claims: 3
# manuscript: manuscript.pdf
# paper stage: preprint

Installation

uv pip install "scitex-live-paper[all]"
pip install "scitex-live-paper[all]"
pip install scitex-live-paper           # CLI + library only

Recommended: uv pip install scitex-live-paper[all] — uv's Rust resolver handles the SciTeX dep set in 1-3 min where pip's serial backtracker can take 30+ min on the full extras. Plain pip install still works, as shown above.

Extras matrix
Extra Pulls For
django django>=4.2 standalone serve + scitex-hub mount
clew scitex-clew>=0.1.0 live re-verify (M2)
mcp fastmcp>=2.0 MCP server for agents
test pytest>=8.0 test suite
all everything above the one install line operators need

Table 1. Optional-dependency extras.

Without [clew] the M2 api/claim/verify and api/claims/verify endpoints stay reachable but degrade gracefully (every per-claim response carries fallback: true + a clear reason); install [clew] to get the real verify_claim() call.

Working on scitex-live-paper itself? See Dev quickstart — editable install, render the in-tree fixture bundle, bundle-layout contract, and where the Django app pattern is mirrored from.

Architecture

scitex-live-paper is deliberately thin. It is a consumer / rendering layer, not an authority on claims. If a feature requires extending the claim or DAG model, the change belongs upstream in scitex-clew, not here.

flowchart TD
    bundle["accepted manuscript bundle<br/>(LaTeX + claims.json + DAG + figz + provenance)"] --> lp["scitex-live-paper<br/>(thin renderer)"]
    lp --> viewer["viewer (PDF.js)"]
    lp --> claims["claims panel"]
    lp --> dag["DAG nav (mermaid)"]
    lp --> badge["badge (verification status)"]

Figure 1. Bundle in, four surfaces out — the package renders, upstream owns the models.

Concern Owner This package's role
Claim data model, VerificationStatus, DAG scitex-clew reads only — never defines, never mutates
Hash-linked provenance graph scitex-clew reads clew.dag() / clew.verify_claim() outputs
Manuscript bundle layout scitex-writer ingests the bundle as-is
Acceptance + re-review verdicts scitex-agentic-journal receives accepted bundle, surfaces badge
Auth / Django app surface scitex-hub mounted on /viewer-v2/

Table 2. Ownership boundaries — who owns what.

Roadmap

Milestone Status Goal
M1 shipped Read-only static-site renderer for an accepted bundle (CLI)
M2 shipped Live re-verify (api/claim/verify + api/claims/verify + SPA Re-verify button) — see runbook
M3 in flight (hub-side) Mount as Django app on scitex-hub /apps/live-paper/<paper_id>/
M4 pending Re-review badge fed from scitex-agentic-journal
M5 future Public DOI landing page (sandbox → Zenodo → JaLC)

Table 3. Milestone roadmap.

Issues for M1 are filed in this repo — see open issues.

3 Interfaces

Python API (primary)
from scitex_live_paper import BundleContext, BundleSource, PaperState, bundle

loaded = bundle.load("./bundle/")
CLI

scitex-live-paper render ./bundle/ --out ./site/ emits the static site; scitex-live-paper serve ./bundle/ boots the standalone Django dev server (requires the [django] extra); python -m scitex_live_paper works too.

Django app

Mounted under scitex-hub at /viewer-v2/ (M3): SPA shell + <path:endpoint> API dispatcher backed by the HANDLERS registry. Host apps inject per-request bundle resolution via scitex_live_paper.mount(resolver=...).

Environment Variables

Variable Set by Read by Purpose
SCITEX_LIVE_PAPER_BUNDLE serve CLI / operator bundle cache bundle path pinned for the process
SCITEX_CLEW_DB_PATH — (retired) — retired — clew has no database file
SCITEX_STORE_DSN operator scitex-clew clew's store switch (owned by clew, not this package)

Table 4. Environment variables referenced by this package.

Part of SciTeX

scitex-live-paper is part of SciTeX.

Upstream dependencies (this package consumes them; it does not define their models): scitex-clew (claim model, DAG, verification), scitex-writer (bundle layout + Django viewer pattern), scitex-hub (Django host, auth), scitex-ui (viewer widgets). Producer: scitex-agentic-journal (accepted bundle + re-review verdicts).

Four Freedoms for Research

  1. The freedom to run your research anywhere — your machine, your terms.
  2. The freedom to study how every step works — from raw data to final manuscript.
  3. The freedom to redistribute your workflows, not just your papers.
  4. The freedom to modify any module and share improvements with the community.

AGPL-3.0 — because we believe research infrastructure deserves the same freedoms as the software it runs on.


License

AGPL-3.0-only. See LICENSE.


SciTeX

Metadata

Release files for scitex-live-paper 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scitex-live-paper 0.1.1
File Size Uploaded Provenance
scitex_live_paper-0.1.1.tar.gz 3.6 MB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for scitex-live-paper 0.1.1
File Interpreter ABI Platform
scitex_live_paper-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 6.7 MB

Release files / scitex_live_paper-0.1.1.tar.gz

Download URL scitex_live_paper-0.1.1.tar.gz
Size 3.6 MB
Tags Source
SHA-256 checksum
How to use checksums
52154e659b4a4885c1af23b5c00cbd34479ac0ca0f1a9bf7cdfef198f19a2085
BLAKE2b-256 checksum
How to use checksums
c9865943d534ec24f2df46a4c0c9de3d9cbfe455a903653b26c1b064f27bfcc9
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 Oct 19, 2026.

Transparency log

Release files / scitex_live_paper-0.1.1-py3-none-any.whl

Download URL scitex_live_paper-0.1.1-py3-none-any.whl
Size 3.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
31a93d979bdb5644010f46c99c60f5993953dcc77c26a3be328f5206d33ecdcb
BLAKE2b-256 checksum
How to use checksums
e9bd078482dc23edbba2b7c3aa24cdf8b4d0af36e9813bca6422059a5f2ed5f5
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 Oct 19, 2026.

Transparency log

Security for scitex-live-paper 0.1.1

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.

Select from 2 files

Attestation for scitex_live_paper-0.1.1.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 Oct 19, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page