Skip to main content

Gradio: Build Machine Learning Web Apps — in Python

Gradio is an open-source Python package that allows you to quickly build a demo or web application for your machine learning model, API, or any arbitrary Python function. You can then share a link to your demo or web application in just a few seconds using Gradio's built-in sharing features. No JavaScript, CSS, or web hosting experience needed!

It just takes a few lines of Python to create your own demo, so let's get started 💫

Installation

Prerequisite: Gradio requires Python 3.10 or higher.

We recommend installing Gradio using pip, which is included by default in Python. Run this in your terminal or command prompt:

pip install --upgrade gradio

Building Your First Demo

You can run Gradio in your favorite code editor, Jupyter notebook, Google Colab, or anywhere else you write Python. Let's write your first Gradio app:

import gradio as gr

def greet(name, intensity):
    return "Hello, " + name + "!" * int(intensity)

demo = gr.Interface(
    fn=greet,
    inputs=["text", "slider"],
    outputs=["text"],
    api_name="predict"
)

demo.launch()

Now, run your code. If you've written the Python code in a file named app.py, then you would run python app.py from the terminal.

The demo below will open in a browser on http://localhost:7860 if running from a file. If you are running within a notebook, the demo will appear embedded within the notebook.

hello_world_4 demo

Type your name in the textbox on the left, drag the slider, and then press the Submit button. You should see a friendly greeting on the right.

Understanding the Interface Class

You'll notice that in order to make your first demo, you created an instance of the gr.Interface class. The Interface class is designed to create demos for machine learning models which accept one or more inputs, and return one or more outputs.

The Interface class has three core arguments:

  • fn: the function to wrap a user interface (UI) around
  • inputs: the Gradio component(s) to use for the input. The number of components should match the number of arguments in your function.
  • outputs: the Gradio component(s) to use for the output. The number of components should match the number of return values from your function.

The fn argument is very flexible -- you can pass any Python function that you want to wrap with a UI. In the example above, we saw a relatively simple function, but the function could be anything from a music generator to a tax calculator to the prediction function of a pretrained machine learning model.

The inputs and outputs arguments take one or more Gradio components. As we'll see, Gradio includes more than 30 built-in components (such as the gr.Textbox(), gr.Image(), and gr.HTML() components) that are designed for machine learning applications.

If your function accepts more than one argument, as is the case above, pass a list of input components to inputs, with each input component corresponding to one of the arguments of the function, in order. The same holds true if your function returns more than one value: simply pass in a list of components to outputs. This flexibility makes the Interface class a very powerful way to create demos.

We'll dive deeper into the gr.Interface on our series on building Interfaces.

Sharing Your Demo

What good is a beautiful demo if you can't share it? Gradio lets you easily share a machine learning demo without having to worry about the hassle of hosting on a web server. Simply set share=True in launch(), and a publicly accessible URL will be created for your demo. Let's revisit our example demo, but change the last line as follows:

import gradio as gr

def greet(name):
    return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="textbox", outputs="textbox")
    
demo.launch(share=True)  # Share your demo with just 1 extra parameter 🚀

When you run this code, a public URL will be generated for your demo in a matter of seconds, something like:

👉   https://a23dsf231adb.gradio.live

Now, anyone around the world can try your Gradio demo from their browser, while the machine learning model and all computation continues to run locally on your computer.

To learn more about sharing your demo, read our dedicated guide on sharing your Gradio application.

An Overview of Gradio

So far, we've been discussing the Interface class, which is a high-level class that lets you build demos quickly with Gradio. But what else does Gradio include?

Custom Demos with gr.Blocks

Gradio offers a low-level approach for designing web apps with more customizable layouts and data flows with the gr.Blocks class. Blocks supports things like controlling where components appear on the page, handling multiple data flows and more complex interactions (e.g. outputs can serve as inputs to other functions), and updating properties/visibility of components based on user interaction — still all in Python.

