Skip to main content

AI-powered content framework for Streamlit — create presentations, courses, and web-books with Claude or Cursor, no coding required.

Project description

StreamTeX

StreamTeX

Support us!

PyPI version Python License: BUSL-1.1 CI Works with Claude Code Works with Cursor Sponsor Best on Chrome

AI-powered content framework for Streamlit — create presentations, courses, and web-books with Claude or Cursor. No coding required.

StreamTeX combines a modular block architecture with AI-powered workflows. Describe your project in natural language, and let Claude or Cursor build it — or use the Python API for full control.

Getting Started

StreamTeX supports 4 installation levels. Pick the one that fits your needs.

Quick Start (minimal, no workspace)

From zero to a running project in 3 commands:

uv tool install "streamtex[cli]" -U
stx project new my-project
cd my-project && uv sync && uv run streamlit run book.py

Standard Setup (recommended)

Full workspace with rich templates, documentation, and Claude AI profiles:

uv tool install "streamtex[cli]" -U
mkdir streamtex-dev && cd streamtex-dev
stx install
stx update
stx project new my-project --template project   # CLI templates: project, collection, slides
cd projects/my-project
stx claude install project .
uv run streamlit run book.py

Full Setup (all optional features)

Everything above, plus AI image generation, PDF export, and live inspector:

uv tool install "streamtex[cli]" -U
mkdir streamtex-dev && cd streamtex-dev
stx install --preset power --project my-project --template project
stx update
cd projects/my-project
uv run streamlit run book.py

The power preset automatically installs PDF export, AI image generation, and the live inspector into your project. To add Playwright for PDF export, run:

uv run playwright install chromium

Each uv add installs optional features into the current project's environment. Pick only what you need — or install individual AI providers:

uv add "streamtex[ai-openai]"    # OpenAI only
uv add "streamtex[ai-google]"    # Google Imagen only
uv add "streamtex[ai-fal]"       # fal.ai only

AI image generation requires API keys in your .env file: STX_OPENAI_API_KEY, STX_GOOGLE_AI_KEY, STX_FAL_KEY (only the providers you use). See the AI Guide for configuration details.

Prerequisites: Python 3.11+, git, uv.

Zero-Code with Claude or Cursor

Install StreamTeX and a Claude AI profile, then let the AI build your project:

uv tool install "streamtex[cli]" -U
mkdir streamtex-dev && cd streamtex-dev
stx install && stx update
stx project new my-project
cd projects/my-project
stx claude install project .

Open in Claude Code or Cursor, then use slash commands:

/project:project-init
> "Create a Docker course with 12 slides, dark theme,
>  table of contents and page navigation"

The AI agent designs the project structure, proposes it for your approval, and generates all files — blocks, styles, book.py — ready to run:

uv run streamlit run book.py

See the AI Guide for all commands, agents, and workflows.

Code-First with Python

import streamlit as st
import streamtex as sx
from streamtex.styles.core import Style

st.set_page_config(page_title="My Book", layout="wide")

style = Style("color: navy; font-size: 1.2em;", "my-style")
sx.st_write(style, "Hello StreamTeX!")
uv run streamlit run app.py

Manual Installation (without stx CLI)

pip install streamtex
git clone https://github.com/nicolasguelfi/streamtex-claude.git
mkdir my-project && cd my-project
python ../streamtex-claude/install.py project .
uv run streamlit run book.py

Workspace Presets

The stx install command supports 5 presets:

Preset Repos Extras (with --project) Use case
basic none pdf Workspace only, upgrade later
user streamtex-claude pdf + Claude AI profiles
standard (default) streamtex-docs + streamtex-claude pdf, ai + rich templates + local docs
power streamtex-docs + streamtex-claude pdf, ai, inspector + all extras, requires --project
developer all 3 repos pdf, ai, inspector + library source + editable install
stx install --preset user       # Claude profiles only
stx install                     # standard (default)
stx install --preset developer  # full developer setup
stx install --preset power --project my-project  # all extras with a project

Upgrade an existing workspace to a higher preset:

