Type object
File match **/.streamlit/config.toml
Schema URL https://catalog.lintel.tools/schemas/schemastore/streamlit-configuration-file/latest.json
Source https://www.schemastore.org/streamlit-config.json

Validate with Lintel

npx @lintel/lintel check
Type: object

Schema for Streamlit configuration files that define settings for your working directory or global development environment

Properties

global object

Global configuration options for Streamlit

2 nested properties
disableWidgetStateDuplicationWarning boolean

By default, Streamlit displays a warning when a user sets both a widget default value in the function defining the widget and a widget value via the widget's key in st.session_state. If you'd like to turn off this warning, set this to True.

Default: false
showWarningOnDirectExecution boolean

If True, will show a warning when you run a Streamlit-enabled script via 'python my_script.py'.

Default: true
logger object

Configuration for Streamlit's internal logger

2 nested properties
level string

Level of logging for Streamlit's internal logger

Default: "info"
Values: "error" "warning" "info" "debug"
messageFormat string

String format for logging messages. If logger.datetimeFormat is set, logger messages will default to '%(asctime)s.%(msecs)03d %(message)s'. See Python's documentation for available attributes.

Default: "%(asctime)s %(message)s"
client object

Client-side configuration options

3 nested properties
showErrorDetails string

Controls whether uncaught app exceptions and deprecation warnings are displayed in the browser

Default: "full"
Values: "full" "stacktrace" "type" "none"
toolbarMode string

Change the visibility of items in the toolbar, options menu, and settings dialog (top right of the app)

Default: "auto"
Values: "auto" "developer" "viewer" "minimal"
showSidebarNavigation boolean

Controls whether to display the default sidebar page navigation in a multi-page app. This only applies when app's pages are defined by the 'pages/' directory.

Default: true
runner object

Configuration for Streamlit's script runner

4 nested properties
magicEnabled boolean

Allows you to type a variable or string by itself in a single line of Python code to write it to the app.

Default: true
fastReruns boolean

Handle script rerun requests immediately, rather than waiting for script execution to reach a yield point. This makes Streamlit much more responsive to user interaction, but it can lead to race conditions in apps that mutate session_state data outside of explicit session_state assignment statements.

Default: true
enforceSerializableSessionState boolean

Raise an exception after adding unserializable data to Session State. Some execution environments may require serializing all data in Session State, so it may be useful to detect incompatibility during development, or when the execution environment will stop supporting it in the future.

Default: false
enumCoercion string

Controls how 'options' widgets (radio, selectbox, multiselect) coerce Enum members. This is particularly useful when Enum classes are redefined during script reruns. 'off' disables coercion completely, 'nameOnly' allows coercion when member names match, and 'nameAndValue' requires both member names and values to match for coercion.

Default: "nameOnly"
Values: "off" "nameOnly" "nameAndValue"
server object

Server configuration options for Streamlit

20 nested properties
folderWatchList string[]

List of directories to watch for changes. By default, Streamlit watches files in the current working directory and its subdirectories. Use this option to specify additional directories to watch. Paths must be absolute.

Default:
[]
folderWatchBlacklist string[]

List of directories to ignore for changes. By default, Streamlit watches files in the current working directory and its subdirectories. Use this option to specify exceptions within watched directories. Paths can be absolute or relative to the current working directory.

Default:
[]
fileWatcherType string

Change the type of file watcher used by Streamlit, or turn it off completely. 'auto' attempts to use watchdog module and falls back to polling, 'watchdog' forces watchdog module, 'poll' forces polling, 'none' disables file watching.

Default: "auto"
Values: "auto" "watchdog" "poll" "none"
cookieSecret string

Symmetric key used to produce signed cookies. If deploying on multiple replicas, this should be set to the same value across all replicas to ensure they all share the same secret.

headless boolean

If false, will attempt to open a browser window on start. Default is false unless on a Linux box where DISPLAY is unset, or running in the Streamlit Atom plugin.

Default: false
showEmailPrompt boolean

Whether to show a terminal prompt for the user's email address when they run Streamlit (locally) for the first time. If server.headless=True, Streamlit will not show this prompt.

Default: true
runOnSave boolean

Automatically rerun script when the file is modified on disk.

Default: false
address string