You can build very custom and complex applications using gr.Blocks(). For example, the popular image generation Automatic1111 Web UI is built using Gradio Blocks. We dive deeper into the gr.Blocks on our series on building with Blocks.

Chatbots with gr.ChatInterface

Gradio includes another high-level class, gr.ChatInterface, which is specifically designed to create Chatbot UIs. Similar to Interface, you supply a function and Gradio creates a fully working Chatbot UI. If you're interested in creating a chatbot, you can jump straight to our dedicated guide on gr.ChatInterface.

The Gradio Python & JavaScript Ecosystem

That's the gist of the core gradio Python library, but Gradio is actually so much more! It's an entire ecosystem of Python and JavaScript libraries that let you build machine learning applications, or query them programmatically, in Python or JavaScript. Here are other related parts of the Gradio ecosystem:

  • Gradio Python Client (gradio_client): query any Gradio app programmatically in Python.
  • Gradio JavaScript Client (@gradio/client): query any Gradio app programmatically in JavaScript.
  • Hugging Face Spaces: the most popular place to host Gradio applications — for free!
  • Server mode (gradio.Server): build a custom frontend with Gradio's backend — queue, streaming, MCP, ZeroGPU, and Spaces hosting included.

What's Next?

Keep learning about Gradio sequentially using the Gradio Guides, which include explanations as well as example code and embedded interactive demos. Next up: let's dive deeper into the Interface class.

Or, if you already know the basics and are looking for something specific, you can search the more technical API documentation.

AI Coding Skills

Gradio provides a "skill" that enriches AI coding assistants (like Cursor, Claude Code, Codex, etc.) with Gradio-specific knowledge, so that they can build Gradio apps more effectively. This is especially useful when creating custom Gradio components or styling. Install the Gradio skill for coding assistants with a single command:

gradio skills add

This installs to the shared .agents/skills directory used by Codex, Cursor, OpenCode, and other compatible agents. Use --global to install at the user level (applies to all projects), or an agent flag such as --claude to also create a link in that agent's skills directory.

You can also install a skill for a specific Gradio Space, which generates API usage docs (Python, JS, cURL) on the fly:

gradio skills add abidlabs/en2fr

Questions?

If you'd like to report a bug or have a feature request, please create an issue on GitHub. For general questions about usage, we are available on our Discord server and happy to help.

If you like Gradio, please leave us a ⭐ on GitHub!

Open Source Stack

Gradio is built on top of many wonderful open-source libraries!

huggingface python fastapi encode svelte vite pnpm tailwind storybook chromatic

License

Gradio is licensed under the Apache License 2.0 found in the LICENSE file in the root directory of this repository.

Citation

Also check out the paper Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild, ICML HILL 2019, and please cite it if you use Gradio in your work.

@article{abid2019gradio,
  title = {Gradio: Hassle-Free Sharing and Testing of ML Models in the Wild},
  author = {Abid, Abubakar and Abdalla, Ali and Abid, Ali and Khan, Dawood and Alfozan, Abdulrahman and Zou, James},
  journal = {arXiv preprint arXiv:1906.02569},
  year = {2019},
}

Metadata

Release files for gradio 6.29.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gradio 6.29.0
File Size Uploaded
gradio-6.29.0.tar.gz 45.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for gradio 6.29.0
File Interpreter ABI Platform
gradio-6.29.0-py3-none-any.whl Python 3 none any Details

Total release size: 76.5 MB

Release files / gradio-6.29.0.tar.gz

Download URL gradio-6.29.0.tar.gz
Size 45.1 MB
Tags Source
SHA-256 checksum
How to use checksums
ed2d04c49199a5d6c4d40e9ba94fb3d4075e114075904c2c7dc59c2b06122de6
BLAKE2b-256 checksum
How to use checksums
0ad0409bc699f9b02a429df209c104547005491bd17dfe5f55c43396237dd352
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.12.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release files / gradio-6.29.0-py3-none-any.whl