stx install --preset developer
stx update

Optional Extras

StreamTeX uses optional dependency groups so you install only what you need:

uv add "streamtex[ai]"           # AI image generation (OpenAI + Google Imagen + fal.ai)
uv add "streamtex[ai-openai]"    # AI images — OpenAI only
uv add "streamtex[ai-google]"    # AI images — Google Imagen only
uv add "streamtex[ai-fal]"       # AI images — fal.ai only
uv add "streamtex[pdf]"          # PDF export via Playwright
uv add "streamtex[inspector]"    # Live code inspector sidebar
uv add "streamtex[cli]"          # stx CLI (already installed as a global tool above)

See the AI Image Generation section in the AI Guide for configuration and usage.

AI-Powered Features

StreamTeX ships with 22 slash commands, 4 specialized agents, and 10 block templates for AI-assisted development.

Project Creation & Customization

Command What it does
/project:project-init Create a complete project from a natural-language description
/project:project-customize Change theme, typography, navigation without editing code
/project:course-generate Generate book.py structure from a CSV block list
/project:collection-new Create a multi-project hub

Design & Content

Command What it does
/designer:slide-new Create slides from descriptions
/designer:slide-audit Validate design rules (font sizes, line lengths, spacing)
/designer:slide-fix Auto-fix design violations
/designer:style-audit Check styles for consistency

Migration

Command What it does
/migration:html-migrate Convert HTML (Google Docs) to StreamTeX blocks
/migration:html-convert-batch Batch conversion of multiple files
/migration:conversion-audit Audit conversion quality

AI Agents

Agent Role
Project Architect Designs project structure from natural language
Slide Designer Creates pedagogically structured, polished slides
Slide Reviewer Reviews and validates completed slides
Presentation Designer Specialist for live projection (large fonts, minimal text)

See the AI Guide for the complete reference.

Claude & Cursor Integration

StreamTeX provides installable AI profiles via streamtex-claude:

Profile Audience Commands Agents
project Content creators 19 3
presentation Live presenters +3 +1
documentation Manual authors 10 2
library Library developers 3

Install a profile:

stx claude install project ./my-project

Features

  • Styled textst_write with tuple support for inline mixed-style text
  • CSS Grid layoutsst_grid with responsive columns
  • Block containersst_block / st_span context managers
  • Listsst_list with ul/ol, custom bullets, centered alignment
  • Imagesst_image with base64 encoding and MIME detection
  • AI image generationst_ai_image / st_ai_image_widget with OpenAI, Google Imagen, fal.ai
  • Code blocksst_code with Pygments syntax highlighting
  • Diagrams — Mermaid, PlantUML, TikZ with pan/zoom
  • LaTeX — math formulas and full documents
  • Bibliography — BibTeX/RIS/CSL-JSON import, citations, formatted references
  • Book orchestrationst_book with paginated and continuous modes
  • Table of Contents — auto-numbering and anchor navigation
  • Navigation markers — slide-like PageUp/PageDown navigation
  • Collections — multi-project hubs with TOML configuration
  • HTML export — self-contained dual-rendering pipeline
  • Style compositionStyle objects with + / - operators
  • Zoom controls — CSS-based width and zoom adjustments
  • Block inspector — live code editor in sidebar (optional)
  • Block helpers — DI-injectable helpers with 3 usage modes

Documentation

Online manuals (read & explore)

Examples (source code)

The manuals are also available as source code — clone and run them locally to study the examples:

git clone https://github.com/nicolasguelfi/streamtex-docs
cd streamtex-docs
uv sync
uv run streamlit run manuals/stx_manual_intro/book.py

See streamtex-docs for the full list of example projects.

Reference

Project Structure

A StreamTeX project follows this layout:

my-project/
├── .claude/                     # AI profiles (commands, skills, agents)
├── .streamlit/
│   └── config.toml              # enableStaticServing = true
├── blocks/
│   ├── __init__.py              # Block registry
│   └── bck_intro.py             # Your blocks (build() function each)
├── static/
│   └── images/                  # Static assets
├── custom/
│   └── styles.py                # Project-specific styles
└── book.py                      # Entry point with st_book()

Installation

# Install or upgrade the CLI as a global tool
uv tool install "streamtex[cli]" -U

# Or as a project dependency
uv add streamtex

Optional extras:

uv add "streamtex[cli]"          # stx CLI commands
uv add "streamtex[inspector]"    # Live code inspector sidebar
uv add "streamtex[ai]"           # AI image generation (OpenAI + Google Imagen + fal.ai)
uv add "streamtex[ai-openai]"    # AI images — OpenAI only
uv add "streamtex[ai-google]"    # AI images — Google Imagen only
uv add "streamtex[ai-fal]"       # AI images — fal.ai only
uv add "streamtex[pdf]"          # PDF export via Playwright

Prerequisites

  • Python >= 3.11
  • uv (recommended package manager)
  • git

Project Configuration

StreamTeX projects using from streamtex import * require this ruff config in pyproject.toml (automatically generated by stx project new):

[tool.ruff.lint]
ignore = ["F403", "F405", "E701", "E741"]

If your project uses [tool.uv.sources] for editable installs, set UV_NO_SOURCES=1 in CI environments so uv resolves from PyPI instead of local paths.

Keeping Up to Date

Update the CLI

The stx CLI is installed as a global tool with its own frozen copy of the library. You must upgrade it explicitly after each release:

uv tool install "streamtex[cli]" -U

Update your workspace

cd streamtex-dev/
stx update                   # pulls repos, syncs deps, updates profiles

Fine-grained control:

stx update --skip-sync      # skip uv sync
stx update --skip-profiles  # skip Claude profile update

Check workspace status

stx status                   # show preset, repos, profiles, project list

Upgrade a project

stx project upgrade          # upgrade project deps and extras to match current preset

Update a standalone project (no workspace)

cd my-project/
uv add streamtex --upgrade   # update the library dependency

Use /stx-guide update inside Claude Code for guided assistance.

Report Issues & Feedback

Found a bug? Have a suggestion? We'd love to hear from you.

  • Bug report: Open a bug report — include the error message, steps to reproduce, and your environment
  • Feature request: Request a feature — describe the problem and your proposed solution
  • Questions & discussions: GitHub Discussions — ask questions, share ideas, show your projects

When reporting a bug, please include:

  1. The full error traceback (copy-paste from the terminal)
  2. The command you ran (e.g. stx project new, /stx-designer:init, uv run streamlit run book.py)
  3. Your StreamTeX version (uv pip show streamtex | grep Version)

Contributing

See CONTRIBUTING.md for guidelines on code, content, and AI profile contributions.

Support the Project

If StreamTeX is useful to you, consider sponsoring the project to help maintain and improve it.

License

BUSL-1.1 — Copyright (c) 2026 Nicolas Guelfi Converts to Apache 2.0 on 2030-11-29.

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

streamtex-0.4.10.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

streamtex-0.4.10-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file streamtex-0.4.10.tar.gz.

File metadata

  • Download URL: streamtex-0.4.10.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for streamtex-0.4.10.tar.gz
Algorithm Hash digest
SHA256 a2d8ef77fc6485cf3be8613dbb019fb412cdcf64774f11366d0c58259be8fea3
MD5 175891be28714d13f76f67368893b9b6
BLAKE2b-256 cd5ed9b9ea49db7c18f51fa0339997952574d28ca062db487babd2527b51a2be

See more details on using hashes here.

File details

Details for the file streamtex-0.4.10-py3-none-any.whl.

File metadata

  • Download URL: streamtex-0.4.10-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for streamtex-0.4.10-py3-none-any.whl
Algorithm Hash digest
SHA256 541bfe859580c44374475844000c6b0ba05c478b648d6c9ac7060f5d9c41c686
MD5 fdbb44e9d300bc9707fc7861f24f3c66
BLAKE2b-256 a49f54ac1e2c955acee6110cd8574d2d504af53ba9994736f4088735cccffdb9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page