NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3485 most downloaded on PyPI
The powerful data exploration & web app framework for Python.
Last release 13 days ago
21 Sep 2026
Release timing varies
gaps range from 9 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
8 years old
478 releases · first in 2018
Nothing published for this version
Nothing published for this version
Nothing published for this version
This release addresses includes a wide range of bug fixes and some minor enhancements primarily aimed at performance. Many thanks to @CodeRambling as
One column per quarter.
This release addresses includes a wide range of bug fixes and some minor enhancements primarily aimed at performance. Many thanks to @CodeRambling as a returning contributor, and the core developer team including @Hoxbro, @MarcSkovMadsen, @maximlt and @philippjfr for contributing to this release.
Design is applied globally when using global templates (#6992)DataFrame as part of vega(-lite) spec (#6979, #7024)Feed maintains scroll position (#6984)FileDownload icon alignment (#6981)Tabulator is undefined (#6930)Vega pane with sizing_mode exception (#7020)Gauge is responsively sized (#7034)Tabulator sorters are correctly synced (#7036)StaticText.value with the frontend (#7038)Param pane docstring (#6989)Image pane is a wrapper around PNG, JPEG, PDF etc. panes (#7004)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
This release primarily addresses a critical regression in notebook comm channel handling introduced in 1.4.3 and includes a few minor fixes for Tabula
This release primarily addresses a critical regression in notebook comm channel handling introduced in 1.4.3 and includes a few minor fixes for Tabulator and documentation related issues. Many thanks to @justinwiley for his first contribution to Panel, @twobitunicorn as a returning contributor and the core contributors @maximlt and @philippjfr for their continued work.
Tabulator (#6879)Tabulator does not rebuild children when using embed_content with row_content (#6881)ParamRef, ParamFunction and ParamMethod resolve synchronous generators asynchronously (#6885)Nothing published for this version
This patch release is likely the last in the 1.4.x series. The most important fixes in this release are fixes to ensure keyboard shortcuts do not get
This patch release is likely the last in the 1.4.x series. The most important fixes in this release are fixes to ensure keyboard shortcuts do not get triggered inside Panel components for for recent versions of JupyterLab, fixes for OAuth token refreshes, and various documentation fixes. The release also includes a small number of enhancements, including improved UX for the FileSelector. Many thanks to the many contributors to this release including @jrycw, @Coderambling, @cdeil, @twobitunicorn, and the maintainers @Hoxbro, @MarcSkovMadsen, @ahuang11, @maximlt and @philippjfr.
Card (#6636)ChatMessage.reaction_icons reactive (#6807)FileSelector with double click (#6843)from_param (#6762)Design modifiers (#4978)CommManager (#6818)Tabulator resize handling more robust (#6821)panel convert index (#6828)FastDesignProvider is undefined (#6832)hvplot.interactive tutorial utilizing pn.rx (#6700)Nothing published for this version
Nothing published for this version
Nothing published for this version
This micro-release fixes a number of smaller regressions and bugs including parsing of notebooks. Many thanks to our new contributor @bkreider, our re
This micro-release fixes a number of smaller regressions and bugs including parsing of notebooks. Many thanks to our new contributor @bkreider, our returning contributors, @jrycw and @ea42gh, and our dedicated team of maintainers including @ahuang11, @MarcSkovMadsen and @philippjfr.
ChatAreaInput (#6592)ChatInterface.button_properties (#6706)ChatInterface.serialize and properly replace placeholder for streams (#6734)Perspective.toggle_config which was erroneously reintroduced in 1.4.1 (#6721)ChatMessage footer_objects/header_objects (#6705)Location.sync of DataFrame parameters (#6745)VTK nan, above and below colors are serialized (#6763)Perspective theme and persist config when switching plugins (#6764)config.set triggering undesirable side-effects (#6772).clear() clears the correct function (#6781)Nothing published for this version
Nothing published for this version
This micro-release fixes a number of regressions and other bugs introduced in recent releases and further improves the dashboard builder UI. Additiona
This micro-release fixes a number of regressions and other bugs introduced in recent releases and further improves the dashboard builder UI. Additionally it includes some tweaks and polish for the new tutorial material. Many thanks to our new contributor @jrycw, our returning contributors @cdeil and @TheoMathurin and our maintainers @ahuang11, @MarcSkovMadsen, @Hoxbro and @philippjfr for their contributions to this release.
IPython.display output in dashboard builder (#6657)Perspective loads in notebooks and docs (#6626)VTK colormap serialization (#6651)Tabulator HTMLTemplateFormatter to reference multiple columns (#6663)Card button icon (#6638)Perspective renders correctly in all browsers (#6664)Flexbox.gap parameter (#6616)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
This minor release packs a punch both in terms of features, the number of enhancements and bug fixes and perhaps most importantly the addition of a se
This minor release packs a punch both in terms of features, the number of enhancements and bug fixes and perhaps most importantly the addition of a set of tutorials that aim to get novices up-to-speed. The main new feature is a so called EditableTemplate which allows arranging dashboards using a drag-and-drop interface and also has strong integration with JupyterLab previews to go from a notebook to a deployed app without having to worry about writing layout code. Next, this release includes a number of new widgets (NestedSelect, DateRangePicker, ButtonIcon), layouts (Feed) and panes (Textual, WebP), and overhauls the autoreload feature with faster and more robust support for reloading entire modules. Lastly this release, along with Param 2.1.0, continues to build on the new reactive expression API making it easy to write reactive expressions and pipelines including support for streaming data with generators. We really appreciate all the work that went into this release and especially want to call out @MarcSkovMadsen's effort in putting together the new tutorial materials. There's more work to do but it's a huge step forward and we're excited to hear your feedback. We want to extend a special thanks to our amazing new crop of new contributors including @atisor73, @Osuwaidi, @suryako, @Davide-sd, @doraaki, @mayonnaisecolouredbenz7, @CTPassion, @J01024, @l3ender and @Coderambling. Next we want to recognize our returning contributors @vaniisgh, @cdeil, @limx0m, and @TheoMaturin, and finally the dedicated crew of core contributors which include @maximlt, @Hoxbro, @MarcSkovMadsen, @ahuang11, @mattpap and @philippjfr.
EditableTemplate to support dashboard builder UI in Jupyter (#5802)ChatAreaInput as default text input widget for ChatInterface (#6379)NestedSelect widget (#5791, #6011)DateRangePicker widget (#6027)Feed layout and use it as layout for ChatFeed (#6031, #6296)WebP pane (#6035)ButtonIcon (#6138)Textual pane (#6181)--autoreload by using watchfiles and selectively reloading packages (#5894, #6459)
Load loading indicator from file instead of inlining (#6112)card_params (#6242)scroll options to permanently toggle on layouts (#6266)Tabulator (#6309)ChatFeed (#6311)ChatMessage (#6346)ChatMessage avatars (#6348)gap parameter to FlexBox (#6354)step of DatetimeRangeSlider to 1 minute (#6373)FlexBox (#6387)message into css_classes to ChatMessage markup (#6407)ChatMessage header & footer (#6410)Perspective (#6482)jupyter_bokeh (#6485)ParamRef baseclass for ParamFunction and ParamMethod (#6392)Param<Ref|Function|Method> updates (#6396)Param<Ref|Method|Function> and ReactiveExpr to panes module (#6432)param.rx display accessor on import (#6470)DeckGL (#6531)VTKJS binary serialization (#6559)BootstrapTemplate (#6111)loading background filters to work better in dark themes (#6112)FileInput widget (#6479)Tabulator editor text color in Fast design (#6512)BootstrapTemplate hamburger icon is white (#6562)Perspective version to 2.9.0 (#5722)Vizzu to 0.9.3 (#6476)JSONEditor version to 10.0.1 (#6477)panel convert (#6490)FloatPanel (#6201)Tabulator renders in collapsed Card (#6223)VTK, VTKVolume and VTKJS due to webgpu renderer (#6244)ChatInterface respect supplied default user (#6290)HTML and other markup panes can be emptied (#6303)ChatMessage internals correctly respect Design (#6304)Card does not cause stretching (#6305)loading_indicator resets when configured with context manager (#6343)CodeEditor on render calls ensuring it displays correctly (#6361)FileDownload button has correct height (#6362)HTML model is redrawn if stylesheets is emptied (#6365)Debugger renders without error (#6423)ChatMessage header updates dynamically (#6441)Matplotlib (#6450)ChatMessage on ChatInterface and mention serialize (#6452)Plotly pane renders and hides correctly in Card (#6468)Fast design (#6474)IntRangeSlider (#6516)Markdown parsing does not choke on partial links (#6535)PDFs can be rendered (#6538)IPywidget comms are only opened once (#6542)ReactiveHTML resources (#6552)Template.raw_css has higher precedence than default template CSS (#6554)Tabulator.style (#6560)ChatInterface stop button for synchronous functions (#6312)stylesheets downstream, including layouts in ChatMessage (#6405)value_input parameter (#6505)ChatMessage (#6187, #6509)ChatFeed (#6507)None as the initial ChatMessage value (#6522)ReactiveHTML docs (#5448, #6358)HoloViews reference guide (#6065)Ace alias for CodeEditorChatBox which has been replaced by panel.chat componentsHTML.style which is now replaced with HTML.stylesTrend.title which is now replaced by Trend.nameViewable.app which is now replaced with pn.io.notebook.show_serverViewable.background which is now replaced with Viewable(styles={'background': ...})Viewable.pprint which is now replaced with print(Viewable(...))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
This patch release fixes an important regression in the 1.3.6 release that resulted in global state to be incorrectly resolved in certain cases. Many
This patch release fixes an important regression in the 1.3.6 release that resulted in global state to be incorrectly resolved in certain cases. Many thanks to our new contributor @fohrloop and our maintainers @ahuang11, @Hoxbro and @philippjfr for contributing to this release.
ReactiveHTML correctly resets Event parameters (#6247)ChatFeed / ChatInterface tests and async generator placeholders (#6245)pn.state.curdoc (#6254)Nothing published for this version
Nothing published for this version
Upgrade Plotly.js to 2.25.3 to address CVE-2023-46308
This patch release focuses on a number of fixes and minor enhancements for the chat components and various other smaller improvements and fixes including docs improvements. In particular we want to highlight the new Ploomber deployment guide contributed by @neelash23. Next we want to welcome @jz314, @fayssalelmofatiche and @neelasha23 as new contributors and welcome back @SultanOrazbayev as a returning contributor. Lastly we want to thank the core contributor team, including @MarcSkovMadsen, @ahuang11, @maximlt, @Hoxbro and @philippjfr for their continued efforts maintaining Panel.
filter_by to ChatMessage.serialize (#6090)ToggleIcon (#6127)TextAreaInput (#6126)ChatMessage (#6153)pn.state.browser_info (#6122)Matplotlib pane (#6128)FileDownload (#6133)Tabulator fast theme (#6146)card_params on ChatFeed (#6154)Tabulator.title_formatter if is type dict (#6166)per_session caching (#6169)Plotly pane (#6174)Perspective pane (#6176)ReplacementPane object identity is unchanged (#6183)TextEditor to support being rendered in the Shadow DOM (#6222)Tabulator ensuring that it does not error when it is not rendered (#6223)Design and Theme explanation documentation (#4741)Material template notebook .show() call (#6137)Nothing published for this version
Nothing published for this version
Nothing published for this version
This patch release addresses a major regression in server performance introduced in 1.3.5 along with some additional minor fixes. We want to welcome @
This patch release addresses a major regression in server performance introduced in 1.3.5 along with some additional minor fixes. We want to welcome @nenb as a new contributor and want to thank the maintainers @ahuang11, @maximlt and @philippjfr for their contributions to this release.
access_token (#6084)ChatReactionIcons alignment and trigger reactions correctly (#6086)Column scroll_position default value from None to 0 (#6082)ReactiveExpr renders in pyodide (#6097)TooltipIcon description can be updated (#6099)BootstrapTemplate (#6100)FileDownload (#6101)Nothing published for this version
This micro-release fixes a large number of issues, applies some performance optimizations and resolves some regressions introduced in previous micro-r
This micro-release fixes a large number of issues, applies some performance optimizations and resolves some regressions introduced in previous micro-releases. The main regressions that were addressed include rendering of ChatMessage reaction icons, the ability to obtain an OAuth access_token if it is not a valid JWT token, and issues with async callbacks. We are very pleased to welcome new contributors @mitulb, @fazledyn-or, @benbarn313 and @vaniisgh and want to thank them for their contributions. We also want to thank @cdeil for continuing to contribute and the maintainer team including @MarcSkovMadsen, @Hoxbro, @maximlt, @ahuang11, @droumis and @philippjfr for their continued efforts.
ChatMessage (#5961)ChatInterface (#5962)Image.caption (#6003)Fast template styling (#6023)Player widget unicode icons with SVG for more consistency (#6030)ChatInterface callback exception summary (#6046)ToggleIcon widget (#6034)Tabulator.js ([#6060]https://github.com/holoviz/panel/pull/6060))GeoDataFrame and GeoSeries in DataFrame pane (#6061)ChatMessage (#6069)Viewable and ChatMessage (#6074)MaterialTemplate (#6075)DeckGL pane (#6077)VizzuChart.config (#5947)Tabulator styler handling (#5944)pn.cache before anything has been cached (#5981)obj.save() when threading is enabled (#5993)Matplotlib responsiveness and improve reference notebook (#5973)access_token (#5994)onload callbacks scheduled during or after load are still executed (#6005)text_align on Bokeh formatters that don't support it (#6010)ChatInterface post callback for default (#5998)ChatMessage reactions icon rendering (#6034)ChatInterface stop ensuring send button is re-enabled and placeholder removed (#6033)Design does not override properties on HoloViews pane (#6051)state.add_periodic_callback when callback is async (#6053)panel.chat.langchain import lazy improving import time (#6056)TooltipIcon (#6057)Nothing published for this version
Nothing published for this version
Nothing published for this version
This micro-release primarily addresses two important regressions related to the Tabulator text_align option and OAuth failing if the id_token does not
This micro-release primarily addresses two important regressions related to the Tabulator text_align option and OAuth failing if the id_token does not contain the required user information. We are very excited to welcome @TBym to the growing list of contributors and thank the core maintainers @Hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
ChatInterface buttons (#5839)text_align and HTMLTemplateFormatter on Tabulator (#5922)FastGridTemplate (#5935)Audio model respects sizing (#5936)pagination='remote' for all selection modes (#5929)Tabulator styler subset logic is not lost (#5938)id_token does not contain user key (#5939)BrowserInfo is imported by default (#5942)Nothing published for this version
Nothing published for this version
This micro-release focuses on a number of performance improvements, speeding up the initial rendering of simple apps by 2x in many cases. In addition
This micro-release focuses on a number of performance improvements, speeding up the initial rendering of simple apps by 2x in many cases. In addition it includes a number of smaller enhancements for various widgets, better support for async and threading and a number of bug fixes related to authentication, the Tabulator widget and a few other items. We are very pleased to welcome @isumitjha and @fohria as new contributors and want to thank our core team including @maximlt, @Hoxbro, @MarcSkovMadsen, @ahuang11 and @philippjfr for their continuing contributions.
Pane.clone (#5848)config attribute access (#5851)AutocompleteInput.search_strategy parameter (#5832)stdlib_module_names when determining pyodide dependencies (#5818)Tabulator.sortable parameter (#5827)serialize method on ChatMessage and ChatFeed (#5764)ChatMessage.avatar (#5870)FileDownload (#5878)text_align correctly if Tabulator is given Bokeh formatter (#5866)FileDownload embed=True style for Fast design (#5875)Tabulator selection across pages with pagination="remote" and selectable="checkbox" (#5889)VTK colorbar (#5902)DynamicMap updates when widget dimension has unit (#5904)MaterialTemplate app and site title separator (#5905)extension and config docs (#5790)Tabulator (#5825)GridSpec docs (#5840)Tabulator fontawesome css (#5892)Nothing published for this version
Nothing published for this version
Nothing published for this version
This micro-release primarily ships a variety of bug and regression fixes focusing on auth, the chat components, and WASM (i.e. PyScript and Pyodide) s
This micro-release primarily ships a variety of bug and regression fixes focusing on auth, the chat components, and WASM (i.e. PyScript and Pyodide) support. It also adds an enhancement to the auth components that now makes it possible to let users access applications as a guest. Many thanks to our new contributors @art3xa, @polivbr and @tupui as well as our core development team including @MarcSkovMadsen, @maximlt, @ahuang11 and @philippjfr.
ColorMap widget correctly handles shared layout and display parameters (#5732)access_token (#5734)Markdown code blocks always wrap (#5738)state.user_info if no id_token is present in cookies (#5747)Widget.from_param type annotation (#5754)ChatInterface with TextAreaInput (#5762)srcdoc on Location (#5774)Tabulator.style applies correctly with changing data (#5757)panel convert can correctly detect transformers_js import (#5772)ReactiveHTML css resources for relative paths (#5779)Card (#5786)Your coding agent can read these notes before it upgrades. Set up the MCP server →