NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2626 most downloaded on PyPI
The powerful data exploration & web app framework for Python.
Last release 22 days ago
26 Aug 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
477 releases · first in 2018
This patch release includes a number of important bug fixes, optimizations, and compatibility updates, particularly for React and ESM-based components
This patch release includes a number of important bug fixes, optimizations, and compatibility updates, particularly for React and ESM-based components. It also includes enhancements to the Tabulator table and more robust support for Audio/Video panes. Many thanks to @etihwo for his continued contributions and the maintainer team @hoxbro and @philippjfr.
bytes and BytesIO objects to Audio and Video panes (#7963)Tabulator (#7988)ReactComponents to bypass Shadow DOM (#7991)--ico-path CLI option to support explicit .ico path specification (#7992)ReactiveExpr.widget_layout (#7964)Tabulator fast design and fix styling issues (#7956)PyComponent (#7975)ReactComponent (#7996)Param widgets (#8003)One column per quarter.
Nothing published for this version
Nothing published for this version
This patch release adds a new option to disable FileDropper previews and fixes a regression when updating Column children in Bokeh<3.7. Additionally,
This patch release adds a new option to disable FileDropper previews and fixes a regression when updating Column children in Bokeh<3.7. Additionally, it includes a number of documentation improvements.
Many thanks to our returning contributors @dalthviz, @emmanuel-ferdman, @MarcSkovMadsen, and @hoxbro
--index-titles help string typo fix and don't call title on user input (#7935)Nothing published for this version
Nothing published for this version
Remove deprecated keyword in doc for DateRangeSlider and DateTimeRangSlider
This minor release is not as jam-packed as previous minor releases but adds a number of quality of life improvements, bug fixes and features along with version and compatibility updates for a number of JS dependencies. Many thanks to some of our more frequent contributors @dalthviz, @etihwo, our new contributor @emmanuel-ferdman and our maintainers @Hoxbro, @MarcSkovMadsen and @philippjfr.
FastListTemplate (#7774)Date(Time)Picker.allowInput option (#7886)Markdown.disable_anchors option (#7902)config.cache_path variable to configure default location for diskcache (#7903)--index-titles CLI option (#7916)Image.target option to configure where to open link_url (#7924)CodeEditor version 1.40.1 and add themes (#7874)ECharts version to 5.6.0 (#7905)JSONEditor version to 10.2.0 (#7905)Perspective version to 3.6.1 (#7919)hold is applied (#7892)FileDropper height is not limited (#7898)BaseTemplate._documents correctly on autoreload (#7897)Tabulator with multi index and multi index column (#7907)Nothing published for this version
Nothing published for this version
This release introduces a number of performance improvements related to rendering of children in layouts and ESM components, a number of bug fixes and
This release introduces a number of performance improvements related to rendering of children in layouts and ESM components, a number of bug fixes and a number of documentation improvements. We are pleased to welcome @malemburg as a new contributor and want to thank @s-alexey, @Coderambling, @etihwo and our core maintainer team including @hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
Column child rendering #7846ReactComponent child renders #7828indent and soft_tabs options to CodeEditor #7831Param.widget without instantiating object, speeding up Widget.from_param #7867AnyWidgetComponent types #7820None in select function for PyComponent #7837AttributeError in auth.py:CodeChallenge OAuth login #7844old_objects is empty in _get_objects() #7842ReactiveESM renders elements #7853Tabulator header color #7855Tabulator handle None case #7858Modal events are targeted to correct model #7860ChatFeed has inherent height #7861Markdown code blocks are always left aligned #7862ECharts delayed rendering #7869Nothing published for this version
Nothing published for this version
Nothing published for this version
This release primarily introduces improvements for ESM and React components and refactoring to make it easy to subclass existing components. This is a
This release primarily introduces improvements for ESM and React components and refactoring to make it easy to subclass existing components. This is an effort to make it easier to provide alternative implementations for Panel components. Additionally this release includes compatibility for Bokeh 3.7, bug fixes for TextEditor and a variety of other bug fixes. Many thanks to our new contributor @s-alexey, our returning contributors @Coderambling and the core maintainer team including @Hoxbro, @ahuang11 and @philippjfr.
model.useState in ReactComponents to reference nested parameter values (#7743)ReactComponent (#7787)HoloViews pane (#7775)DataModel (#7789)get_ipython check (#7734)ReactComponent children are sized correctly (#7741)ChatStep does not toggle from failed to success (#7742)Feed and scrollable layout children heights are not fixed (#7747)Child parameters on various components (#7749)ChatStep text does not overflow container (#7770)ChatFeed post hook ensuring it processes correct message (#7722)Fast design (#7777)TextEditor widget (#7739)Tabulator column is an index (#7792)EditableTemplate (#7816)TextEditor widget to Quill.js 2.0.2 (#7739)Plotly pane to Plotly.js 3.0.1 (#7731)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 primarily addresses issues running Panel behind a reverse proxy, improves the developer experience of working with custom ESM bundl
This patch release primarily addresses issues running Panel behind a reverse proxy, improves the developer experience of working with custom ESM bundles and adds compatibility for Plotly 6.0. Congratulations to @fabiovincenzi and @pankajp for their first contribution fixing inlining of stylesheets. Many thanks to to our returning contributors @ceball, @Azaya89 and @Coderambling as well as our core developer team including @ahuang11, @Maximlt, @hoxbro and @philippjfr for contributing to this release.
ChatFeed.scroll_to method (#7671)panel compile command (#7683)ReactiveESM.select so children are automatically detected (#7699)visible_range when Feed.objects are updated (#7673)Nothing published for this version
Nothing published for this version
Nothing published for this version
This release adds a number of features including a standalone Modal component, the ability to infer widget parameters from values, and the ability to
This release adds a number of features including a standalone Modal component, the ability to infer widget parameters from values, and the ability to easily edit a ChatMessage. Additionally it includes a number of enhancements for styling, particularly in dark themes, other enhancements for chat components and a large number of bug fixes. Many thanks for our returning contributor @kdheepak, our new contributors @pgierz, @jonatantreijs and @etihwo, and of course the whole maintainer team including @ahuang11, @MarcSkovMadsen @hoxbro, @maximlt and @philippjfr.
Widget.from_values method (#7033)Modal layout (#7083)ChatMessage and ChatFeed edit functionality (#7559)ChatFeed.callback_exception to accept a callable and 'traceback' (alias for verbose) (#7558)ChatAreaInput (#7562)Markdown pane line breaking behavior configurable (#7582)ChatFeed and ChatStep (#7608)FileSelector (#7618)FigureWidget events on Plotly pane (#7654, #7662)panel convert (#7589)Tabulator.patch when table is filtered (#7621)esbuild can be detected on windows during panel compile (#7625)Tabulator when it is wider than the viewport (#7626)panel oauth-secret command (#7628)NotificationArea (#7633)CompositeWidget can be populated in callback (#7636)FileSelector components (#7640)NotificationArea stylesheet loads in panel-preview (#7643)NestedSelect updates when options are changed (#7649)ButtonIcon displays an icon during click (#7650)panel convert to latest versions of pyodide and pyscript (#7584)Nothing published for this version
Nothing published for this version
This release fixes a regression causing .node_modules to be bundled into our released wheel and introduces a number of bug fixes and enhancements. Man
This release fixes a regression causing .node_modules to be bundled into our released wheel and introduces a number of bug fixes and enhancements. Many thanks to @mayonnaisecolouredbenz7, @pmeier, @Italirz, @Coderambling and our maintainer team @MarcSkovMadsen, @hoxbro, @ahuang11, @thuydotm, @maximlt and @philippjfr.
scroll_to a particular object on Column (#7206)Markdown copy button (#7490)ChatStep (#7520)ChatMessage repr (#7521)ChatInterface button tooltips (#7552)FileDownload label text updates correctly (#7489)Tabulator aggregation behavior (#7450).servable method (#7530)NestedSelect respects disabled parameter (#7533)Nothing published for this version
This release primarily focuses on improving the ESM components including fixes for serialization of parameter values, improvements for compiling bundl
This release primarily focuses on improving the ESM components including fixes for serialization of parameter values, improvements for compiling bundles, and building custom layouts. Additionally this release includes the new DatetimeSlider, adds a copy button to codeblocks in Markdown panes, improves responsive sizing for Plotly and starts adding better support for Polars. Many thanks and a warm welcome to our new contributor @MP-MaximilianLattka as well as our maintainer team, including @Hoxbro, @thuydotm, @ahuang11, @MarcSkovMadsen and @philippjfr.
DatetimeSlider widget (#7374)Markdown codeblocks (#7451)pn.cache (#7472)hold utility (#7474)panel compile collects bundles (#7477)Children parameter correctly resolves when multiple types are defined (#7454)HTML/Markdown streaming does not freeze during rapid updates (#7480)Plotly sizes correctly on initial render (#7483)Nothing published for this version
Nothing published for this version
This release fixes a number of smaller regressions related to Tabulator row_content, ensures --dev/--autoreload picks up on external modules correctly
This release fixes a number of smaller regressions related to Tabulator row_content, ensures --dev/--autoreload picks up on external modules correctly and resolves OAuth guest endpoints correctly. Additionally it introduces some enhancements and bug fixes for custom components, such as adding support for loading custom components ESM Javascript bundles from the inbuilt endpoint ensuring that the bundle can be cached by the browser. Many thanks and welcome to our new contributors @chryshumble and @haojungc, our returning contributors @TheoMathurin, @aktech and @Coderambling and the core maintainer team @Hoxbro, @ahuang11, @MarcSkovMadsen and @philippjfr for their contributions to this release.
browser_info object (#7382)Tabulator embed_content and optimize row expansion (#7364)ReactiveESM._importmap typing (#7392)Tabulator from overlapping when max_height is set (#7403)Children inplace (#7417)Tabulator null formatter to empty string (#7421)Tabulator version to 6.3 (#7419)Nothing published for this version
Nothing published for this version
This release is a small patch release primarily addressing a regression handling selections on multi-indexed data on the Tabulator widget along with a
This release is a small patch release primarily addressing a regression handling selections on multi-indexed data on the Tabulator widget along with a number of documentation improvements. Many thanks to @jrycw along with @MarcSkovMadsen, @Hoxbro and @philippjfr for their contributions to this release.
Tabulator data (#7336)Nothing published for this version
This release primarily focuses on a number of tweaks and enhancements for the documentation and also resolves a number of bugs related to Tabulator re
This release primarily focuses on a number of tweaks and enhancements for the documentation and also resolves a number of bugs related to Tabulator rendering and the new FastAPI integration. As always, many thanks to our contributors including our new contributors @dennisjlee and @alexcjohnson, our returning contributors @thuydotm and @jbednar and the core maintainer team @hoxbro, @maximlt, @ahuang11, @MarcSkovMadsen and @philippjfr.
panel.chat.langchain (#7297)Timepicker (#7308)Tabulator.selection consistency when pagination='local' (#7304)Location (#7316)Plotly datetime are correctly converted from timestamp to date string (#7319)--setup script until after server startup if --num-procs is greater than 1 (#7289)Tabulator cells (#7291)FileDropper (#7307)--dev over --autoreload (#7285)Nothing published for this version
Nothing published for this version
Remove deprecated panel.depends.param_value_if_widget function
This release, while technically a minor release hugely expands the scope of what is possible in Panel. In particular the introduction of the new panel.custom module makes it trivially easy to create new JS and React based components using modern tooling, a first-class developer experience and support for compilation and bundling. We are incredibly excited to see which new components you build using this approach. This release also includes native integration with FastAPI, such that you can now run Panel apps natively on an existing FastAPI server. We also introduce a number of new components, improved the developer experience, and squashed a huge number of bugs, particularly for the Tabulator component.
We really appreciate all the work that went into this release from 21 separate contributors. In particular we would like to welcome our new contributors @twobitunicorn, @justinwiley, @dwr-psandhu, @jordansamuels, @gandhis1, @jeffrey-hicks, @kdheepak, @sjdemartini, @alfredocarella and @pmeier. Next we want to recognize our returning contributors @cdeil, @Coderambling, @jrycw and @TBym, and finally the dedicated crew of core contributors which includes @Hoxbro, @MarcSkovMadsen, @ahuang11, @maximlt, @mattpap, @jbednar and @philippjfr.
JSComponent and ReactComponent (#5593)Placeholder pane (#6790)FileDropper widget (#6826)ChatStep component to show/hide intermediate steps (#6617)TimePicker widget (#7013)PyComponent baseclass (#7051)FileInput (#6808)autoreload robust to syntax errors and empty apps (#7028)Tabulator.page_size (#6978)Feed (#7101)Tabulator (#7108)ChatFeed (#7042)HTML and Markdown panes (#7125)Player interval value on click (#7064)Player options to scale and hide buttons (#7065)on_keyup and value_input for CodeEditor (#6919)BrowserInfo (#6931)ChatMessage layout (#7209, #7266)Tabulator (#7251)HTML and Markdown panes (#7258, #7263)Gauge is responsively sized (#7034)Tabulator sorters are correctly synced (#7036)Tabulator selection is consistent across paginated, sorted and filtered states (#7058)Card header (#7057)Tabulator range selection applies to current view (#7063)Tabulator.selection is updated when indexes change (#7066)Tabulator can be updated with None value (#7067)Tabulator styling is correctly applied on multi-index (#7075)Tabulator data is updated after filters are changed (#7074)DataFrame pane header and cell alignment (#7082)Tabulator using Fast Design (#7085)Tabulator (#7084)Tabulator expanded indexes when paginated, filtered and sorted (#7103)HoloViews backends do not error out (#7114)'multiselect' Tabulator.header_filter uses 'in' filter function (#7111)ChatFeed (#7148)LaTeX pane MathJax rendering (#7188)NestedSelect if level is empty (#7194)--setup/--autoreload/--warm work with --num-procs (#6913)state.notifications to fix pyodide (#7235)DateRangePicker (#7240)Tabulator (#7241)Tabulator.header_filter with recent Pandas versions (#7242)Dial background (#7261)Tabulator to 6.2.1 (#6840)Textual (#7130)Tabulator (#7053)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 →