Skip to main content

Django Control Room Panel Tests codecov PyPI version Python versions License: MIT Downloads

Django Signals Panel

See every Django signal and receiver, and where they fire. Right from the Django admin.

DJ Signals Panel

Compatible with dj-control-room. Register this panel in the Control Room to manage it from a centralized dashboard.

Docs

https://django-control-room.github.io/dj-signals-panel/

Features

  • Signal discovery - automatically discovers all registered Django signals across your project and installed apps
  • Receiver inspection - lists every connected receiver for each signal, including function name, module, file location, and sender
  • Source code viewer - inline syntax-highlighted source for each receiver, directly in the admin
  • Search & filter - search signals by name, module, or app; filter by app with a dropdown
  • Summary stats - at-a-glance counts for total signals, total receivers, and signals with no receivers
  • Dark mode support - respects Django admin's built-in dark/light mode toggle
  • django-unfold theme adapter - opt-in stylesheet that remaps colors to match django-unfold's accent/neutral palette (see Theme adapters)
  • AI Agent Integration (MCP) - exposes list_signals, get_receivers, find_signal_by_sender, and inspect_receiver tools so AI agents (Cursor, Claude, etc.) can introspect your signal landscape via dj-control-room's MCP server
  • No migrations required - purely read-only introspection, zero database changes

Requirements

  • Python 3.9+
  • Django 4.2+

Django Control Room

Dj Signals Panel works great on its own, and it also pairs seamlessly as a panel inside Django Control Room - a centralized dashboard that brings all your Django admin panels together in one place.

pip install dj-control-room dj-signals-panel

Visit djangocontrolroom.com to learn more.

Screenshots

Django Admin Integration

Seamlessly integrated into your Django admin interface. A DJ SIGNALS PANEL section appears alongside your models - no migrations required.

Admin Home

Signal List & Search

Browse all registered signals with summary stats (total signals, total receivers, signals with no receivers). Search by name, module, or app, and filter by app using the dropdown.

Signal List

Signal Detail

Drill into any signal to see its metadata and every connected receiver - including function name, module, and sender. Expand View Location (or View Source, when SHOW_SOURCE is enabled) to see the file path/line and syntax-highlighted source code inline.

Note: The source code viewer is opt-in. Set SHOW_SOURCE: True in DJ_SIGNALS_PANEL_SETTINGS to enable it. Use SIGNAL_MODULES to add extra modules to signal discovery.

Signal Detail

django-unfold Theme

When running under django-unfold, enable the bundled unfold.css theme adapter via EXTRA_CSS to match the panel's colors to the host site's accent and neutral palette. This is opt-in - it is not applied automatically just because django-unfold is installed.

Signal List with django-unfold theme

django-jazzmin Theme

When running under django-jazzmin, enable the bundled jazzmin.css theme adapter via EXTRA_CSS to match the panel's colors to whichever Bootstrap/Bootswatch palette Jazzmin is configured with. This is opt-in - it is not applied automatically just because django-jazzmin is installed.

DJ_SIGNALS_PANEL_SETTINGS = {
    'EXTRA_CSS': ['dj_control_room_base/css/themes/jazzmin.css'],
}

Installation

pip install dj-signals-panel

Add it (and dj_control_room_base, its core dependency) to INSTALLED_APPS, include its URLs, and migrate:

INSTALLED_APPS = [
    # ...
    'dj_control_room_base',
    'dj_signals_panel',
]
urlpatterns = [
    path("admin/dj-control-room-base/", include("dj_control_room_base.urls")),
    path('admin/dj-signals-panel/', include('dj_signals_panel.urls')),
    path('admin/', admin.site.urls),
]
python manage.py migrate

Then visit /admin/ and look for the "DJ SIGNALS PANEL" section.

For the full walkthrough and settings reference (source code viewer, extra signal modules, theme adapters), see the Installation and Configuration docs.

MCP Tools (AI Agent Integration)

Ships list_signals, get_receivers, find_signal_by_sender, and inspect_receiver tools that dj-control-room's MCP server exposes to AI agents (Cursor, Claude, etc.), so they can look up signals, receivers, and source locations without grepping your codebase.

See Configuration → Panel Tools (MCP) for the full tool reference and Scopes for how agent access is permissioned separately from the admin UI.

Contributing

Want to contribute or set up the project for local development? See Contributing for prerequisites, Docker/virtualenv setup, running the example project, and the test suite.


License

This project is licensed under the MIT License. See the LICENSE file for details.

Metadata

Release files for dj-signals-panel 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dj-signals-panel 0.6.0
File Size Uploaded
dj_signals_panel-0.6.0.tar.gz 32.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dj-signals-panel 0.6.0
File Interpreter ABI Platform
dj_signals_panel-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.9 kB

Release files / dj_signals_panel-0.6.0.tar.gz

Download URL dj_signals_panel-0.6.0.tar.gz
Size 32.8 kB
Tags Source
SHA-256 checksum
How to use checksums
bcdabefaf001d65795703e74881441e0163eda220192da73f7b955dc99ea30a4
BLAKE2b-256 checksum
How to use checksums
4f2eb386a8e9293ad56bdded626b6876e4f59957fac51762609194c43960ab92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.

Transparency log

Release files / dj_signals_panel-0.6.0-py3-none-any.whl

Download URL dj_signals_panel-0.6.0-py3-none-any.whl
Size 25.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e24e33c1001d73e099645af8851440269557dc12a3572e28ad26517e06dabec0
BLAKE2b-256 checksum
How to use checksums
e83f5b5836e29ded9da6c0e231a1ac5aa1e5e920cfcb2f2094002f3ac30a9ebe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 11, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page