Download URL gradio-6.29.0-py3-none-any.whl
Size 31.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
0325d8d48fba896ae49f06d775fc93c3ca592709e1ec908bcc0d1631b75fa593
BLAKE2b-256 checksum
How to use checksums
0f1c2d4bc21859fb2ddefdcf2291b947aa96704d7738343a5f3ec232bd5c6127
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.12.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

6.29.0 This release

2 release files

6.28.0

2 release files

6.27.0

2 release files

6.26.0

2 release files

6.25.0

2 release files

6.24.0

2 release files

6.23.1

2 release files

6.22.0

2 release files

6.21.0

2 release files

6.19.0

2 release files

6.18.0

2 release files

6.15.2

2 release files

6.15.1

2 release files

6.15.0

2 release files

6.14.0

2 release files

6.13.0

2 release files

6.12.0

2 release files

6.10.0

2 release files

6.9.0

2 release files

6.8.0

2 release files

6.7.0

2 release files

6.6.0

2 release files

6.5.1

2 release files

6.5.0

2 release files

6.4.0

2 release files

6.3.0

2 release files

6.2.0

2 release files

6.1.0

2 release files

6.0.2

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.50.0

1 release file

5.47.2

2 release files

5.47.1

2 release files

5.47.0

2 release files

5.46.1

2 release files

5.46.0

2 release files

5.45.0

2 release files

5.44.1

2 release files

5.44.0

2 release files

5.43.1

2 release files

5.43.0

2 release files

5.39.0

2 release files

5.38.2

2 release files

5.38.1

2 release files

5.38.0

2 release files

5.37.0

2 release files

5.36.2

2 release files

5.35.0

2 release files

5.34.2

2 release files

5.34.1

2 release files

5.34.0

2 release files

5.33.2

2 release files

5.33.1

2 release files

5.32.0

2 release files

5.31.0

2 release files

5.30.0

2 release files

5.29.1

2 release files

5.28.0

2 release files

5.27.1

2 release files

5.27.0

2 release files

5.26.0

2 release files

5.25.2

2 release files

5.25.1

2 release files

5.25.0

2 release files

5.23.2

2 release files

5.23.1

2 release files

5.23.0

2 release files

5.22.0

2 release files

5.21.0

2 release files

5.20.1

1 release file

5.20.0

1 release file

5.19.0

1 release file

5.18.0

1 release file

5.17.1

1 release file

5.17.0

1 release file

5.16.2

1 release file

5.16.1

1 release file

5.16.0

1 release file

5.15.0

1 release file

5.14.0

1 release file

5.13.2

1 release file

5.13.1

1 release file

5.13.0

1 release file

5.12.0

1 release file

5.11.0

1 release file

5.10.0

1 release file

5.9.1

1 release file

5.9.0

1 release file

5.8.0

1 release file

5.7.1

1 release file

5.7.0

1 release file

5.6.0

1 release file

5.5.0

1 release file

5.4.0

1 release file

5.3.0

1 release file

5.1.0

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.44.1

2 release files

4.44.0

2 release files

4.42.0

2 release files

4.40.0

2 release files

4.39.0

2 release files

4.38.1

2 release files

4.38.0

2 release files

4.37.2

2 release files

4.37.1

2 release files

4.32.1

2 release files

4.32.0

2 release files

4.31.5

2 release files

4.31.4

2 release files

4.31.3

2 release files

4.31.2

2 release files

4.31.1

2 release files

4.31.0

2 release files

4.28.3

2 release files

4.28.2

2 release files

4.28.1

2 release files

4.28.0

2 release files

4.27.0

2 release files

4.24.0

2 release files

4.23.0

2 release files

4.22.0

2 release files

4.19.2

2 release files

4.19.1

2 release files

4.19.0

2 release files

4.18.0

2 release files

4.16.0

2 release files

4.15.0

2 release files

