Human Approvals with dmint dashboard
The Dmint Dashboard is a lightweight, local web interface that gives human operators real-time oversight over AI agent actions.
When an AI agent attempts an action that requires approval, the request is intercepted and displayed in the dashboard for human inspection.
Launching the Dashboard
You can start the dashboard directly from dmint-cli:
By default, the server binds to http://127.0.0.1:8080.
Configuration Options
Dashboard Features
1. 5-Second Real-Time Polling
The dashboard automatically queries /api/dashboard every 5 seconds. When your agent pauses on a sensitive tool call, the card appears on your screen without requiring a browser reload.
2. Deep Argument Inspection
Click any pending request to view:
- The target capability:
tool.action
- The target resource
- The exact JSON arguments payload
- The cryptographic SHA-256 request fingerprint
- The requesting agent identifier
3. One-Click Approval & Rejection
- Approve: Dmint’s
LocalApprovalAuthority generates an Ed25519 cryptographic signature over the request fingerprint and updates the record state to APPROVED.
- Reject: Marks the request as
REJECTED. The agent’s retry attempt will fail closed immediately.
4. Audit History
The History tab maintains an immutable chronological record of all previously approved, rejected, and consumed actions.
Architecture & Security Rules
No Authentication (Local / Demo Use Only): The dashboard has no user login or authentication layer. It is designed to run locally on 127.0.0.1. Do not expose port 8080 to the public internet without an authenticating reverse proxy (such as Cloudflare Access or Tailscale).
Core Invariants Enforced by Dashboard:
- Zero Direct SQL: The dashboard package contains zero SQL queries and does not import
sqlite3. It accesses data exclusively through Core’s public methods (list_pending(), approve_pending(), reject_pending()).
- Single Database Ownership: Core is the sole owner of the SQLite schema. The dashboard never creates its own database tables.
- Thread-Safe SQLite: Uses
ThreadSafeApprovalStore with thread-local connections to guarantee safe concurrent access under Uvicorn worker threads.