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.
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 |
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.
Development
pip install -e .[dev,windows]
pytest -q
See CLAUDE.md for repo conventions.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syspanel-0.1.2.tar.gz.
File metadata
- Download URL: syspanel-0.1.2.tar.gz
- Upload date:
- Size: 50.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1304211847de18a3402be1f2338b4877846ea8b07d311ff9fae4dbbad1f6db7f
|
|
| MD5 |
6f1af5d4bdcf17118080ae7190eee8e5
|
|
| BLAKE2b-256 |
a1ba15b35e5a5f105922b1a5cb855626fcdfa6e6ce949cdb0deb5e4d3e437851
|
File details
Details for the file syspanel-0.1.2-py3-none-any.whl.
File metadata
- Download URL: syspanel-0.1.2-py3-none-any.whl
- Upload date:
- Size: 79.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d654040cda8f16ebc1fee3424f5faed1e5fd190d3c350bc7f7c7d1bb97f2ec0c
|
|
| MD5 |
69e45b38aabda678a0b1d6cb53fcf4bb
|
|
| BLAKE2b-256 |
71344e3a4eded49dd1abfa5f1d389cb3cbd72ec8b55793b86059fccf073187e7
|