Gradio

AI

Build and share machine-learning apps in Python.

Latest 6.22.0 · by Hugging FaceWebsitegradio-app/gradio

Release activity

Release activity — 3 releases across 3 days since Jul 7, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jul 7, 2026. Older weeks are hidden at this screen width.
MayJunJulAug
SundayNo releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026
MondayNo releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026
Tuesday1 release on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026
WednesdayNo releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 20261 release on Jul 29, 2026No releases on Aug 5, 2026
ThursdayNo releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026
FridayNo releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 20261 release on Jul 31, 2026No releases on Aug 7, 2026
SaturdayNo releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026

3 releases since Jul 7, 2026

Changelog

6.22.0

Added 6
  • gr.Workflow now auto-creates input/output nodes for model nodes
  • gr.Workflow node error messages can be copied
  • Document the oauth_token parameter in the View API panel
  • Workflow nodes are now resizable
  • Workflow supports full-screen image view
  • Workflow supports webcam and microphone capture
Changed 2
  • gr.Workflow replaces the Input/Output buttons with a single Component button whose direction is derived from wiring
  • gr.Workflow renames Data to Dataset
Fixed 1
  • Publish the Prism global before its grammar files load to fix ReferenceError on docs pages during hydration
Security 1
  • Harden authentication and file redirect boundaries
Features
  • #13685 6302098 - gr.Workflow: auto-create input/output nodes for model nodes (as already happens for Space nodes), replace the "Input"/"Output" buttons with a single "Component" button whose direction is derived from wiring, rename "Data" to "Dataset", let node error messages be copied, and document the oauth_token parameter in the View API panel. Thanks @abidlabs!
  • #13688 321361f - Workflow: resizable nodes, full-screen image view, and webcam/mic capture. Thanks @abidlabs!
  • #13697 3ac9d5d - Fix release CI regressions for assets and bundles. Thanks @abidlabs!
Fixes
  • #13692 3676c45 - publish the Prism global before its grammar files load, so the docs pages stop failing to hydrate with ReferenceError: Prism is not defined. Thanks @abidlabs!
  • #13687 fd79d09 - Harden authentication and file redirect boundaries. Thanks @abidlabs!
View originalPermalink
How 6.22.0 went

6.21.0

Added 3
  • Allow API callers to supply an oauth_token for endpoints that take a gr.OAuthToken via oauth_token on the Python and JS clients
  • Add model endpoint integration to workflow
  • Add html modality to workflow
Fixed 17
  • Preserve browser-visible proxy origins for frontend assets and API requests, and retain app-level FastAPI root paths
  • Fix chained events after cancellation and while the browser tab is hidden
  • Fix gradio cc dev, gradio cc build, and gradio cc install to respect a custom FRONTEND_DIR set on the component class
  • Report why the Node SSR server failed, and serve without SSR on the expected port
  • Fix spurious separators from empty tokens in HighlightedText with combine_adjacent=True
  • Improve workflow canvas authoring and examples
Features
  • #13601 0ee5cc8 - Preserve browser-visible proxy origins for frontend assets and API requests, and retain app-level FastAPI root paths. Thanks @abidlabs!
  • #13620 5200235 - Fix chained events after cancellation and while the browser tab is hidden. Thanks @abidlabs!
  • #13667 2d753d0 - oauth: let API callers supply a token for endpoints that take a gr.OAuthToken, via oauth_token on the Python and JS clients — sent only to endpoints that declare they need one. Thanks @abidlabs!
  • #13329 7ac583a - Make builds go zoom zoom. Thanks @pngwn!
  • #13650 8bdc643 - Fix gradio cc dev, gradio cc build, and gradio cc install to respect a custom FRONTEND_DIR set on the component class, instead of assuming the frontend code lives in the frontend directory. Thanks @abidlabs!
  • #13558 d07af9d - workflow: add model endpoint integration. Thanks @hannahblair!
  • #13681 eed6ebd - Report why the Node SSR server failed, and serve without SSR on the expected port. Thanks @abidlabs!
  • #13654 2f6d04a - workflow: improve canvas authoring and examples. Thanks @abidlabs!
  • #13606 04c5527 - Fix spurious separators from empty tokens in HighlightedText with combine_adjacent=True. Thanks @hysts!
  • #13668 3473879 - workflow: add html modality. Thanks @hannahblair!
  • #13666 d3c70fa - workflow: various UX improvements, including opening the write-access link in a browser tab automatically when a gr.Workflow is launched locally, and calling vision-language models through chat completions so image-text-to-text model nodes work. Thanks @abidlabs!
  • #13590 d5ef897 - workflow: fix error banner and textarea visibility. Thanks @hannahblair!
  • #13616 a2ddecf - workflow: ensure we handle trailing null values. Thanks @hannahblair!
