Skip to main content

syspanel

A local, self-contained Windows system dashboard: resource monitor, disk tree viewer, battery health, process manager, service watchlist, startup monitor, cleanup manager, and restart control — one web app, no cloud, no build step.

Install

pip install syspanel[windows]

Run

syspanel

Serves at http://127.0.0.1:8765/ (open it yourself, or pass --open-browser to have it opened for you). Useful flags:

syspanel --open-browser        # open a browser tab on startup
syspanel --read-only           # disable every mutating route
syspanel --allow-remote        # bind 0.0.0.0 and print a bearer token required on every mutating route

--host always wins if you pass it explicitly (e.g. to bind a specific LAN IP instead of all interfaces), but any non-loopback host requires --allow-remote — the server refuses to start otherwise, so it can never be exposed beyond localhost without authentication by accident.

Fleet: seeing every syspanel instance on your LAN

Any instance can announce itself over UDP broadcast so a companion dashboard elsewhere on the network can find it — off by default, opt in with --broadcast:

syspanel --broadcast                              # announce every 15s on UDP :7005
syspanel --broadcast --broadcast-interval 30       # slower cadence
syspanel --broadcast --broadcast-port 7100         # non-default port

Each broadcast is one small (~200 byte) self-contained UDP packet — hostname, IP, dashboard port, CPU/mem/battery, admin state, timestamp — sent on a repeating timer, not fragmented or batched across packets. A dropped packet just means one missed tick, never a partial update.

syspanel-fleet is the companion tool that listens for these and shows every host it's heard from as a live card grid, each linking straight to that host's own dashboard:

syspanel-fleet                          # listen on :7005, dashboard at 127.0.0.1:8766
syspanel-fleet --listen-port 7100       # match a non-default --broadcast-port
syspanel-fleet --allow-remote           # let others on the LAN view the fleet dashboard

The same tool doubles as a lightweight standalone beacon — useful for testing a receiver, or announcing a machine that isn't running the full dashboard:

syspanel-fleet --mode transmit --interval 15

Modules

Module What it shows
Resources Live CPU / RAM / network / disk I/O, 1s push over WebSocket
Disk Tree Drive-picker dropdown, squarified treemap + sortable/clickable table, background scan with progress that survives navigating away and back
Battery Design vs. current capacity, cycle count, wear verdict (via powercfg)
Processes Sortable/searchable process table; kill with denylist protection
Services Full service list, a persisted watchlist with alerts, start/stop/restart
Startup Registry Run/RunOnce, Startup folder, and logon scheduled tasks; enable/disable/delete
Cleanup Declarative target catalog (Temp, crash dumps, Windows Update cache, Recycle Bin, custom age/retention rules); dry-run preview before every delete
Power Schedule a restart with a cancellable countdown; requires typing a confirm phrase
Dev Tools Detected versions of Python, Git, Node/npm, .NET SDK, Java, PowerShell 7, Docker, VS Code, Cursor, TestComplete, TestExecute, SQL Server (per instance), Hirsch Velocity, Chrome, Edge, Firefox, VMware Workstation, IIS, Hyper-V

Admin-only actions (Windows\Temp, service control, killing other users' processes) show a lock badge when unelevated; use the Relaunch as Administrator button in the header to UAC-elevate in place.

Pages cache their data across navigation (instant reload, background refresh every 5 minutes, plus a manual Refresh button), and Startup/Battery/ Cleanup are pre-warmed in the background while you're on another page.

Safety model

Every mutating action goes through one chokepoint (core/safety.py): a denylist blocks system-critical paths/PIDs, and destructive operations require a preview → confirm token → execute round trip so exactly what was shown is what gets acted on. Every attempt is appended to an audit log at %LOCALAPPDATA%\syspanel\audit.jsonl.

Any connection from beyond localhost (relevant once --allow-remote is in use) - HTTP or WebSocket, mutating or not - is logged with its IP, method, path, user-agent, and whether it carried a valid bearer token, both to the console and to %LOCALAPPDATA%\syspanel\remote_access.jsonl.

Development

pip install -e .[dev,windows]
pytest -q

See CLAUDE.md for repo conventions.

Metadata

Release files for syspanel 0.1.8

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

Source distribution (sdist)

Source distribution for syspanel 0.1.8
File Size Uploaded Provenance
syspanel-0.1.8.tar.gz 68.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for syspanel 0.1.8
File Interpreter ABI Platform
syspanel-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 173.2 kB

Release files / syspanel-0.1.8.tar.gz

Download URL syspanel-0.1.8.tar.gz
Size 68.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2b5366d52210eac5704adb29bc56411c7549d289ee2ab1965a82faf5cd462faa
BLAKE2b-256 checksum
How to use checksums
2744ce180c941e77170c31e7c740cc811e1a62150532c95b93d80095e3d3e8f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / syspanel-0.1.8-py3-none-any.whl

Download URL syspanel-0.1.8-py3-none-any.whl
Size 105.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5c3057e1fbc3a68f484278a7f4ab9323afb9fe009733ecd5a1cf494b6a07e5b9
BLAKE2b-256 checksum
How to use checksums
6341ff89a5693f53fa105d77688330bb48fb19402c08ab4e219dc0f887153a14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Security for syspanel 0.1.8

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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