| Command | Any function exposed in Streamlit's public API (st.* namespace). Commands can create elements/widgets, control execution flow, or configure app behavior. | lib/streamlit/delta_generator.py, lib/streamlit/elements/, lib/streamlit/commands/ |
| Element | Umbrella term for all UI components in Streamlit: widgets, containers, and display elements. Represented in Element.proto as a oneof union of ~50+ types. | proto/streamlit/proto/Element.proto, lib/streamlit/elements/ |
| Widget | Interactive element (button, slider, text_input) that triggers reruns on user interaction. Value accessible via return value or st.session_state. Some elements become widgets conditionally (e.g., dataframe/chart with on_select). | lib/streamlit/elements/widgets/, frontend/lib/src/components/widgets/ |
| Display Element | Non-interactive element (text, markdown, image, chart) that renders content without triggering reruns by itself. | lib/streamlit/elements/, frontend/lib/src/components/elements/ |
| Container | Layout block that groups elements spatially (sidebar, columns, expander, tabs, form). Represented as BlockNode in the element tree. | lib/streamlit/elements/layouts.py, Block.proto |
| DeltaGenerator | The st object; API entry point that queues UI deltas. Uses mixin pattern to compose all st.* commands. | lib/streamlit/delta_generator.py |
| Session State | Per-session dictionary (st.session_state) persisting data across reruns. Stores widget values and user variables. | lib/streamlit/runtime/state/session_state.py |
| Rerun | Re-execution of the user script for the current page. Triggered by widget interactions, st.rerun(), file changes, or fragment timers. Rebuilds the element tree while preserving session state. | lib/streamlit/runtime/scriptrunner/script_runner.py, lib/streamlit/commands/execution_control.py |
| Form | Container (st.form) that batches widget inputs, deferring reruns until form submission. | lib/streamlit/elements/form.py, WidgetStateManager.ts |
| Fragment | Decorator (@st.fragment) enabling partial reruns of specific UI sections without full script re-execution. | lib/streamlit/runtime/fragment.py |
| Caching | Decorators (@st.cache_data, @st.cache_resource) that memoize function results to avoid redundant computation. | lib/streamlit/runtime/caching/ |
| Pages | Multipage app system using st.navigation() and st.Page() or auto-discovery from pages/ directory. | lib/streamlit/navigation/, lib/streamlit/runtime/pages_manager.py |
| Config | App configuration via .streamlit/config.toml controlling server, client, and theme settings. | lib/streamlit/config.py, lib/streamlit/config_option.py |
| Theming | Customizable UI themes (Light/Dark/Custom) defined in config or via theme editor. | lib/streamlit/runtime/theme_util.py, frontend/lib/src/theme/ |
| Secrets | Secure credential storage via .streamlit/secrets.toml (local) or platform settings (deployed). Accessed via st.secrets. | lib/streamlit/runtime/secrets.py |
| Connection | Database/service abstraction (st.connection) with built-in caching and secrets integration. | lib/streamlit/connections/ |
| Custom Components | User-built extensions using React/iframe. v1 (legacy): declare_component() API. v2 (current): Bidirectional components with improved state management. | frontend/component-lib/, frontend/component-v2-lib/, lib/streamlit/components/v1/, lib/streamlit/components/v2/ |
| Static File Serving | Files in static/ directory served directly via /app/static/* (when static serving is enabled). | lib/streamlit/web/server/server.py, lib/streamlit/web/server/starlette/starlette_routes.py |
| App Testing | Testing framework (AppTest) for simulating user interactions and inspecting rendered output. | lib/streamlit/testing/ |