Release notes
This page lists highlights, bug fixes, and known issues for the latest release of Streamlit. If you're looking for information about nightly releases or experimental features, see Pre-release features.
Upgrade Streamlit
Tip
To upgrade to the latest version of Streamlit, run:
Terminal
pip install --upgrade streamlit
Version 1.59.0 (latest)
Release date: July 6, 2026
Highlights
- β¨ Introducing
ButtonColumnβ a new column type forst.dataframeandst.data_editorthat renders clickable buttons inside table cells, letting users trigger actions directly from a row (#14544, #7015). - π
st.dataframehas a new column statistics submenu β click the dropdown icon in any column header to see per-column summary stats (#14307, #13148). - πΏ Introducing
st.skeletonβ a new element that renders animated loading placeholders, making it easy to give users visual feedback while content is loading (#15169, #8032). - π¨ Introducing
st.mermaid_chartβ render Mermaid diagrams directly in your app, letting you embed flowcharts, sequence diagrams, and more. Mermaid also works fromst.markdown(#14022, #10721).
Notable Changes
- π
st.chat_inputhas a newsubmit_modeparameter that controls widget behavior after the user submits a message, e.g. showing a stop button or disabling the chat input (#14344, #8323, #11854). - π
st.dataframeandst.data_editorsupport a newMarkdownColumntype inst.column_configthat renders Markdown text inside table cells (#13931, #10211). - π
st.markdownhas a newanchorsparameter for adding linkable heading anchors to Markdown content (#15722, #13913). - π» You can now launch Streamlit apps directly with
python app.pyoruv run app.pyusing the newApp.run()entry point β no morestreamlit runrequired (#15563, #9450, #11420). - π§©
st.fragmentcan now write to containers defined outside the fragment. Fragments can update any part of your app β including elements created before the fragment β without triggering a full rerun (#15623, #15620, #10481). - π
st.chat_inputnow supports pasting files directly into the input field (#15558, #10307). - π€
st.write_streamnow supports OpenAI Responses API streams in addition to the existing Chat Completions streams (#15559, #11061). - π
st.set_page_configsupports a new"locked"option forinitial_sidebar_statethat prevents users from toggling the sidebar open or closed (#15459, #15411). - π
Widgets have a new
persist_stateparameter for finer control over how widget state is preserved across reruns (#15645). - π·
st.camera_inputhas a newresolutionparameter to control the captured image resolution (#15766, #4320). - π§ͺ
AppTestnow supports testingst.download_buttonandst.image(#15528, #9003). - πΎ Programmatic secrets now support list values (#15491).
- β¨ You can now look up Streamlit API documentation from the CLI with
streamlit docs <command>(#15547). - π A new
server.xsrfCookieSameSiteconfig option lets you customize theSameSiteattribute of the XSRF cookie for deployments with specific cross-site requirements (#15634, #5793, #9397). - π‘ Streamlit now recommends installing AI coding skills on app startup to improve your development workflow with AI coding assistants (#15437, #15473).
- β The
/_stcore/metricsendpoint now reports memory stats in a less detailed (cheaper) form by default (#15472). - π» The deprecated Snowpark connection type has been removed. Migrate to a supported connection type (#15784).
- π» The deprecated
st.bokeh_chartcommand has been removed. Use thestreamlit-bokehcomponent instead (#15636).
Other Changes
- β‘ VegaLite charts now use Vega's native resize API for faster rendering when the container size changes (#15302).
- π¨ The pagination widget's selected-state styling has been redesigned (#15550).
- π§ Various fixes related to the Baseweb library removal (#15737).
- π Bug fix: The metrics endpoint no longer errors when SQLAlchemy connections are present (#15334).
- π¦ Bug fix:
@st.fragment(run_every=...)no longer raises aTypeErrorin_run_with_thread_state(#15376). - πͺ² Bug fix: Named Snowflake connections defined in config files are now correctly discovered and used (#15382).
- π Bug fix: P-mode PIL palette images are now hashed correctly to prevent hash collisions (#15397).
- π Bug fix: The server now correctly binds to IPv6 dual-stack wildcards for the default address (#15400).
- π Bug fix: Stale and invalid auth cookies are now cleared on login (#15420).
- π·οΈ Bug fix:
widgetMgris synced correctly to fix lazy loading intab.open(#15460). - πͺ³ Bug fix: Installed Custom Component v2 components are now correctly discovered in
AppTest(#15488). - πͺ° Bug fix:
st.pillsandst.segmented_controlcallbacks now fire correctly after selection (#15522). - π¦ Bug fix: The page title is no longer reset to the default on rerun (#15527).
- π¦ Bug fix: The "Missing Submit Button" warning no longer flashes briefly on app load (#15561).
- π¦ Bug fix: Streamlit now defaults to the polling file watcher in WSL environments, avoiding inotify issues (#15562).
- π¦ Bug fix:
AppTestnow correctly handles formatted labels informat_funcwidgets (#15564). - πΈοΈ Bug fix: The invalid session upload error message now explains multi-replica deployment as a possible cause (#15635).
- π Bug fix:
st.selectboxno longer loses its selection whenformat_funcdepends on object identity (#15639). - π¦ Bug fix: Pressing Escape no longer clears the current selection in
st.multiselect(#15646). - π¦ Bug fix:
StreamlitPagenow validates that itssourcematches the registered page, catching misconfiguration earlier (#15721, #10572). - π½ Bug fix:
st.dataframeno longer intercepts the Ctrl+F keyboard shortcut when the search bar is disabled (#15764). - π Bug fix: Column headers in
st.dataframeno longer wrap text in the column header menu (#15772).
Older versions of Streamlit
- 2026 release notes
- 2025 release notes
- 2024 release notes
- 2023 release notes
- 2022 release notes
- 2021 release notes
- 2020 release notes
- 2019 release notes
Still have questions?
Our forums are full of helpful information and Streamlit experts.