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.64.0 (latest)
Release date: September 15, 2026
Highlights
- β¨ Introducing
st.echarts_chart, a new command that renders Apache ECharts options with Streamlit theming, and accepts dicts, JSON strings, orpyechartscharts (#16785). - π Streamlit now supports
async/awaitin app code, so you can use async libraries like httpx, aiohttp, and asyncpg directly (#16167, #744).st.cache_dataandst.cache_resourcework withasync deffunctions and cache the awaited result (#16168).
- π Announcing live updates for
st.text_input: setlive=Trueand the widget commits while the user types, after a short pause (#16662, #4553).
Notable Changes
- π The
on_change="ignore"mode reaches three more widgets, so a new value updates the widget and any bound query parameter without a rerun: - π» The
mapbox.tokenconfig option is removed. Set theMAPBOX_API_KEYenvironment variable, or pass PyDeckapi_keysinstead (#16774, #16676, #16678).
Other Changes
- π Bug fix:
st.dialoghides a leftover dialog as soon as the next full-app run starts, sost.rerun()closes the modal before later blocking work (#16901, #9405). - π¦ Bug fix:
st.dataframeandst.data_editorconvert list columns that PyArrow cannot serialize to strings, instead of raising when the nesting levels differ (#16838, #9380). - πͺ² Bug fix: Widgets after
st.rerunkeep the values the user selected, instead of resetting to their defaults (#16762, #3533). - π Bug fix: Altair
mark_geoshapecharts render on first view, instead of showing an empty plot (#16886, #2910). - π Bug fix:
st.pydeck_charthonors pydeckviews, so OrbitView, GlobeView, andmap_provider=Nonerender as specified (#16819, #2590, #2302, #9933). - π Bug fix:
st.pydeck_chartrenders layers that declare deck.glextensions, instead of showing an error box (#16823). - π·οΈ Bug fix: Altair
binding_radioandbinding_selectstay a single widget whenon_selectis enabled (#16809, #8765). - πͺ³ Bug fix: Vega and Altair
bind=controls use Streamlit fonts, colors, and focus rings (#16813). - πͺ° Bug fix: Vega-Lite legend titles get more padding under the Streamlit theme, so the title is not stuck to the first entry (#16818).
- π¦ Bug fix: Elements stay dimmed after you press Stop, until the run actually finishes (#16839, #9904).
- π¦ Bug fix:
st.query_paramsskips a browser history entry when the query string does not change, so the Back button leaves the app (#16831, #9878). - π¦ Bug fix: Custom Components v2 keep in-flight trigger values, so the value reaches Python instead of the script rerunning without it (#16833, #16732).
- π¦ Bug fix:
st.download_buttonencodes filenames that a quotedContent-Dispositionheader cannot hold, so the browser saves the full name (#16646, #16631). - πΈοΈ Bug fix:
st.sliderswaps reversedmin_valueandmax_valuebounds, instead of truncating the range or raising an error about numbers you never passed (#16716, #16675). - π Bug fix:
st.number_inputraises a clear error whenmin_valueis greater thanmax_value(#16895). - π¦ Bug fix: Widgets raise an actionable error for an
on_changemode they do not support (#16889). - π¦ Bug fix: Streamlit classifies invalid
icon=values more precisely, so an empty value means no icon and a URL raises an image error (#16900). - π Bug fix: The error for a nested
url_pathnames the invalid path and links to the issue you can upvote (#16896). - π¦ Bug fix: Exception traces in the browser hide Streamlit package frames, keep your
st.*call site, and show chained exceptions (#16718). - πͺ² Bug fix: Coalesced reruns dispatch only the callbacks that have not run yet (#16765).
- π Bug fix:
st.buttonand similar controls wait 500ms before they show a help tooltip on hover, so a pointer that crosses a control does not open one (#16794, #8686). - π Bug fix:
st.radioexposes option captions as descriptions, so assistive tech reads the option text as the name (#16811). - π Bug fix:
st.cache_resourcerejects asyncvalidateandon_releasecallbacks, instead of discarding the awaitable they return (#16860). - π·οΈ Bug fix:
AppTesttreats unknown element subtypes asUnknownElement, so.run()finishes against a newer Streamlit (#16835). - πͺ³ Bug fix:
AppTestraisesAppTestErrorwhen you callset_value()orclick()on an element with no typed wrapper (#16837). - πͺ° Bug fix:
AppTesttreats an emptyst.chat_inputsubmit as a real value, and printsChatInputValuewithout an error whenaccept_file=True(#16857). - π¦ Bug fix:
AppTest.session_statesupports the same dict methods asst.session_state, which areget,keys,items,values,to_dict,len, and iteration (#16897). - π¦ Bug fix:
streamlit skillsinstalls the bundled agent skills where Claude Code reads them, and reports an incomplete install instead of success (#16394).
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.