The address where the server will listen for client and browser connections. If set, the server will only be accessible from this address, and not from any aliases (like localhost).

port integer

The port where the server will listen for browser connections.

Default: 8501
min=1
baseUrlPath string

The base path for the URL where Streamlit should be served from.

Default: ""
enableCORS boolean

Enables support for Cross-Origin Resource Sharing (CORS) protection, for added security. If XSRF protection is enabled and CORS protection is disabled at the same time, Streamlit will enable them both instead.

Default: true
corsAllowedOrigins string[]

If CORS protection is enabled, use this option to set a list of allowed origins that the Streamlit server will accept traffic from. This config option does nothing if CORS protection is disabled.

Default:
[]
enableXsrfProtection boolean

Enables support for Cross-Site Request Forgery (XSRF) protection, for added security. If XSRF protection is enabled and CORS protection is disabled at the same time, Streamlit will enable them both instead.

Default: true
maxUploadSize integer

Max size, in megabytes, for files uploaded with the file_uploader.

Default: 200
min=1
maxMessageSize integer

Max size, in megabytes, of messages that can be sent via the WebSocket connection.

Default: 200
min=1
enableWebsocketCompression boolean

Enables support for websocket compression.

Default: false
enableStaticServing boolean

Enable serving files from a 'static' directory in the running app's directory.

Default: false
disconnectedSessionTTL integer

TTL in seconds for sessions whose websockets have been disconnected. The server may choose to clean up session state, uploaded files, etc for a given session with no active websocket connection at any point after this time has passed.

Default: 120
min=1
sslCertFile string

Server certificate file for connecting via HTTPS. Must be set at the same time as 'server.sslKeyFile'. DO NOT USE THIS OPTION IN A PRODUCTION ENVIRONMENT. It has not gone through security audits or performance tests. For the production environment, we recommend performing SSL termination by the load balancer or the reverse proxy.

sslKeyFile string

Cryptographic key file for connecting via HTTPS. Must be set at the same time as 'server.sslCertFile'. DO NOT USE THIS OPTION IN A PRODUCTION ENVIRONMENT. It has not gone through security audits or performance tests. For the production environment, we recommend performing SSL termination by the load balancer or the reverse proxy.

browser object

Browser configuration options for Streamlit

3 nested properties
serverAddress string

Address to connect to when opening browser

Default: "localhost"
gatherUsageStats boolean

Whether to send usage statistics to Streamlit

Default: true
serverPort integer

Port where users should point their browsers to connect to the app. This is used to set the correct URL for XSRF protection, show the URL on the terminal, and open the browser automatically. This option is for advanced use cases - to change the port of your app, use server.Port instead. Defaults to whatever value is set in server.port.

Default: 8501
min=1
mapbox object

Configuration for Mapbox integration (DEPRECATED)

1 nested properties
token string

Mapbox API token for displaying maps. DEPRECATED: Use MAPBOX_API_KEY environment variable or PyDeck's api_keys argument instead. This option will be removed on or after 2026-05-01.

Default: ""
theme object

Theme configuration for Streamlit apps

28 nested properties
base string

The preset Streamlit theme that your custom theme inherits from. Can be either 'light' or 'dark'.

Values: "light" "dark"
primaryColor string | string
backgroundColor string | string
secondaryBackgroundColor string | string
textColor string | string
linkColor string | string
linkUnderline boolean

Whether or not links should be displayed with an underline

codeBackgroundColor string | string
font string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

fontFaces FontFace[]

An array of fonts to use in your app. Each font is a dictionary with attributes like family, url, weight, style, and unicodeRange

baseFontSize integer

The root font size in pixels for the app. Must be a positive integer. Defaults to 16px if not set

Default: 16
min=1
baseFontWeight integer

The root font weight for the app.

Default: 400
min=100max=600multipleOf=100
headingFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFontSizes FontSize | FontSize[]

Font sizes for h1-h6 headings. Can be a single value or array of up to 6 values in pixels or rem

headingFontWeights FontWeight | FontWeight[]

Font weights for h1-h6 headings. Can be a single value or array of up to 6 values between 100 and 900

codeFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

