Working with configuration options

Streamlit provides five different ways to set configuration options. This list is in reverse order of precedence, i.e. command line flags take precedence over environment variables when the same configuration option is provided multiple times.

push_pin

Note

If you change a .streamlit/config.toml file while the app is running, Streamlit reloads the configuration and treats the change like a source file change. The app reruns automatically if server.runOnSave is enabled or if the viewer turned on "Auto rerun" in the app menu or clicked "Always rerun". Otherwise, users are prompted to rerun the app. Theme settings and most client settings take effect on the next rerun. Server settings that Streamlit only reads at startup, like server.port, require a server restart.

  1. In a global config file at ~/.streamlit/config.toml for macOS/Linux or %userprofile%/.streamlit/config.toml for Windows:

    TOML
    [server]
    port = 80
    
  2. In a per-project config file at $CWD/.streamlit/config.toml, where $CWD is the folder you're running Streamlit from.

  3. In a script-level config file at .streamlit/config.toml in the folder that contains your entrypoint file (the file you pass to streamlit run). This is only different from the per-project config file when you run Streamlit from a different folder than your entrypoint file.

  4. Through STREAMLIT_* environment variables, such as:

    Terminal
    export STREAMLIT_SERVER_PORT=80
    export STREAMLIT_SERVER_COOKIE_SECRET=dontforgottochangeme
    
  5. As flags on the command line when running streamlit run:

    Terminal
    streamlit run your_script.py --server.port 80
    

All available configuration options are documented in config.toml. These options may be declared in a TOML file, as environment variables, or as command line options.

When using environment variables to override config.toml, convert the variable (including its section header) to upper snake case and add a STREAMLIT_ prefix. For example, STREAMLIT_CLIENT_SHOW_ERROR_DETAILS="none" is equivalent to the following in TOML:

TOML
[client]
showErrorDetails = "none"

When using command line options to override config.toml and environment variables, use the same case as you would in the TOML file and include the section header as a period-separated prefix. For example, the command line option --server.enableStaticServing true is equivalent to the following:

TOML
[server]
enableStaticServing = true

As mentioned during the installation process, Streamlit collects usage statistics. You can find out more by reading our Privacy Notice, but the high-level summary is that although we collect telemetry data we cannot see and do not store information contained in Streamlit apps.

If you'd like to opt out of usage statistics, add the following to your config file:

TOML
[browser]
gatherUsageStats = false

You can change the base colors of your app using the [theme] section of the configuration system. To learn more, see Theming.

As described in Command-line options, you can view all available configuration options using:

Terminal
streamlit config show
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.