django-browser-reload
Automatically refresh your browser on changes to Python code, templates, or static files.
Decision gist · record as of 2026-08-14
Yes. This is a low-friction development tool with no security vulnerabilities, active maintenance, permissive licensing, and minimal dependencies. It directly addresses a common Django developer pain point—manual browser refresh during iteration—and is mature enough for production-grade development workflows. Install it in any Django 4.2+ project running on Python 3.9+ where you want faster feedback loops during local development.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires DEBUG=True to function.
- Browser must support EventSource and SharedWorker (available on Chrome, Edge, Firefox, Opera, and Safari 16+).
- runserver must not use the --nothreading option.
License · maintenance · safety
MIT (permissive) — MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects.
last release 2025-09-22 (326 days) · last repo commit 2026-08-13 · 670 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 665,589 downloads/mo, #5,429 on PyPI
Alternatives
Verify before relying
pip install django-browser-reload
# In settings.py
INSTALLED_APPS = [
"django.contrib.staticfiles",
"django_browser_reload",
]
MIDDLEWARE = [
"django_browser_reload.middleware.BrowserReloadMiddleware",
]
# In urls.py
urlpatterns = [
path("__reload__/", include("django_browser_reload.urls")),
]
# Run with DEBUG=True
python manage.py runserver- Whether performance impact is negligible when many tabs are open simultaneously.
- Compatibility with custom WSGI/ASGI servers beyond Django's built-in runserver.
What it is and what it does
django-browser-reload is a Django middleware and template tag that injects a listener script into your HTML pages during development. When you save changes to Python code, templates, or static files, the script receives a server-sent event and automatically reloads the most recently active browser tab, eliminating the need for manual refresh.
The package works by establishing a persistent EventSource connection from a SharedWorker in your browser to a Django view. When Django's autoreload system detects file changes or the server restarts, the view sends events that trigger a reload. It supports both WSGI and ASGI, works with Django's Content Security Policy middleware on version 6.0+, and can be deployed via middleware for automatic injection or via template tags for selective page control.
Use it for
- Accelerate frontend development iteration by seeing CSS, JavaScript, and template changes instantly without manual browser refresh.
- Debug template rendering issues faster by watching changes propagate to the browser in real time.
- Test responsive design across multiple browser tabs while editing, with only the most recently used tab reloading to avoid disruption.
- Integrate into a Django admin customization workflow to see admin template changes reflected immediately.
- Combine with django-watchfiles for even faster file detection and reloading during active development.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
This is a low-friction development tool with no security vulnerabilities, active maintenance, permissive licensing, and minimal dependencies. It directly addresses a common Django developer pain point—manual browser refresh during iteration—and is mature enough for production-grade development workflows. Install it in any Django 4.2+ project running on Python 3.9+ where you want faster feedback loops during local development.
Install
django-browser-reload on PyPI
Before you install
Low friction install with only asgiref and django as runtime dependencies. Actively maintained with recent commits and a stable release history since 2021.
Requires DEBUG=True to function. Browser must support EventSource and SharedWorker (available on Chrome, Edge, Firefox, Opera, and Safari 16+). runserver must not use the --nothreading option.
License in practice
MIT license permits unrestricted use, modification, and distribution in both open-source and commercial projects.
Quickstart
pip install django-browser-reload
# In settings.py
INSTALLED_APPS = [
"django.contrib.staticfiles",
"django_browser_reload",
]
MIDDLEWARE = [
"django_browser_reload.middleware.BrowserReloadMiddleware",
]
# In urls.py
urlpatterns = [
path("__reload__/", include("django_browser_reload.urls")),
]
# Run with DEBUG=True
python manage.py runserver
Verify before relying
- Whether performance impact is negligible when many tabs are open simultaneously.
- Compatibility with custom WSGI/ASGI servers beyond Django's built-in runserver.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesasgirefdjango |
| Maintenance | Actively maintained 326 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 665,589 / month, #5,429 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableFramework :: Django :: 4.2Framework :: Django :: 5.0Framework :: Django :: 5.1Framework :: Django :: 5.2Framework :: Django :: 6.0Intended Audience :: DevelopersNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTyping :: Typed |
Evidence: django_browser_reload-1.21.0-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 › “django auto reload browser”
- django-browser-reloadAutomatically reloads your browser when you modify Python code,…
- livereloadAutomatically reloads webpages in your browser when source files…
- sphinx-autobuildWatches Sphinx documentation source files for changes and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also livereload · django-watchfiles · django-sslserver · django-maintenance-mode · django-currentuser · django-upgrade · Django · django-csp · django-js-reverse · django-tailwind