codeFontSize string | string
codeFontWeight integer
min=100max=900multipleOf=100
baseRadius string | string | string
buttonRadius string | string | string
borderColor string | string
dataframeBorderColor string | string
dataframeHeaderBackgroundColor string | string
showWidgetBorder boolean

Whether to show a border around input widgets

showSidebarBorder boolean

Whether to show a vertical separator between the sidebar and the main content area

chartCategoricalColors Color[]

An array of colors to use for categorical chart data in Plotly, Altair, and Vega-Lite charts

chartSequentialColors Color[]

An array of exactly ten colors to use for sequential or continuous chart data in Plotly, Altair, and Vega-Lite charts

minItems=10maxItems=10
sidebar object

Theme configuration specifically for the sidebar

19 nested properties
primaryColor string | string
backgroundColor string | string
secondaryBackgroundColor string | string
textColor string | string
linkColor string | string
linkUnderline boolean

Whether or not links should be displayed with an underline in the sidebar

codeBackgroundColor string | string
font string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFontSizes FontSize | FontSize[]

One or more font sizes for h1-h6 headings in the sidebar

headingFontWeights FontWeight | FontWeight[]

One or more font weights for h1-h6 headings in the sidebar

Default:
[
  700,
  600,
  600,
  600,
  600,
  600
]
codeFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

codeFontSize string | string
baseRadius string | string | string
buttonRadius string | string | string
borderColor string | string
dataframeBorderColor string | string
dataframeHeaderBackgroundColor string | string
showWidgetBorder boolean

Whether to show a border around input widgets in the sidebar

secrets object

Configuration for Streamlit secrets management

1 nested properties
files string[]

An entry can be a path to a TOML file or directory path where Kubernetes style secrets are saved. Order is important, import is first to last, so secrets in later files will take precedence over earlier ones.

Definitions

Global object

Global configuration options for Streamlit

disableWidgetStateDuplicationWarning boolean

By default, Streamlit displays a warning when a user sets both a widget default value in the function defining the widget and a widget value via the widget's key in st.session_state. If you'd like to turn off this warning, set this to True.

Default: false
showWarningOnDirectExecution boolean

If True, will show a warning when you run a Streamlit-enabled script via 'python my_script.py'.

Default: true
Logger object

Configuration for Streamlit's internal logger

level string

Level of logging for Streamlit's internal logger

Default: "info"
Values: "error" "warning" "info" "debug"
messageFormat string

String format for logging messages. If logger.datetimeFormat is set, logger messages will default to '%(asctime)s.%(msecs)03d %(message)s'. See Python's documentation for available attributes.

Default: "%(asctime)s %(message)s"
Client object

Client-side configuration options

showErrorDetails string

Controls whether uncaught app exceptions and deprecation warnings are displayed in the browser

Default: "full"
Values: "full" "stacktrace" "type" "none"
toolbarMode string

Change the visibility of items in the toolbar, options menu, and settings dialog (top right of the app)

Default: "auto"
Values: "auto" "developer" "viewer" "minimal"
showSidebarNavigation boolean

Controls whether to display the default sidebar page navigation in a multi-page app. This only applies when app's pages are defined by the 'pages/' directory.

Default: true
Runner object

Configuration for Streamlit's script runner

magicEnabled boolean

Allows you to type a variable or string by itself in a single line of Python code to write it to the app.

Default: true
fastReruns boolean

Handle script rerun requests immediately, rather than waiting for script execution to reach a yield point. This makes Streamlit much more responsive to user interaction, but it can lead to race conditions in apps that mutate session_state data outside of explicit session_state assignment statements.

Default: true
enforceSerializableSessionState boolean

Raise an exception after adding unserializable data to Session State. Some execution environments may require serializing all data in Session State, so it may be useful to detect incompatibility during development, or when the execution environment will stop supporting it in the future.

Default: false
enumCoercion string

Controls how 'options' widgets (radio, selectbox, multiselect) coerce Enum members. This is particularly useful when Enum classes are redefined during script reruns. 'off' disables coercion completely, 'nameOnly' allows coercion when member names match, and 'nameAndValue' requires both member names and values to match for coercion.

Default: "nameOnly"
Values: "off" "nameOnly" "nameAndValue"
Color string | string
Font string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

FontFace object
family string required

The font family name

minLength=1
url string required

URL or path to the font file

format=uri
weight string

