NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #789 most downloaded on PyPI
A faster way to build and share data apps
Last release 2 days ago
02 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 58 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
274 releases · first in 2018
<!-- Release notes generated using configuration in .github/release.yml at 1.30.0 -->
<!-- Release notes generated using configuration in .github/release.yml at 1.30.0 -->
height parameter by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7697LinkColumn by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7784st.switch_page by @mayagbarnes in https://github.com/streamlit/streamlit/pull/7853st.toggle background color by @sfc-gh-jgarcia in https://github.com/streamlit/streamlit/pull/7788Full Changelog: https://github.com/streamlit/streamlit/compare/1.29.0...1.30.0
One column per quarter.
Deprecate unused config options by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7584
<!-- Release notes generated using configuration in .github/release.yml at 1.29.0 -->
st.dataframe, st.data_editor and st.table. by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7689NoReturn annotation for stop and rerun by @kongzii in https://github.com/streamlit/streamlit/pull/7422st.graphviz_chart by @snehankekre in https://github.com/streamlit/streamlit/pull/7398st.container by @AnOctopus in https://github.com/streamlit/streamlit/pull/7644st.rerun by @AnOctopus in https://github.com/streamlit/streamlit/pull/7643Full Changelog: https://github.com/streamlit/streamlit/compare/1.28.2...1.29.0
<!-- Release notes generated using configuration in .github/release.yml at 1.28.2 -->
<!-- Release notes generated using configuration in .github/release.yml at 1.28.2 -->
Full Changelog: https://github.com/streamlit/streamlit/compare/1.28.1...1.28.2
<!-- Release notes generated using configuration in .github/release.yml at 1.28.1 -->
<!-- Release notes generated using configuration in .github/release.yml at 1.28.1 -->
Full Changelog: https://github.com/streamlit/streamlit/compare/1.28.0...1.28.1
fixes pandas is_categorical_dtype deprecation warning by @c-bik in https://github.com/streamlit/streamlit/pull/7477
<!-- Release notes generated using configuration in .github/release.yml at 1.28.0 -->
st.data_editor by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7483st.spinner by @mayagbarnes in https://github.com/streamlit/streamlit/pull/7488st.dataframe and st.data_editor by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7345st.data_editor by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7481st.data_editor by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7485st.dataframe and st.data_editor by @LukasMasuch in https://github.com/streamlit/streamlit/pull/7475Full Changelog: https://github.com/streamlit/streamlit/compare/1.27.2...1.28.0
<!-- Release notes generated using configuration in .github/release.yml at 1.27.2 -->
<!-- Release notes generated using configuration in .github/release.yml at 1.27.2 -->
Full Changelog: https://github.com/streamlit/streamlit/compare/1.27.1...1.27.2
<!-- Release notes generated using configuration in .github/release.yml at 1.27.1 -->
<!-- Release notes generated using configuration in .github/release.yml at 1.27.1 -->
Full Changelog: https://github.com/streamlit/streamlit/compare/1.27.0...1.27.1
<!-- Release notes generated using configuration in .github/release.yml at 1.27.0 -->
<!-- Release notes generated using configuration in .github/release.yml at 1.27.0 -->
Highlights
st.scatter_chart — a new, simple chart element to build scatter charts Streamlit-y fast and easy! See our documentation.st.link_button! Want to open an external link in a new tab with a bit more pizazz than a plain-text link? Check out our documentation to see how.st.rerun, a command to interrupt your script and trigger an immediate rerun.Notable Changes
None as an initial value for st.number_input, st.selectbox, st.date_input, st.time_input, st.radio, st.text_input, and st.text_area!st.download_button now uses target="_self" instead of opening a new tab (#7151, #7132).pympler dependency (#7193, #7131). Thanks, rudyardrichter!Other Changes
st.multiselect now shows a correct message when no result matches a user’s search (#7205, #7116).st.experimental_user now defaults to test@example.com (#7219, #7215).st.slider labels don’t overlap when small ranges are selected (#7221, #3385).st.pydeck_chart (#7256, #5799).st.video correctly updates with changes to start_time (#7257, #7126).st.session_state (#7280, #7206).st.map correctly refreshes with new data (#7307, #7294).st.code no longer triggers a CachedStFunctionWarning (#7306, #7055).st.download_button no longer resets with different data (#7316, #7308).fastRerun enabled (#7283, #6643).st.tabs was improved to better handle and render conditionally appearing tabs (#7287, #7310, #5454, #7040).Full Changelog: https://github.com/streamlit/streamlit/compare/1.26.0...1.27.0
Nothing published for this version
🛏️ Replaced deprecated imghdr dependency with pillow (#7081, #7027).
Highlights
st.status to display output from long-running processes and external API calls. Works great with st.chat_message! See our documentation for how to use this feature.st.toggle — an alternative to st.checkbox when you need an on/off switch.Notable Changes
color parameter to set the color of your data points or series (#7022).st.header and st.subheader have optional, colored dividers (#7133).st.download_button has a new parameter type for theming (#7056, #7038).st.chat_message has ai and human presets for messages (#7094).st.radio options support markdown and have captions (#7018, #7105, #6085).imghdr dependency with pillow (#7081, #7027).st.number_input's step buttons (+/-) are ignored during tabbing navigation (#7154). Thanks @denck007!Other Changes
st.chat_input (#7204, #7115).st.file_uploader no longer causes session state to reset when a websocket connection is dropped and reconnected (#7149, #7025).st.chat_input no longer submits prematurely while typing with an input method editor (#6993).st.tabs are now transparent (#7070, #5707).help parameter in st.button (#7033, #6161).st.chat_message can correctly use local images as avatars (#7130).Full Changelog: https://github.com/streamlit/streamlit/compare/1.25.0...1.26.0
<!-- Release notes generated using configuration in .github/release.yml at 1.25.0 -->
<!-- Release notes generated using configuration in .github/release.yml at 1.25.0 -->
Highlights
st.toast — a command to briefly show toast messages to users in the bottom-right corner of apps. See our documentation on how to use this feature.Notable Changes
st.map now has parameters for latitude, longitude, color, and size to customize data points (#6896).st.multiselect supports setting placeholders and specifying the maximum number of selections via the placeholder and max_selections keyword-only arguments, respectively (#6901, #4750). Thanks, @fhiroki!st.text_input, st.number_input, or st.text_area (#6911, #3790).Other Changes
Full Changelog: https://github.com/streamlit/streamlit/compare/1.24.0...1.25.0
Nothing published for this version
🐍 We've deprecated support for Python 3.7 in the core library and Streamlit Community Cloud (#6868).
<!-- Release notes generated using configuration in .github/release.yml at 1.24.0 -->
st.chat_message and st.chat_input — two new chat elements that let you build conversational apps. Learn how to use these features in your LLM-powered chat apps in our tutorial.hash_funcs.st.cache_data and st.cache_resource can hash timezone-aware datetime objects (#6812, #6690, #5110).st.write pretty-prints dataclasses using st.help (#6750).st.button's height is consistent with that of other widgets (#6738).react-range frontend dependency to fix the memory usage of sliders (#6764, #5436). Thanks @wolfd!streamlit config show honors newlines (#6758, #2868).min_value and max_value in st.number_input (#6847, #6797).Full Changelog: https://github.com/streamlit/streamlit/compare/1.23.1...1.24.0
…many other data structures in a table-like UI. Breaking change: the data editor’s representation used in st.session_state was altered. Find out more a…
Highlights
st.session_state was altered. Find out more about the new format in Access edited data.st.dataframe and st.data_editor columns (e.g. their title, visibility, type, or format). Keep an eye out for a detailed blog post and in-depth documentation upcoming in the next two weeks.st.experimental_connection to create and manage data connections in your apps with the new Connecting to data docs and video tutorial.Notable Changes
hide_index, specify the display order of columns with column_order, and disable editing for individual columns with the disabled parameter.ttl parameter in st.cache_data and st.cache_resource accepts formatted strings, so you can simply say ttl="30d", ttl="1h30m" and any other combination of w, d, h, m, s supported by Pandas’s Timedelta constructor (#6560).st.file_uploader now interprets the type parameter more accurately. For example, "jpg" or ".jpg" now accept both "jpg" and "jpeg" extensions. This functionality has also been extended to "mpeg/mpg", "tiff/tif", "html/htm", and "mpeg4/mp4".global.disableWidgetStateDuplicationWarning configuration option allows the silencing of warnings triggered by setting widget default values and keyed session state values concurrently (#3605, #6640). Thanks, @antonAce!Other Changes
st.beta_* and st.experimental_show due to deprecation and low-use (#6558)max_chars and validate for text columns, and min_value, max_value and step for number columns (#6563).None in returned data structures (#6544).(2^53) -1 (#6311, #6549).st.data_editor and st.dataframe related to auto-hiding the index column(s) based on the input data (#6659, #6598)st.number_input and st.slider (#6724).st.date_input's date selector is equally visible in dark mode (#6072, #6630).st.set_page_config have been updated to clarify that this command can be invoked once for each page within a multipage app, rather than once per entire app (#6594).st.json no longer collapses multiple spaces in both keys and values with single space when rendered (#6657, #6663).Nothing published for this version
🔌 Introducing st.experimental_connection: Easily connect your app to data sources and APIs using our new connection feature. Find more details in our
Highlights
st.experimental_connection: Easily connect your app to data sources and APIs using our new connection feature. Find more details in our blog post and the API reference, and stay tuned for in-depth documentation! In the meantime, explore our updated MySQL and Snowflake connection tutorials for examples of this feature.Notable Changes
client.toolbarMode config option (#6174).Other Changes
@st.cache_data decorated functions support UUID objects as parameters (#6440, #6459).st.multiselect's clear icon is larger and includes a hover effect (#6471).st.code's copy-to-clipboard button appears when you hover on code blocks (#6490, #6498).🐛 Bug fix: CachedStFunctionWarning mentions experimental_allow_widgets instead of the deprecated suppress_st_warning (#6216, #6217).
Highlights
st.divider — a command that displays a horizontal line in your app. Learn how to use this command in its API reference.secrets.toml file, in addition to a project-level file, to easily store and securely access your secrets. Learn more in Secrets management.st.help has been revamped to show more information about object methods, attributes, classes, and more, which is great for debugging!Notable Changes
st.time_input supports adding a stepping interval with the keyword-only step parameter (#6071).help parameter (#6043).st.pyplot has a use_container_width parameter to set the chart to the container width (now all chart elements support this parameter) (#6067).st.code supports optionally displaying line numbers to the code block’s left with the boolean line_numbers parameter (#5756, #6042).anchor=False (#6158).Other Changes
st.table and st.dataframe support pandas.Period, and number and boolean types in categorical columns (#2547, #5429, #5329, #6248)..webp to the list of allowed static file extensions (#6331)streamlit hello, and make the browser back button work for multipage apps (#5292, #6266, #6232). Thanks, whitphx!react-dropzone so that st.file_uploader's File Selection Dialog only shows file types corresponding to those included in the type parameter (#6176, #6315)..clear() method on cache-decorated functions work (#6310, #6321).st.experimental_get_query_params doesn’t need reruns to work (#6347, #6348). Thanks, PaleNeutron!CachedStFunctionWarning mentions experimental_allow_widgets instead of the deprecated suppress_st_warning (#6216, #6217).🔐 Added support for configuring SSL to serve apps directly over HTTPS (#5969).
Notable Changes
/?embed and /?embed_options query parameters. Learn how to use this feature in our docs (#6011, #6019).runner.fastReruns configuration option by default to make apps much more responsive to user interaction (#6200).Other Changes
dtypes checking in st.experimental_data_editor (#6185, #6188).st.metric's help tooltip when not inside columns (#6168).ForwardMsgCache (#6210).st.cache_data docstring for the show_spinner param now lists str as a supported type (#6207, #6213).st.map and st.pydeck_chart docs state that Streamlit's Mapbox token will not work indefinitely (#6143).✂️ Introducing st.experimental_data_editor, a widget that allows you to edit DataFrames and many other data structures in a table-like UI. Read more i
Highlights
st.experimental_data_editor, a widget that allows you to edit DataFrames and many other data structures in a table-like UI. Read more in our documentation and blog post.Other Changes
st.metric tooltip position (#6093, #6129).Nothing published for this version
Nothing published for this version
🚧 Streamlit only displays deprecation warnings in the browser when the client.showErrorDetails config option is set to True. Deprecation warnings alwa…
Highlights
@st.cache_data and @st.cache_resource — two new caching commands to replace st.cache! Check out our blog post and documentation for more information.Notable Changes
st.columns supports up to one level of column nesting (i.e., columns inside columns) in the main area of the app.st.progress supports adding a message to display above the progress bar with the text keyword parameter.st.button has an optional use_container_width parameter to allow you to stretch buttons across the full container width.enableStaticServing config option. See our documentation on how to use this feature and our demo app for an example.Other Changes
/healthz) have been renamed to have a consistent pattern and avoid any clashes with reserved endpoints of GCP (notably Cloud Run and App Engine) (#5534).client.showErrorDetails config option is set to True. Deprecation warnings always get logged to the console, regardless of whether they're displayed in-browser (#5945).st.dataframe internals to improve dataframe handling and conversion, such as detecting more types, converting key-value dicts to dataframes, and more (#6026, #6023).st.selectbox and st.multiselect have less than 10 options (#5979).st.metric, st.multiselect, st.tabs , and menu items to prevent label overflow and scrolling issues, especially with small viewport sizes (#5933, #6034).st.set_page_config (#5943).🪄 `@st.experimental_singleton` supports an optional validate parameter that accepts a validation function for cached data and is called each time the
Notable Changes
@st.experimental_singleton supports an optional validate parameter that accepts a validation function for cached data and is called each time the cached value is accessed.@st.experimental_memo’s persist parameter can also accept booleans.Other Changes
__init__.py from the page selector (#5890).👩🎨 Introducing a new Streamlit theme for Altair, Plotly, and Vega-Lite charts! Check out our blog post for more information.
Highlights
st.markdown, st.header, and more. Learn more in our documentation.Notable Changes
st.experimental_memo or st.experimental_singleton can contain Streamlit media elements and forms.label_visibility parameter.Other Changes
st.map improvements: support for upper case columns and better exception messages (#5679, #5792).st.plotly_chart respects the figure’s height attribute and the use_container_width parameter (#5779).icon parameter such as st.error, st.warning, etc, can contain emojis with variant selectors (#5583).st.camera_input from jittering when resizing the browser window (#5661).Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →