MonoClaw

Web Dashboard

The MonoClaw dashboard is a web-based interface for managing Mona. It provides session browsing, job monitoring, metrics, and a chat terminal — all accessible from your browser.

Installation

The web extra is included in the [all] install and the [local-office] bundle. If you installed the minimal bundle:

cd ~/.monoclaw/monoclaw-runtime
uv pip install -e ".[web]"

This installs FastAPI and uvicorn.

Starting the dashboard

monoclaw dashboard

This starts the dashboard on http://localhost:8080 by default.

Dashboard features

Sessions

  • Browse past conversations
  • Search session history
  • Export sessions to Markdown
  • Resume sessions

Jobs

  • View running cron jobs
  • Check job execution history
  • Retry failed jobs

Metrics

  • Token usage per model
  • Tool call frequency
  • Response latency
  • Error rates

Chat terminal

  • Web-based chat interface
  • Supports markdown rendering
  • File upload/download
  • Voice input (browser-supported)

Configuration

# ~/.monoclaw/config.yaml
dashboard:
  enabled: true
  host: "127.0.0.1"
  port: 8080
  auth:
    enabled: true
    username: "admin"
    password: "${DASHBOARD_PASSWORD}"

Production deployment

For remote access, use a reverse proxy with HTTPS:

nginx

server {
    listen 443 ssl;
    server_name monoclaw.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Caddy

monoclaw.yourdomain.com {
    reverse_proxy localhost:8080
}

API endpoints

The dashboard exposes a REST API:

EndpointDescription
GET /api/sessionsList sessions
GET /api/sessions/{id}Get session details
POST /api/chatSend a message
GET /api/jobsList cron jobs
GET /api/metricsGet usage metrics

Authentication

Enable basic auth for production:

dashboard:
  auth:
    enabled: true
    type: basic
    username: "admin"
    password: "${DASHBOARD_PASSWORD}"

Troubleshooting

ProblemFix
"Dashboard not found"Install the [web] extra
"Port already in use"Change dashboard.port in config
"Cannot access remotely"Bind to 0.0.0.0 or use a reverse proxy
WebSocket errorsEnsure your reverse proxy supports WebSocket upgrade