Skip to content

Running a Flet app (Hot Reload)

Flet apps can be executed as either desktop or web applications using the flet run command. Doing so will start the app in a native OS window or a web browser, respectively, with hot reload enabled to view changes in real-time.

Desktop app#

To run Flet app as a desktop app, use the following command:

uv run flet run
flet run

When you run the command without any arguments, main.py script in the current directory will be executed, by default.

If you need to provide a different path, use the following command:

uv run flet run [script]
flet run [script]

Where [script] is a relative (ex: counter.py) or absolute (ex: /Users/john/projects/flet-app/main.py) path to the Python script you want to run.

The app will be started in a native OS window:

  • macOS


    macOS

  • Windows


    Windows

Web app#

To run Flet app as a web app, use the --web (or -w) option:

uv run flet run --web [script]  # (1)!
  1. A fixed port can be specified using --port ( or -p) option, followed by the port number.
flet run --web [script]  # (1)!
  1. A fixed port can be specified using --port ( or -p) option, followed by the port number.

A new browser window/tab will be opened and the app will be using a random TCP port:

Web

Web app

Watching for changes#

By default, Flet will watch the script file that was run and reload the app whenever the contents of this file are modified+saved, but will not watch for changes in other files.

To modify this behavior, you can use one or more of these flet run options:

  • -d or --directory to watch for changes in the [script]s directory only
  • -r or --recursive to watch for changes in the [script]s directory and all sub-directories recursively

Example

uv run flet run --recursive [script]
flet run --recursive [script]