Font weight (e.g. '400', '700')

style string

Font style (e.g. 'normal', 'italic')

unicodeRange string

Unicode range for the font

FontSize string | string
FontWeight integer
Radius string | string | string
Theme object

Theme configuration for Streamlit apps

base string

The preset Streamlit theme that your custom theme inherits from. Can be either 'light' or 'dark'.

Values: "light" "dark"
primaryColor string | string
backgroundColor string | string
secondaryBackgroundColor string | string
textColor string | string
linkColor string | string
linkUnderline boolean

Whether or not links should be displayed with an underline

codeBackgroundColor string | string
font string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

fontFaces FontFace[]

An array of fonts to use in your app. Each font is a dictionary with attributes like family, url, weight, style, and unicodeRange

baseFontSize integer

The root font size in pixels for the app. Must be a positive integer. Defaults to 16px if not set

Default: 16
min=1
baseFontWeight integer

The root font weight for the app.

Default: 400
min=100max=600multipleOf=100
headingFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFontSizes FontSize | FontSize[]

Font sizes for h1-h6 headings. Can be a single value or array of up to 6 values in pixels or rem

headingFontWeights FontWeight | FontWeight[]

Font weights for h1-h6 headings. Can be a single value or array of up to 6 values between 100 and 900

codeFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

codeFontSize string | string
codeFontWeight integer
min=100max=900multipleOf=100
baseRadius string | string | string
buttonRadius string | string | string
borderColor string | string
dataframeBorderColor string | string
dataframeHeaderBackgroundColor string | string
showWidgetBorder boolean

Whether to show a border around input widgets

showSidebarBorder boolean

Whether to show a vertical separator between the sidebar and the main content area

chartCategoricalColors Color[]

An array of colors to use for categorical chart data in Plotly, Altair, and Vega-Lite charts

chartSequentialColors Color[]

An array of exactly ten colors to use for sequential or continuous chart data in Plotly, Altair, and Vega-Lite charts

minItems=10maxItems=10
sidebar object

Theme configuration specifically for the sidebar

19 nested properties
primaryColor string | string
backgroundColor string | string
secondaryBackgroundColor string | string
textColor string | string
linkColor string | string
linkUnderline boolean

Whether or not links should be displayed with an underline in the sidebar

codeBackgroundColor string | string
font string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFontSizes FontSize | FontSize[]

One or more font sizes for h1-h6 headings in the sidebar

headingFontWeights FontWeight | FontWeight[]

One or more font weights for h1-h6 headings in the sidebar

Default:
[
  700,
  600,
  600,
  600,
  600,
  600
]
codeFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

codeFontSize string | string
baseRadius string | string | string
buttonRadius string | string | string
borderColor string | string
dataframeBorderColor string | string
dataframeHeaderBackgroundColor string | string
showWidgetBorder boolean

Whether to show a border around input widgets in the sidebar

ThemeSidebar object

Theme configuration specifically for the sidebar

primaryColor string | string
backgroundColor string | string
secondaryBackgroundColor string | string
textColor string | string
linkColor string | string
linkUnderline boolean

Whether or not links should be displayed with an underline in the sidebar

codeBackgroundColor string | string
font string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

headingFontSizes FontSize | FontSize[]

One or more font sizes for h1-h6 headings in the sidebar

headingFontWeights FontWeight | FontWeight[]

One or more font weights for h1-h6 headings in the sidebar

Default:
[
  700,
  600,
  600,
  600,
  600,
  600
]
codeFont string | string

The font family for all text, except code blocks. Can be 'sans-serif', 'serif', 'monospace', a custom font family value, or a comma-separated list of these for fallbacks

codeFontSize string | string
baseRadius string | string | string
buttonRadius string | string | string
borderColor string | string
dataframeBorderColor string | string
dataframeHeaderBackgroundColor string | string
showWidgetBorder boolean

Whether to show a border around input widgets in the sidebar

Secrets object

Configuration for Streamlit secrets management

files string[]

An entry can be a path to a TOML file or directory path where Kubernetes style secrets are saved. Order is important, import is first to last, so secrets in later files will take precedence over earlier ones.

Server object

Server configuration options for Streamlit

folderWatchList string[]

