2026 release notes

This page contains release notes for Streamlit versions released in 2026. For the latest version of Streamlit, see Release notes.

Release date: February 4, 2026

Notable Changes

  • 🎨 The color parameter of st.area_chart, st.bar_chart, st.line_chart, and st.scatter_chart supports the basic color palette which can be configured with theming (#13739, #12694).
  • ☯️ You can use the new theme.chartDivergingColors to set default diverging colors for Plotly, Altair, and Vega-Lite charts.
  • πŸ”— You can configure the display of error help links with a new configuration option, client.showErrorLinks (#13472, #11238). Thanks, karubian!
  • πŸ˜ƒ st.logo supports Material icons and emojis (#13416). Thanks, rahuld109!
  • πŸ₯· To prevent widgets from resetting when you change a parameter, widgets are transitioning to an identity based only on their keys (if provided). The following widgets use only their key for their identity:
    • st.dataframe (with selections)
    • st.area_chart
    • st.bar_chart
    • st.line_chart
    • st.scatter_chart
    • st.altair_chart
    • st.vegalite_chart
    • st.pydeck_chart
    • st.date_input
    • st.datetime_input
    • st.radio
    • st.select_slider
  • πŸ‘† ListColumn and MultiselectColumn let users select the text of their pills for copying (#13663).
  • πŸ‘» st.experimental_get_query_params and st.experimental_set_query_params have been removed. Use st.query_params instead.
  • ☠️ st.experimental_user has been removed. Use st.user instead.

Other Changes

  • πŸ‘½ The warning about the proposed removal of .add_rows() shows in the browser. Please leave feedback (#13063).
  • 🦎 When a .streamlit/config.toml file is created after a Streamlit app is running, the file watcher will recognize it without restarting the Streamlit server (#13625, #11296).
  • πŸ” Bug fix: Path security validation improves protection against Server-Side Request Forgery (SSRF) and path traversal vulnerabilities (#13733).
  • πŸ•ΈοΈ Bug fix: Wildcard URLs display as localhost in the browser URL and console output (#13720, #13712).
  • πŸ¦— Bug fix: Modals and drop-down menus don't collapse the sidebar (#13653).
  • πŸ¦‚ Bug fix: st.bar_chart doesn't raise a KeyError when sorting melted data (#13695).
  • 🦟 Bug fix: st.multiselect and st.selectbox don't clear state when a custom class object is selected (#13648, #13646).
  • 🦠 Bug fix: Transient nodes used for spinners will correctly anchor themselves in the Streamlit DOM to avoid an empty delta path (#13674).
  • πŸͺ° Bug fix: Snowflake connections will re-initialize if closed (#13665).
  • πŸͺ³ Bug fix: Nested containers under a spinner don't raise a Bad delta path index error (#13659, #13658).
  • πŸ•·οΈ Bug fix: SnowflakeConnection.query() correctly passes the params argument to caching (#13652, #13644).
  • 🐞 Bug fix: client.toolbarMode="viewer" correctly hides developer options from the settings menu (#13623).
  • 🐝 Bug fix: When using the experimental Starlette configuration, Streamlit auth can log users out of your identity provider and surface user tokens, consistent with recent updates (#13571).
  • 🐜 Bug fix: Streamlit will defensively not load packaged components with missing or invalid component names in their manifests (#13612).
  • πŸͺ² Bug fix: The width of file chips in st.chat_input was increased to reduce filename truncation (#13589).
  • πŸ› Bug fix: st.bar_chart doesn't raise an error about y-axis minimum and maximum when the bars have all the same value (#13590, #13584).

Release date: January 14, 2026

Highlights

  • ❄️ You can create session-scoped caller's rights connections in Streamlit in Snowflake and other Snowpark Container Services environments.
  • ⭐ Announcing experimental support for running Streamlit with Starlette with the new server.useStarlette configuration option.
  • 🌐 Introducing st.App, an experimental ASGI-compatible entry point that enables custom HTTP routes, middleware, lifecycle hooks, and integration with Python web frameworks like FastAPI and Starlette (#13537).
  • πŸ”‘ You can expose OIDC ID and access tokens in st.user.tokens (#12044). Thanks, velochy!

Notable Changes

Other Changes

  • πŸ”Œ You can exclude the port from your Streamlit auth redirect URI to use the current port (#12251, #12249). Thanks, velochy!
  • πŸ“› Various custom components v2 types were semantically renamed (#13515).
  • πŸ“œ When an item is removed from st.multiselect, the scroll position of the drop down is preserved (#13384, #13317). Thanks, kagawa0710!
  • 🐍 Pydantic sequences are treated as dataframe-like by Streamlit commands (#13348, #13344).
  • 🏠 The logo displayed by st.logo links to the app's homepage (#13222, #13155).
  • ⌨️ For improved accessibility, tooltips are keyboard focusable (#13379, #13330).
  • βš“ For improved accessibility, anchor links are keyboard focusable (#13378, #13329).
  • πŸ—ΊοΈ st.json displays a tooltip on hover for each element to show its full path (#13113, #13057).
  • πŸ’¬ st.chat_input was redesigned for improved style and accessibility (#13088, #13223, #13364, #13532, #13556, #13546, #13542, #13535, #13554, #13553, #13555, #13547).
  • πŸ’… Various style updates for consistency (#13536, #13557).
  • πŸ” st.auth is compatible with Authlib version 1.6.6 (#13333, #13335, #13424).
  • πŸ‘½ Bug fix: Embedded apps respect the theme embedding option when they are configured with a custom theme (#13498, #13496). Thanks, ranmocy!
  • πŸ‘» Bug fix: st.number_input accounts for floating point precision when incrementing and decrementing its value (#13484).
  • πŸ¦€ Bug fix: st.altair_chart correctly displays HConcat and VConcat charts (#13423, #13410).
  • πŸ¦‹ Bug fix: st.selectbox is initialized correctly when its value is set from Session State (#13438, #13435).
  • 🦎 Bug fix: st.html indents list items correctly (#13437, #13426).
  • 🐌 Bug fix: A logger message for SnowflakeConnection references the correct URL to the Snowflake docs (#13363, #13361).
  • πŸ•ΈοΈ Bug fix: Tooltip text with newlines renders correctly (#13365, #13339).
  • πŸ¦— Bug fix: The DOM elements within st.spinner are properly aligned when showing elapsed time (#13388, #13387).
  • πŸ¦‚ Bug fix: Custom components v2 have the same cross-origin behavior as other elements in the app (#13376).
  • 🦟 Bug fix: CSS custom properties in custom components handle null or unset values correctly (#13240).
  • 🦠 Bug fix: Theme preference is persisted into new app sessions (#13306, #13280).
  • πŸͺ° Bug fix: st.dialog doesn't show stale elements from a previous dialog (#13297, #10907).
  • πŸͺ³ Bug fix: st.data_editor behaves correctly when starting with a column of None values (#13309, #13305).
  • πŸ•·οΈ Bug fix: To correctly reflect edits to the theme configuration during development, theme settings are properly hashed (#13173).
  • 🐞 Bug fix: In v2 custom components, app-level keyboard shortcuts (like R for rerun) are disabled in typing contexts to prevent unintentional usage (#13264).
  • 🐝 Bug fix: Custom component v2 includes default values in component identity, unless a key is provided (#13266).
  • 🐜 Bug fix: The sidebar navigation is correctly hidden when topbar navigation is used (#13227, #13224).
  • πŸͺ² Bug fix: st.logo displays the logo correctly when an app uses top navigation (#13226, #13225).
  • πŸ› Bug fix: Error messages are clearer when width or height are invalidly set to 0 (#13206, #12868).
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.