Every Python script
deserves a voice.

The lightweight observability layer for Python scripts and pipelines. Stream logs, monitor progress, and visualize execution in real-time.

$ pip install stepcast
main.py
from stepcast import Pipeline

pipe = Pipeline("ETL Job")

@pipe.step("Download data", retries=2)
def download():
    print("Fetching records...")
    return [1, 2, 3]

@pipe.step("Process data")
def process(data: list):
    result = sum(data)
    print(f"Sum = {result}")
    return result

report = pipe.run()
Terminal - bash
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📡 ETL Job
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

▶ Download data...
→ Fetching records...
✅ Done (0.01s)

▶ Process data...
→ Sum = 6
✅ Done (0.00s)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 2 of 2 steps passed Total: 0.01s
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

~

Powerful out of the box

Zero required dependencies. Works on every OS. Readable by everyone.

📡

Live Output Streaming

Every print() inside a step streams to the terminal in real time. No more wondering if your script hangs during execution.

🤖

AI Narration

Uses Google Gemini to automatically summarize what your code did in plain English. Ideal for long builds or cross-team sharing.

🌐

Local Web Dashboard

Monitor your runs graphically with the built-in dashboard. Just run stepcast serve to view your entire run history locally.

🔄

Smart Retries

Built-in retry mechanism with exponential backoff and absolute timeout enforcement. Handle flaky network calls elegantly.

🎨

Rich Formatting

Beautiful spinners and vibrant colored output when the rich library is installed. Gracefully degrades on minimal terminals.

📓

First-class Notebooks

Native integration for Google Colab and Jupyter Notebooks with automatic authentication and Google Drive state saving.