thcThought Control

Streamlit

Python scripts become data apps by rerunning top to bottom.

streamlit.io ↗repo ↗docs ↗st.fragment (run_every) ↗2026 release notes ↗Build Streamlit apps with agent skills (Snowflake) ↗AppTest (headless testing) ↗

license
Apache-2.0; owned by Snowflake. Streamlit in Snowflake and Community Cloud are hosted commercial/free offerings.
language
Python (server), TypeScript/React (front end)
backing
Snowflake (acquired March 2022 for a reported $800M, TechCrunch).
stars
45,927 (as of 2026-10-09)
downloads
4,862,258/week PyPI streamlit (pypistats, 2026-10-09)
latest release
1.65.0, 2026-10-02
first release
2018-03
complement

Streamlit owns browser dashboards authored as code; scene targets live agent-operated terminal UIs, and should learn from its agent-skills packaging.

Complement it: it does a neighbouring job; interoperate.

the steelman: the best honest case for it

Streamlit made the dashboard a twenty-line Python script, and that is exactly the shape an LLM writes best. The rerun model means there is no callback graph to get wrong: the UI is a pure function of the script and session state, which is why generated apps usually work on the first try. It is the default target for 'make me a dashboard' across ChatGPT, Claude and Snowflake's own Cortex Code, and Streamlit now ships agent skills inside the package so coding agents learn current APIs. Fragments with run_every give live dashboards without websockets plumbing, AppTest gives headless verification, and Snowflake's backing means a two-week release train and enterprise hosting. Nearly 5M weekly downloads say the model won.

scores
datadriveseeedittimeratetermpxteachmatureopen
UI as data3 scene 5Declarative Python; the wire form is a protobuf element tree, not an authored value.
Agent can drive it2 scene 5Official agent skills for code generation plus AppTest; no live-control protocol.
Agent can see it3 scene 5Structured via AppTest; screenshots for a live browser session.
Small, targeted edits2 scene 5Hot reload on script edit; coarse.
Time travel0 scene 0
Live data rate2 scene 5run_every polling reruns; seconds-scale.
Terminal native0 scene 5
Pixel graphics4 scene 4
Teaching2 scene 3
Maturity5 scene 1
Openness4 scene 4Apache-2.0 under Snowflake control.

Streamlit scene now scene planned

how agents use it

How

Code generation is the main path: Streamlit bundles 'developing-with-streamlit' agent skills (17 sub-skills, app and theme templates) in the pip package; Snowflake Cortex Code generates Streamlit-in-Snowflake apps. Community MCP wrappers exist (e.g. dkedar7/streamlit-mcp, 2 stars) but nothing official. AppTest lets an agent run and inspect an app headlessly.

Wiring it in

Low for generation (write a .py, `streamlit run`); higher for driving a live session (browser automation or AppTest).

Seeing the result

AppTest exposes elements and values; live sessions need screenshots/DOM.

Small edits

Edit the script and the app hot-reloads; no id-addressed patches to a running UI.

History

None for the UI; reruns are not recorded.

In short

The most LLM-friendly code target for dashboards, with official agent skills, but agents author code rather than operate a live UI.

architecture

An app is a Python script; every interaction reruns it top to bottom, and the server streams a delta-encoded element tree (protobuf over WebSocket) to a React front end that reconciles it. State lives in st.session_state and caches (st.cache_data/resource). Fragments (@st.fragment) rerun only part of the page, on widget interaction or on a timer via run_every, which is the mechanism for live dashboards. Since 1.57 the server is Starlette/Uvicorn, exposed programmatically via st.App. Custom components extend the front end.

performance

No published update-rate or throughput numbers. Live updates are polling reruns (run_every), suited to seconds-scale refresh, not streaming ticks.

adoption and upkeep

Adoption

The de facto Python data-app framework; homepage claims 'over 90% of Fortune 50' and ~19.4M monthly downloads. The usual target when an LLM is asked for a quick dashboard.

Used by: Snowflake (Streamlit in Snowflake), Cortex Code CLI users

Maintainability

Very active, corporate-funded, fast release train.

Releases: ~every 2 weeks: 1.61.1 2026-08-05, 1.62.0 2026-08-19, 1.63.0 2026-09-01, 1.64.0 2026-09-15, 1.65.0 2026-10-02. · Contributors: ~338 (GitHub, incl. anonymous) · Recent: 1,002 PRs merged since 2026-07-11 (GitHub search). · Bus factor: high: funded Snowflake team, many committers.

weaknesses
and thc-scene

Overlap

Agent-built dashboards bound to data, refreshed on a timer, with a pure 'state to view' model.

What scene would be reinventing

The 'dashboard from a few declarative lines' experience and its huge catalog of chart/table/metric widgets; Streamlit is what an agent reaches for by default and it already works.

The gap it leaves

A long-lived UI an agent patches by id at high rate, reads back as structured state and screen text, in the terminal; Streamlit regenerates code and reruns scripts in a browser.

What to borrow

  • Ship agent skills inside the package and offer to install them on first error (Streamlit 1.59/1.62).
  • run_every-style per-component refresh intervals as a first-class component property.
  • AppTest-style headless harness: run, set widget values, read the element tree.
sources
  1. st.fragment docs docs.streamlit.io
  2. Streamlit 2026 release notes docs.streamlit.io
  3. Snowflake: Build Streamlit apps with agent skills snowflake.com
  4. Recordly: Cortex Code best practices with Streamlit in Snowflake recordlydata.com
  5. TechCrunch: Snowflake acquires Streamlit for $800M techcrunch.com
  6. GitHub API streamlit/streamlit api.github.com
  7. pypistats streamlit pypistats.org
  8. dkedar7/streamlit-mcp github.com
  9. streamlit.io homepage streamlit.io