This release is a pre-release and may not be stable for production use.
HellAdmin Dashboard
Web UI for HellAdmin — AI agent firewall dashboard.
Alpha release. Protect mode is functional. Control mode is planned. APIs may change.
What it shows
Protect mode (single page, default):
- Protection status: Ready / Protecting, Landlock ABI version
- Protected paths with modes (read blocked / write blocked) — click to expand, quick allow buttons (1h/4h/8h)
- Network protection: blocked metadata IPs, allowed TCP ports
- Blocked commands: sudo, nc, mount, ptrace, etc.
- MCP Proxy: registered servers, request stats, API key usage
- Recent blocks feed
- Command history with source detection (ssh:user@ip, container:name, process:pid)
Control mode [planned]:
- Tabbed navigation: Events, Policies, Approvals, MCP Servers, Forensics
- Approval queue for unknown operations
- Policy editor with live preview
- Full event log
Control mode is not yet implemented. The features above are planned for a future release.
Quick Start
pip install helladmin-dashboard
Note: The dashboard works standalone for viewing, but Protect controls (mode, level, blocks) require
helladmin-server. Install the full stack withpip install helladminor addpip install helladmin-serverseparately.
Local (no TLS, no auth)
helladmin-dashboard
# → http://localhost:8888
Remote access
HELLADMIN_DASHBOARD_PASSWORD=mysecret helladmin-dashboard --host 0.0.0.0
# → https://0.0.0.0:8888 (auto-generated self-signed cert)
TLS
Auto-generated certificate (default for remote)
helladmin-dashboard --host 0.0.0.0
Self-signed cert at ~/.helladmin/dashboard-cert.pem. Browser shows warning — click through.
Your own certificate
helladmin-dashboard --host 0.0.0.0 \
--ssl-certfile /etc/letsencrypt/live/example.com/fullchain.pem \
--ssl-keyfile /etc/letsencrypt/live/example.com/privkey.pem
Behind nginx
server {
listen 443 ssl http2;
server_name dashboard.example.com;
ssl_certificate /etc/letsencrypt/live/dashboard.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dashboard.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
helladmin-dashboard --no-ssl
No TLS
helladmin-dashboard --host 0.0.0.0 --no-ssl
Only behind a TLS-terminating proxy or on a trusted network.
Authentication
Without --password, binds to localhost with no auth.
For remote access:
HELLADMIN_DASHBOARD_PASSWORD=mysecret helladmin-dashboard --host 0.0.0.0
Or configure users in config YAML:
auth:
users:
- username: admin
password_hash: "<hash>" # generate with: helladmin-dashboard hash-password
role: admin # admin | operator | viewer
API
Dashboard backend exposes REST API for the Protect UI:
GET /api/protect/status Protection state, Landlock ABI, counters
GET /api/protect/paths Protected paths with modes and categories
POST /api/protect/paths Add custom protected path
GET /api/protect/blocks Recent blocked events
GET /api/protect/network Network protection config
GET /api/protect/commands Blocked commands list
GET /api/protect/allows Active temporary allows
POST /api/protect/allows Create temporary allow (1h/4h/8h)
GET /api/protect/history Command execution history with source info
GET /api/protect/proxy/servers Registered MCP proxy servers with stats
GET /api/protect/proxy/requests Recent proxy audit log
CLI
helladmin-dashboard [OPTIONS]
helladmin-dashboard hash-password
Options:
--host HOST Bind host (default: 127.0.0.1)
--port PORT Bind port (default: 8888)
--config CONFIG Config file path
--ssl-certfile FILE TLS certificate
--ssl-keyfile FILE TLS private key
--no-ssl Disable automatic TLS
--no-browser Don't open browser on localhost
License
Apache-2.0
Metadata
Release files for helladmin-dashboard 0.1.0a5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| helladmin_dashboard-0.1.0a5-py3-none-any.whl | Python 3 | none | any | Details for helladmin_dashboard-0.1.0a5-py3-none-any.whl |
Release files / helladmin_dashboard-0.1.0a5-py3-none-any.whl
| Download URL | helladmin_dashboard-0.1.0a5-py3-none-any.whl |
|---|---|
| Size | 163.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0284b645aad73e9f55bcfb61b79f90ccc21f46036bcde547cae3b4b1a6a28615
|
|
BLAKE2b-256 checksum How to use checksums |
5f71065c5ddf58da6974d1281db1a7757295a6f2c157c69a7b38a4e776e2aba5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for helladmin-dashboard 0.1.0a5
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.