List of directories to watch for changes. By default, Streamlit watches files in the current working directory and its subdirectories. Use this option to specify additional directories to watch. Paths must be absolute.

Default:
[]
folderWatchBlacklist string[]

List of directories to ignore for changes. By default, Streamlit watches files in the current working directory and its subdirectories. Use this option to specify exceptions within watched directories. Paths can be absolute or relative to the current working directory.

Default:
[]
fileWatcherType string

Change the type of file watcher used by Streamlit, or turn it off completely. 'auto' attempts to use watchdog module and falls back to polling, 'watchdog' forces watchdog module, 'poll' forces polling, 'none' disables file watching.

Default: "auto"
Values: "auto" "watchdog" "poll" "none"
cookieSecret string

Symmetric key used to produce signed cookies. If deploying on multiple replicas, this should be set to the same value across all replicas to ensure they all share the same secret.

headless boolean

If false, will attempt to open a browser window on start. Default is false unless on a Linux box where DISPLAY is unset, or running in the Streamlit Atom plugin.

Default: false
showEmailPrompt boolean

Whether to show a terminal prompt for the user's email address when they run Streamlit (locally) for the first time. If server.headless=True, Streamlit will not show this prompt.

Default: true
runOnSave boolean

Automatically rerun script when the file is modified on disk.

Default: false
address string

The address where the server will listen for client and browser connections. If set, the server will only be accessible from this address, and not from any aliases (like localhost).

port integer

The port where the server will listen for browser connections.

Default: 8501
min=1
baseUrlPath string

The base path for the URL where Streamlit should be served from.

Default: ""
enableCORS boolean

Enables support for Cross-Origin Resource Sharing (CORS) protection, for added security. If XSRF protection is enabled and CORS protection is disabled at the same time, Streamlit will enable them both instead.

Default: true
corsAllowedOrigins string[]

If CORS protection is enabled, use this option to set a list of allowed origins that the Streamlit server will accept traffic from. This config option does nothing if CORS protection is disabled.

Default:
[]
enableXsrfProtection boolean

Enables support for Cross-Site Request Forgery (XSRF) protection, for added security. If XSRF protection is enabled and CORS protection is disabled at the same time, Streamlit will enable them both instead.

Default: true
maxUploadSize integer

Max size, in megabytes, for files uploaded with the file_uploader.

Default: 200
min=1
maxMessageSize integer

Max size, in megabytes, of messages that can be sent via the WebSocket connection.

Default: 200
min=1
enableWebsocketCompression boolean

Enables support for websocket compression.

Default: false
enableStaticServing boolean

Enable serving files from a 'static' directory in the running app's directory.

Default: false
disconnectedSessionTTL integer

TTL in seconds for sessions whose websockets have been disconnected. The server may choose to clean up session state, uploaded files, etc for a given session with no active websocket connection at any point after this time has passed.

Default: 120
min=1
sslCertFile string

Server certificate file for connecting via HTTPS. Must be set at the same time as 'server.sslKeyFile'. DO NOT USE THIS OPTION IN A PRODUCTION ENVIRONMENT. It has not gone through security audits or performance tests. For the production environment, we recommend performing SSL termination by the load balancer or the reverse proxy.

sslKeyFile string

Cryptographic key file for connecting via HTTPS. Must be set at the same time as 'server.sslCertFile'. DO NOT USE THIS OPTION IN A PRODUCTION ENVIRONMENT. It has not gone through security audits or performance tests. For the production environment, we recommend performing SSL termination by the load balancer or the reverse proxy.

Browser object

Browser configuration options for Streamlit

serverAddress string

Address to connect to when opening browser

Default: "localhost"
gatherUsageStats boolean

Whether to send usage statistics to Streamlit

Default: true
serverPort integer

Port where users should point their browsers to connect to the app. This is used to set the correct URL for XSRF protection, show the URL on the terminal, and open the browser automatically. This option is for advanced use cases - to change the port of your app, use server.Port instead. Defaults to whatever value is set in server.port.

Default: 8501
min=1
Mapbox object

Configuration for Mapbox integration (DEPRECATED)

token string

Mapbox API token for displaying maps. DEPRECATED: Use MAPBOX_API_KEY environment variable or PyDeck's api_keys argument instead. This option will be removed on or after 2026-05-01.

Default: ""