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:
Version 1.56.0 (latest)
Release date: March 31, 2026
Highlights
- πΏ Introducing
st.menu_buttonβ a new widget that renders a dropdown button with a customizable popover container for building menus, toolbars, and action lists (#13981, #11409). - π Introducing
st.iframeβ embed external URLs or raw HTML content directly in your app using an iframe (#14433, #12977). - π
st.selectboxandst.multiselectnow support afilter_modeparameter that lets users search and filter options by typing (#14537, #6160, #7238).
Notable Changes
- π
st.dataframesupports programmatically setting selections via theselectionparameter (#13594, #10128). - π―
st.dataframehas a new"single-row-required"selection mode that always keeps exactly one row selected (#14288, #9253). - π
st.dataframecolumn configuration now supports analignmentparameter for controlling text alignment in columns (#14333, #12106). - π The column visibility menu in
st.dataframeis now always visible, making it easier to show and hide columns (#14336, #10649). - πΉ
AudioColumnandVideoColumnare now available inst.column_configfor displaying audio and video players directly in dataframes (#14032, #8345). - π Streamlit now supports pandas 3.x (#13812, #13211).
- π§
st.navigationhas a newexpandedparameter to control how many sidebar items are visible before collapsing (#14051, #9646). - π
st.Pagenow accepts external URLs, allowing you to add links to external sites in the navigation sidebar (#13691, #9025). Thanks, t0k0shi! - πΌ
st.tablehas newhide_indexandhide_headerparameters for cleaner table presentation (#14113, #8235, #9251). - β‘
st.link_buttonnow supports anon_clickcallback that triggers a rerun before navigating (#14116, #7453). - π
st.file_uploaderandst.chat_inputnow accept file type shortcuts like"image","audio","video", and"document"(#14140). - π
st.chat_inputhas a newheightparameter to control the initial height of the text area (#14165, #10724). - β¨ Alert elements (
st.info,st.warning,st.error,st.success) now automatically extract a leading Material icon from the message body and display it as the alert icon (#14173, #10892). - πͺ Streaming markdown now auto-completes incomplete syntax (e.g., unclosed bold, links, or code blocks) during streaming for a cleaner reading experience (#13939).
- π·
st.pillsandst.segmented_controlnow have arequiredparameter to enforce that at least one option is always selected (#14414, #9870). - π
st.containerhas a newautoscrollparameter that automatically scrolls to the bottom as new content is added (#14502, #8836). - π§©
st.tabs,st.expander, andst.popovernow preserve their open/closed state across reruns (#14332, #14356). - π Static files served via
st.static/now use native content types instead of a generic fallback (#14090). - π₯ Media elements now support relative static file serving URLs (e.g.,
/app/static/video.mp4) (#14317, #12104). - π§ͺ
st.file_uploaderis now supported in AppTest for programmatic testing of file upload flows (#14341, #8093). - π§ Widget state duplication warnings are now logged to the console instead of displayed in the app UI (#14141).
- π¦
BidiComponentResulthas been renamed toComponentResultin the custom components v2 API (#14253). - β The
_stcore/metricsendpoint is now fully OpenMetrics-compliant (#14538).
Other Changes
- π Bug fix: Streamlit can now run with Python optimization flags (
-O/-OO) (#14171, #14155). - π¦ Bug fix: Reduced false-positive file change detections on Windows by adding a stability check to the file watcher (#14174, #13954).
- πͺ² Bug fix:
st.text_areawithheight="content"now correctly auto-sizes to fit content (#14228, #14222). - π Bug fix: Stale anchor links are no longer preserved when clearing transient nodes (#14251, #14249).
- π Bug fix:
BidiComponentManageris now properly initialized in AppTest mock runtime (#14301, #14274). Thanks, tysoncung! - π Bug fix: Streamlit is now compatible with Python 3.14's PEP 649 deferred annotation evaluation (#14327, #14324).
- π·οΈ Bug fix: Tooltips on selected
st.multiselectoptions are now restored (#14353, #14351). - πͺ³ Bug fix:
server.portis now correctly updated after binding to port 0 (#14372, #11308). Thanks, joanaarnauth! - πͺ° Bug fix: Bound query params are now correctly restored in the URL when navigating in multi-page apps (#14374, #14350).
- π¦ Bug fix: Restored the
reactJsonViewCompatshim for the local dev server (#14391). - π¦ Bug fix:
st.exceptionlinks no longer overflow their container at small viewport widths (#14417, #12870). - π¦ Bug fix: Headings inside horizontal containers (
st.columns) no longer have extra top padding (#14419, #12434). - π¦ Bug fix: Programmatic dataframe selections now return
AttributeDictionaryfor consistent dot-notation access (#14455, #14454). - πΈοΈ Bug fix: Streaming markdown with color directives no longer shows rendering artifacts (#14468, #14460).
- π Bug fix: The
session_durationmetric is now OpenMetrics-compliant (#14476, #14432). - π¦ Bug fix: The main menu now has a visible border in dark mode (#14529).
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.
