streamlit-autorefresh
Simple way to autorefresh your Streamlit apps
Decision gist · record as of 2026-08-14
No—the package is abandoned (last release 2023-06-25, no commits since). While it has low install friction and no known vulnerabilities, the lack of maintenance means it may break with future Streamlit versions, and the unclear license creates legal ambiguity. For new projects, consider native Streamlit refresh patterns or actively maintained alternatives.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires streamlit to be installed and running; the component runs on the frontend and relies on browser timers, which are not perfectly precise.
- Low friction install with a single runtime dependency on streamlit.
- However, the package is abandoned—last release was 2023-06-25 with no commits since.
License · maintenance · safety
(unclear) — License status is unclear; the package declares no SPDX license identifier. Before relying on this package in production or proprietary work, verify the actual license terms in the repository.
last release 2023-06-25 (1146 days) · last repo commit 2023-06-25 · 222 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 764,368 downloads/mo, #5,123 on PyPI
Alternatives
Verify before relying
pip install streamlit-autorefresh
import streamlit as st
from streamlit_autorefresh import st_autorefresh
count = st_autorefresh(interval=2000, limit=100, key="mykey")
st.write(f"Refresh count: {count}")- Whether the package works reliably with current Streamlit versions post-2023-06-25.
- Actual license terms, since the package declares no SPDX identifier.
- Whether the frontend timer remains accurate under heavy server load or network latency.
What it is and what it does
Streamlit Autorefresh is a custom Streamlit component that places a timer in the browser frontend to periodically trigger app reruns on a fixed interval. Instead of using an infinite loop in your script (which blocks the server and complicates shutdown), you call st_autorefresh() once with an interval in milliseconds and an optional refresh limit, and the browser handles the timing. The function returns a counter tracking how many times the refresh has fired, letting you conditionally execute different logic at different refresh counts.
The component is designed for dashboards and real-time stats applications where you want regular updates without tying up server resources. You can optionally debounce refreshes when users interact with the app, and you should use a unique key to maintain state across reruns. The trade-off is that it shifts timing work to the browser and relies on frontend timers, which are not perfectly precise.
Use it for
- Building a live dashboard that updates metrics or stats at regular intervals without blocking the Streamlit server.
- Displaying real-time data feeds or sensor readings at regular intervals in a web app.
- Creating a monitoring application that polls for status changes without an infinite loop in the script.
- Refreshing a Streamlit app at a fixed cadence while allowing users to interact with controls between refreshes.
- Limiting the total number of refreshes to prevent unbounded resource consumption in long-running apps.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
No—the package is abandoned (last release 2023-06-25, no commits since).
While it has low install friction and no known vulnerabilities, the lack of maintenance means it may break with future Streamlit versions, and the unclear license creates legal ambiguity. For new projects, consider native Streamlit refresh patterns or actively maintained alternatives.
Install
streamlit-autorefresh on PyPI
Before you install
Low friction install with a single runtime dependency on streamlit. However, the package is abandoned—last release was 2023-06-25 with no commits since. No active maintenance or updates.
Requires streamlit to be installed and running; the component runs on the frontend and relies on browser timers, which are not perfectly precise.
License in practice
License status is unclear; the package declares no SPDX license identifier. Before relying on this package in production or proprietary work, verify the actual license terms in the repository.
Quickstart
pip install streamlit-autorefresh
import streamlit as st
from streamlit_autorefresh import st_autorefresh
count = st_autorefresh(interval=2000, limit=100, key="mykey")
st.write(f"Refresh count: {count}")
Verify before relying
- Whether the package works reliably with current Streamlit versions post-2023-06-25.
- Actual license terms, since the package declares no SPDX identifier.
- Whether the frontend timer remains accurate under heavy server load or network latency.
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.6 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagestreamlit |
| Maintenance | Abandoned 1,146 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 764,368 / month, #5,123 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: streamlit_autorefresh-1.0.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “streamlit auto refresh component”
- streamlit-autorefreshAdds a frontend timer to Streamlit apps that triggers periodic script…
- django-browser-reloadAutomatically reloads your browser when you modify Python code,…
- streamlit-cardA Streamlit component that renders interactive card UI elements with…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also st-theme · streamlit-js-eval · streamlit-sortables · streamlit-keyup · streamlit-notify · streamlit-plotly-events · extra-streamlit-components · streamlit-pdf · streamlit-camera-input-live · reprint