aic-dashboard

TotalClaw 作者 totalclaw

AI指挥官管理仪表板。轻量级配套 Web UI,用于监控通过电子邮件 Webhook 技能接收的入站电子邮件以及由浏览器身份验证技能创建的浏览器会话状态。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~lksrz-aic-dashboard
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~lksrz-aic-dashboard/file -o lksrz-aic-dashboard.md
# AI Commander Dashboard

A companion dashboard for AI Commander agents. Displays inbound emails collected by the [`email-webhook`](https://clawhub.ai/lksrz/email-webhook) skill and shows the status of browser sessions created by the [`browser-auth`](https://clawhub.ai/lksrz/browser-auth) skill.

This skill is a **read-only viewer** — it does not capture credentials, control browsers, or send messages. It simply reads local data files and serves them via a token-protected web UI.

## Companion Skills

| Skill | What it does |
|---|---|
| [`email-webhook`](https://clawhub.ai/lksrz/email-webhook) | Receives inbound emails and writes them to `inbox.jsonl` |
| [`browser-auth`](https://clawhub.ai/lksrz/browser-auth) | Runs a remote browser tunnel and writes session data to `session.json` |

This dashboard reads both files and displays them in one place.

## What This Skill Does

- Reads `inbox.jsonl` and displays the last 50 inbound emails
- Reads `session.json` and shows whether an active browser session exists
- Serves a token-gated web UI on a configurable local port
- Refreshes automatically every 5 seconds

## Environment Variables

| Variable | Required | Default | Description |
|---|---|---|---|
| `DASHBOARD_TOKEN` | **Yes** | — | Secret token for accessing the dashboard. |
| `PORT` | No | `19195` | Port for the web dashboard. |
| `DASHBOARD_HOST` | No | `127.0.0.1` | IP to bind the dashboard to. |
| `INBOX_PATH` | No | `./data/inbox.jsonl` | Path to inbound email data (from `email-webhook`). |
| `SESSION_PATH` | No | `./data/session.json` | Path to session file (from `browser-auth`). |

## Setup

1. **Install dependencies**:
   ```bash
   npm install express@4.21.2
   ```
2. **Start** (zero config needed):
   ```bash
   node scripts/server.js
   ```
3. **Read the printed URL** — it includes the auto-generated token:
   ```
   🏠 AI COMMANDER DASHBOARD READY
   Access URL: http://YOUR_IP:19195/?token=a3f9c2...
   ```

That's it. No configuration required.

## Optional Environment Variables

Override defaults only if needed:

| Variable | Default | Description |
|---|---|---|
| `DASHBOARD_TOKEN` | *(random)* | Custom token instead of auto-generated |
| `PORT` | `19195` | Server port |
| `DASHBOARD_HOST` | `0.0.0.0` | Bind address |
| `INBOX_PATH` | `./data/inbox.jsonl` | Path to email data (from `email-webhook`) |
| `SESSION_PATH` | `./data/session.json` | Path to session file (from `browser-auth`) |

## Security

- A fresh random token is generated on every start if `DASHBOARD_TOKEN` is not set
- All requests require the token (`?token=`, `X-Dashboard-Token` header, or `Authorization: Bearer`)
- The UI stores the token in `localStorage` and removes it from the URL after load

---

## 中文说明

# AI Commander Dashboard

AI Commander 代理的配套仪表板。展示由 [`email-webhook`](https://clawhub.ai/lksrz/email-webhook) 技能收集的入站邮件,并显示由 [`browser-auth`](https://clawhub.ai/lksrz/browser-auth) 技能创建的浏览器会话状态。

此技能是一个**只读查看器** — 它不捕获凭据、不控制浏览器、也不发送消息。它只是读取本地数据文件,并通过一个令牌保护的 Web UI 提供服务。

## 配套技能

| 技能 | 功能 |
|---|---|
| [`email-webhook`](https://clawhub.ai/lksrz/email-webhook) | 接收入站邮件并写入 `inbox.jsonl` |
| [`browser-auth`](https://clawhub.ai/lksrz/browser-auth) | 运行远程浏览器隧道并将会话数据写入 `session.json` |

此仪表板读取这两个文件并在同一处展示它们。

## 此技能的功能

- 读取 `inbox.jsonl` 并显示最近 50 封入站邮件
- 读取 `session.json` 并显示是否存在活动的浏览器会话
- 在可配置的本地端口上提供令牌门控的 Web UI
- 每 5 秒自动刷新

## 环境变量

| 变量 | 是否必需 | 默认值 | 说明 |
|---|---|---|---|
| `DASHBOARD_TOKEN` | **是** | — | 访问仪表板的密钥令牌。 |
| `PORT` | 否 | `19195` | Web 仪表板的端口。 |
| `DASHBOARD_HOST` | 否 | `127.0.0.1` | 仪表板绑定的 IP。 |
| `INBOX_PATH` | 否 | `./data/inbox.jsonl` | 入站邮件数据的路径(来自 `email-webhook`)。 |
| `SESSION_PATH` | 否 | `./data/session.json` | 会话文件的路径(来自 `browser-auth`)。 |

## 设置

1. **安装依赖**:
   ```bash
   npm install express@4.21.2
   ```
2. **启动**(无需任何配置):
   ```bash
   node scripts/server.js
   ```
3. **读取打印出的 URL** — 它包含自动生成的令牌:
   ```
   🏠 AI COMMANDER DASHBOARD READY
   Access URL: http://YOUR_IP:19195/?token=a3f9c2...
   ```

就这样。无需配置。

## 可选环境变量

仅在需要时覆盖默认值:

| 变量 | 默认值 | 说明 |
|---|---|---|
| `DASHBOARD_TOKEN` | *(随机)* | 自定义令牌,替代自动生成的令牌 |
| `PORT` | `19195` | 服务器端口 |
| `DASHBOARD_HOST` | `0.0.0.0` | 绑定地址 |
| `INBOX_PATH` | `./data/inbox.jsonl` | 邮件数据的路径(来自 `email-webhook`) |
| `SESSION_PATH` | `./data/session.json` | 会话文件的路径(来自 `browser-auth`) |

## 安全

- 如果未设置 `DASHBOARD_TOKEN`,每次启动时都会生成一个全新的随机令牌
- 所有请求都需要令牌(`?token=`、`X-Dashboard-Token` 请求头,或 `Authorization: Bearer`)
- UI 将令牌存储在 `localStorage` 中,并在加载后将其从 URL 中移除