The Streamlit CLI is the primary tool for running Streamlit applications and managing configuration. This skill covers all essential commands and configuration options.
Running Streamlit apps
Basic syntax
streamlit run [<entrypoint>] [-- config options] [script args]
Entrypoint options
| Argument | Behavior |
|---|---|
| (none) | Looks for streamlit_app.py in current directory |
| Directory path | Runs streamlit_app.py within that directory |
| File path | Runs the specified file directly |
| URL | Runs a remote script (e.g., from GitHub) |
Examples
# Run default app in current directory
streamlit run
# Run a specific file
streamlit run app.py
# Run from a URL
streamlit run https://raw.githubusercontent.com/streamlit/demo-uber-nyc-pickups/master/streamlit_app.py
# Alternative: run as Python module (useful for IDE configuration)
python -m streamlit run app.py
Running with uv (recommended)
Use uv run to run Streamlit in a virtual environment with automatic dependency management:
# Run with uv (automatically uses/creates virtual environment)
uv run streamlit run app.py
# With configuration options
uv run streamlit run app.py --server.headless=true
# With script arguments
uv run streamlit run app.py -- arg1 arg2
Using uv run is the recommended approach because it:
- Automatically manages virtual environments
- Resolves and installs dependencies from
pyproject.toml - Ensures reproducible environments across machines
- Avoids manual activation/deactivation of virtual environments
Setting configuration with streamlit run
Configuration options follow the pattern --<section>.<option>=<value> and must come after the script name.
Recommendation: For persistent configuration, use
.streamlit/config.tomlin your project directory instead of command-line flags. This keeps your run command simple and makes configuration easier to manage and share with your team.
Examples
streamlit run app.py --server.port=8080
streamlit run app.py --server.headless=true
streamlit run app.py --server.runOnSave=true
streamlit run app.py --server.address=0.0.0.0
streamlit run app.py --client.showErrorDetails=false
streamlit run app.py --theme.primaryColor=blue
Combining multiple options
streamlit run app.py \
--server.port=8080 \
--server.headless=true \
--theme.primaryColor=blue \
--client.showErrorDetails=false
Passing arguments to your script
Script arguments come after configuration options. Use sys.argv to access them:
streamlit run app.py -- arg1 arg2 "arg with spaces"
In your script:
import sys
# sys.argv[0] = script path
# sys.argv[1:] = your arguments
args = sys.argv[1:]
Other CLI commands
View configuration
# Show all current configuration settings
streamlit config show
Cache management
# Clear all cached data from disk
streamlit cache clear
Diagnostics and help
# Show installed version
streamlit version
# List all available commands
streamlit help
# Open documentation in browser
streamlit docs
Project scaffolding
# Create starter files for a new project
streamlit init
Demo app
# Launch the Streamlit demo application
streamlit hello
Configuration precedence
Configuration can be set in multiple places. Order of precedence (highest to lowest):
- Command-line flags (
--server.port=8080) - Environment variables (
STREAMLIT_SERVER_PORT=8080) - Local config (
.streamlit/config.tomlin project directory) - Global config (
~/.streamlit/config.toml)
References
- Run your app - Concepts and methods for running Streamlit apps
- config.toml - Complete configuration options reference
- CLI reference - Full CLI command documentation