Fixes
  • #13627 3b12faa - Keep in-flight events and generators working when an app is hot-reloaded (gradio app.py). Thanks @abidlabs!
  • #13622 95369a3 - Fix Windows filename/path handling (reserved names, node probe, file URLs). Thanks @abidlabs!
  • #13613 195593e - Rerun HTML mount behavior when gr.render replaces an unkeyed component. Thanks @abidlabs!
  • #13626 7d71469 - Reset audio playback position when the file is cleared or a new one is uploaded. Thanks @hysts!
  • #13662 3aa5d5b - Strip <style> and <link> elements when sanitizing HTML in the frontend. Thanks @hysts!
  • #13671 b844e74 - Fix crash when a streaming gr.ChatInterface function yields nothing. Thanks @hysts!
  • #13612 0286f2c - workflow: use anyio.to_thread to send sync server functions to thread pool. Thanks @hannahblair!
  • #13658 bad052c - Fix ColorPicker dispatching blur while the user is still using the picker dialog. Thanks @hysts!
  • #13676 8c69a96 - Stop deep-copying chat messages so components work as chat content again. Thanks @hysts!
  • #13605 f3889bf - Fix gr.Code not rendering when it has no initial value. Thanks @hysts!
  • #13666 d3c70fa - cli: don't delete the installed skill when an agent's skills directory is a symlink to the central location. Thanks @abidlabs!
  • #13661 8647a06 - Keep fullscreen component controls inside the visible viewport when the page has a scrollbar. Thanks @hysts!
  • #13607 c287b7b - Fix gr.State passing its callable default to event handlers instead of the called value. Thanks @hysts!
  • #13639 1535d69 - Fix hidden tab focus and label overflow menu. Thanks @dawoodkhan82!
  • #13678 46e511b - Only remount a plot when its payload changes. Thanks @hysts!
  • #13660 80d67ad - Upload recorded audio only once to fix intermittent Content-Length errors when loading recordings. Thanks @hysts!
View originalPermalink
How 6.21.0 went

6.20.0

Added 5
  • Gallery Download All
  • Workflow: show downstream output on subgraph run
  • Workflow: auto add node on port click
  • Workflow: validate model before invoking inference client
  • Workflow: inject token into fn functions
Changed 3
  • Workflow: update input change handling
  • Migrate Image components to Svelte 5
  • Replace deprecated Starlette 422 status constant in queue validator error path
Fixed 11
  • Fix JSONDecodeError when loading cached examples with negative number outputs
  • Workflow: forward _token to bound fn when no request session
  • Fix gr.Plot collapsing to zero height for autosize Plotly figures
  • Fix embedded Gradio apps growing infinitely tall on HF Spaces when using vh/% heights or fill_height
  • Enforce max_file_size for multipart uploads to the /component_server route
  • Fix gr.ImageEditor high CPU usage when idle by sleeping the render loop when nothing is changing
Security 1
  • Serve /gradio_api/file=<url> via an SSRF-safe streaming proxy instead of an open redirect
Features
  • #13566 79b9171 - Gallery Download All. Thanks @dawoodkhan82!
  • #13544 784eb53 - workflow: show downstream output on subgraph run. Thanks @hannahblair!
  • #13582 59968e8 - workflow: update input change handling. Thanks @hannahblair!
  • #13543 0533483 - Migrate Image components to Svelte 5. Thanks @dawoodkhan82!
  • #13557 55241c8 - workflow: auto add node on port click. Thanks @hannahblair!
  • #13549 ec64242 - workflow: validate model before invoking inference client. Thanks @hannahblair!
  • #13555 f7b872e - Replace deprecated Starlette 422 status constant in queue validator error path. Thanks @copilot-swe-agent!
  • #13574 75c5d1e - workflow: inject token into fn functions. Thanks @hannahblair!
Fixes
  • #13592 876d333 - Fix JSONDecodeError when loading cached examples with negative number outputs. Thanks @hysts!
  • #13596 1c5c538 - Security: serve /gradio_api/file=<url> via an SSRF-safe streaming proxy instead of an open redirect. Thanks @abidlabs!
  • #13595 4e72cd1 - workflow: forward _token to bound fn when no request session. Thanks @hannahblair!
  • #13540 98de45e - Fix gr.Plot collapsing to zero height for autosize Plotly figures. Thanks @hysts!
  • #13563 46d391b - Fix embedded Gradio apps growing infinitely tall on HF Spaces when using vh/% heights or fill_height. Thanks @abidlabs!
  • #13580 63609f1 - Enforce max_file_size for multipart uploads to the /component_server route. Thanks @abidlabs!
  • #13571 c576675 - Fix gr.ImageEditor high CPU usage when idle by sleeping the render loop when nothing is changing. Thanks @abidlabs!
  • dcc654d - Fix ImageEditor transform tools and hidden cleanup. Thanks @dawoodkhan82!
  • #13588 2e80558 - Fire state.change() for streaming (.stream()) events. Thanks @hysts!
  • #13597 7a595cb - Fix ImageEditor brush texture resets. Thanks @dawoodkhan82!
  • #13581 461d82d - Use same-origin credentials in the JS client so cross-origin embeds work again. Thanks @hysts!
  • #13560 745f20c - Fix gr.Tabs.select() event not firing when switching tabs. Thanks @abidlabs!
  • #13529 6438369 - Wait for in-flight head scripts before running js_on_load in gr.HTML. Thanks @hysts!
  • #13553 9a72d0c - Fix Column staying hidden after a multi-yield visibility update. Thanks @hysts!
  • #13561 882df35 - Fix TypeError: this.app.$destroy is not a function when embedding a Gradio app with the <gradio-app> web component. Thanks @abidlabs!
View originalPermalink
How 6.20.0 went
View all

Discussion