4.14.0

2 release files

4.12.0

2 release files

4.11.0

2 release files

4.10.0

2 release files

4.9.1

2 release files

4.9.0

2 release files

4.8.0

2 release files

4.7.1

2 release files

4.7.0

2 release files

4.5.0

2 release files

4.4.1

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.50.2

2 release files

3.50.1

2 release files

3.50.0

2 release files

3.49.0

2 release files

3.48.0

2 release files

3.45.2

2 release files

3.45.1

2 release files

3.45.0

2 release files

3.44.4

2 release files

3.44.3

2 release files

3.44.2

2 release files

3.44.1

2 release files

3.44.0

2 release files

3.41.2

2 release files

3.41.1

2 release files

3.41.0

2 release files

3.40.1

2 release files

3.40.0

2 release files

3.39.0

2 release files

3.38.0

2 release files

3.37.0

2 release files

3.35.2

2 release files

3.35.1

2 release files

3.35.0

2 release files

3.32.0

2 release files

3.31.0

2 release files

3.30.0

2 release files

3.28.1

2 release files

3.28.0

2 release files

3.27.0

2 release files

3.26.0

2 release files

3.25.0

2 release files

3.24.1

2 release files

3.24.0

2 release files

3.23.0

2 release files

3.22.1

2 release files

3.22.0

2 release files

3.21.0

2 release files

3.19.1

2 release files

3.19.0

2 release files

3.17.0

2 release files

3.16.2

2 release files

3.15.0

2 release files

3.14.0

2 release files

3.13.2

2 release files

3.13.1

2 release files

3.13.0

2 release files

3.12.0

2 release files

3.11.0

2 release files

3.10.1

2 release files

3.10.0

2 release files

3.9.1

2 release files

3.9

2 release files

3.8.2

2 release files

3.8.1

2 release files

3.8

2 release files

3.7

2 release files

3.6

2 release files

3.5

2 release files

3.4.1

2 release files

3.4

3 release files

3.3.1

2 release files

3.3

2 release files

3.2

2 release files

3.1.7

2 release files

3.1.6

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.3

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.26

2 release files

3.0.25

2 release files

3.0.22

2 release files

3.0.21

2 release files

3.0.20

2 release files

3.0.19

2 release files

3.0.18

2 release files

3.0.17

2 release files

3.0.16

2 release files

3.0.15

2 release files

3.0.14

2 release files

3.0.9

2 release files

3.0.8

2 release files

3.0.7

2 release files

3.0.6

2 release files

3.0.5

2 release files

3.0.4

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0

2 release files

2.9.4

2 release files

2.9.3

2 release files

2.9.2

2 release files

2.9.1

2 release files

2.9.0

2 release files

2.8.14

2 release files

2.8.13

2 release files

2.8.12

2 release files

2.8.11

2 release files

2.8.10

2 release files

2.8.9

2 release files

2.8.8

2 release files

2.8.7

2 release files

2.8.6

2 release files

2.8.5

2 release files

2.8.4

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.7.5

2 release files

2.7.0

2 release files

2.6.4

2 release files

2.6.3

2 release files

2.6.2

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.3

2 release files

2.5.2

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.6

2 release files

2.4.5

2 release files

2.4.4

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.9

2 release files

2.3.7

2 release files

2.3.6

2 release files

2.3.5

2 release files

2.3.4

2 release files

2.3.3

2 release files

2.3.0

2 release files

2.2.15

2 release files

2.2.14

2 release files

2.2.13

2 release files

2.2.12

2 release files

2.2.11

2 release files

2.2.10

2 release files

2.2.8

2 release files

2.2.7

2 release files

2.2.6

3 release files

2.2.5

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.7

2 release files

2.1.6

2 release files

2.1.4

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.10

2 release files

2.0.9

2 release files

2.0.8

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.7.7

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.4

2 release files

1.6.3

2 release files

1.6.2

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.8

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page