fix: prevent Add Agent from overwriting existing bot token + multi-bot support

CRITICAL BUG FIX: Add Agent was overwriting channels.telegram.botToken,
breaking all existing agents. Now uses OpenClaw's multi-account structure
(channels.telegram.accounts) with automatic migration from old format.

Changes:
- Replace POST /api/agents/main with POST /api/agents/bot (new agent
  with its own bot token, never overwrites existing tokens)
- Auto-migrate old botToken format to accounts.default on first new bot
- Sub-agent form now selects parent agent (not hardcoded to "main")
- GET /api/agents returns hasOwnBot flag for each agent
- Stats rewritten to parse session JSONL files (not gateway.log)
- Fix togglePopover conflict with browser native Popover API
- Agent tree uses event delegation (data-action) instead of inline onclick
- Backup timestamps use Australia/Brisbane timezone
- Center toolbar buttons, constrain agent tree width
- README rewritten: professional, removed empty screenshot placeholders
- All new UI strings in English

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-26 00:22:43 +00:00
co-authored by Claude Opus 4.6
parent 089ff8986a
commit e2f4e88a7a
2 changed files with 290 additions and 302 deletions
+62 -177
View File
@@ -1,116 +1,56 @@
# OpenClaw Manager (OCM)
> A zero-dependency, single-file local dashboard for [OpenClaw](https://github.com/anthropics/openclaw) — manage sub-agents, run commands in a built-in CLI, and stop hand-editing JSON.
A zero-dependency, single-file web dashboard for [OpenClaw](https://github.com/anthropics/openclaw). Manage agents, monitor token usage, and run commands — all from your browser, no `npm install` required.
[中文说明](#中文说明)
---
## Quick Start (1 min)
## Quick Start
```bash
# Install
# Clone
git clone https://github.com/dtzp555-max/ocm.git
cd ocm
# Update (existing clone)
git pull --ff-only
# Run (no npm install needed)
bash start.sh # macOS / Linux
start.bat # Windows
bash start.sh # macOS / Linux
start.bat # Windows
# Update
git pull --ff-only
```
Open [http://localhost:3333](http://localhost:3333).
## Why OCM
- **Single-file + zero dependency**: one `openclaw-manager.js`, no build step
- **Fast daily operations**: agent/model/auth/cron/backup in one local UI
- **Built-in terminal**: run `openclaw` commands with streaming output and presets
## Screenshots
### Landing Page
Choose between Sub-agent mode and Multi-agent mode. Switch language (EN / 中文) anytime.
<!-- Screenshot removed (possible sensitive IDs) -->
### Agent Management
View all agents (main + sub-agents) at a glance. Each card shows model, group binding, and workspace path. Switch models inline, browse files, or delete with auto-backup.
<!-- Screenshot removed (contained sensitive binding IDs) -->
### Built-in CLI Terminal
Run any openclaw command with real-time streaming output. The terminal panel sits at the bottom of the page and expands on demand.
<!-- Screenshot removed (possible sensitive IDs) -->
<details>
<summary>More screenshots</summary>
### New Subagent Wizard
4-step guided wizard to create a sub-agent: basic info → model → personality & memory → confirm. Fully bilingual.
<!-- Screenshot removed (contained sensitive binding IDs) -->
### Model Selector
Rich model dropdown grouped by provider — GitHub Copilot, Anthropic, OpenAI, Google, DeepSeek, Kimi, Groq, Mistral, Together, plus your custom models.
<!-- Screenshot removed (possible sensitive IDs) -->
### Actions Menu
Quick access to gateway operations, backups, health checks, and directory management. Use **"Switch OpenClaw Dir"** to point OCM to your OpenClaw config on first setup.
<!-- Screenshot removed (possible sensitive IDs) -->
### Cron Job Management
View, add, enable/disable, and manually trigger openclaw-related cron tasks. Integrates with NAS backup schedules.
<!-- Screenshot removed (possible sensitive IDs) -->
Preset command menu with built-in commands and your personal favorites — one click to run.
<!-- Screenshot removed (possible sensitive IDs) -->
Command output streams in real-time. Star frequently used commands for quick access, or use the Manage button to organize favorites.
<!-- Screenshot removed (possible sensitive IDs) -->
</details>
Open [http://localhost:3333](http://localhost:3333) in your browser. For remote access, use `bash start.sh --host 0.0.0.0`.
## Features
- **Agents & Workspace** — Create sub-agents, switch models inline, and browse/edit workspace files
- **Models & Auth** — Manage primary/fallback models and follow provider auth guides
- **Ops Panel** — Restart gateway, view logs, run health checks, and switch OpenClaw directory
- **Stats & Cron** — Token/cost stats from `gateway.log` plus cron task management
- **Backups** — Local backup/rollback and NAS backup (SFTP/rsync)
- **Built-in CLI** — Real-time command terminal with presets, favorites, and tab completion
**Agent Management**Add main agents and sub-agents through a guided setup flow. View all agents in a tree structure with model selection, workspace browsing, and inline configuration.
**Usage Statistics** — Real token usage data parsed directly from OpenClaw session files. Breakdown by model, agent, and day with a visual chart.
**Model & Auth**Configure models from your registered provider list. Follow built-in guides for provider authentication setup.
**Built-in CLI** — Run any `openclaw` command with real-time streaming output. Preset commands, favorites, and tab completion included.
**Ops Panel** — Restart gateway, view logs, run health checks, manage backups (local + NAS via SFTP/rsync), and handle cron tasks.
**Bilingual UI** — English and Chinese interface with one-click language switching.
## Requirements
- Node.js >= 18 ([download](https://nodejs.org/))
- Node.js 18+ ([download](https://nodejs.org/))
- A working [OpenClaw](https://github.com/anthropics/openclaw) installation
Install/update/run commands are in **Quick Start (1 min)** above.
### First Run
On first launch, the start script auto-detects `~/.openclaw` and creates a `manager-config.json` for you. If your OpenClaw config is elsewhere, use **Actions → Switch OpenClaw Dir** in the UI to point to the correct path.
### macOS Double-click
Double-click `OpenClaw Manager.app` in Finder. On first launch, you may need to allow it in System Settings → Privacy & Security.
### Custom Port
```bash
bash start.sh --port 8080
```
## Configuration
The app locates your OpenClaw config directory in this order:
On first launch, OCM auto-detects `~/.openclaw` and creates a local `manager-config.json`. If your OpenClaw config is elsewhere, use **Actions → Switch OpenClaw Dir** or specify it directly:
```bash
bash start.sh --dir /path/to/.openclaw --port 8080
```
Detection priority:
| Priority | Method |
|----------|--------|
@@ -125,9 +65,17 @@ You can also create `manager-config.json` manually:
{ "dir": "~/.openclaw" }
```
`~` expands to your home directory on all platforms. `manager-config.json` is in `.gitignore` and won't be committed.
`manager-config.json` is gitignored and won't be committed.
## Optional: Shell Alias
## Remote Access
By default OCM binds to `0.0.0.0` (all interfaces). Access it from another device on your LAN using the IP shown at startup. To restrict to localhost only:
```bash
bash start.sh --host 127.0.0.1
```
## Shell Alias (Optional)
```bash
# Add to ~/.zshrc or ~/.bashrc
@@ -138,13 +86,12 @@ alias ocm="bash ~/path/to/ocm/start.sh"
```
ocm/
├── openclaw-manager.js ← The entire app (server + frontend, single file)
├── start.sh ← macOS/Linux start script (auto-detect Node, port, config)
├── start.bat ← Windows start script
├── OpenClaw Manager.app/ ← macOS Finder double-click launcher
├── manager-config.json ← Local config (gitignored)
├── package.json
├── DEVLOG.md ← Development log
├── openclaw-manager.js ← Entire app (server + frontend, single file)
├── start.sh ← macOS/Linux launcher (auto-detect, port conflict handling)
├── start.bat ← Windows launcher
├── OpenClaw Manager.app/ ← macOS Finder double-click launcher
├── manager-config.json ← Local config (gitignored)
├── DEVLOG.md ← Development log
└── README.md
```
@@ -154,12 +101,6 @@ ocm/
- **Frontend**: Vanilla HTML/CSS/JS embedded in a template literal — no build step, no framework
- **Architecture**: Single-file, zero-dependency, runs anywhere Node.js runs
## Support / Donate
If OCM saves you time, consider starring the repo or sponsoring development.
- GitHub Sponsors: *(add link when ready)*
## License
MIT
@@ -168,94 +109,38 @@ MIT
## 中文说明
### 简介
OpenClaw Manager 是一个零依赖的本地 Web 管理界面,用于可视化管理 [OpenClaw](https://github.com/anthropics/openclaw) AI 智能体。所有代码在一个 `.js` 文件中,只需 Node.js 18+,不需要 `npm install`
OpenClaw Manager 是一个零依赖的本地 Web 管理界面,用于可视化管理 [OpenClaw](https://github.com/anthropics/openclaw) AI 智能体。所有代码合并在一个 `.js` 文件中,只需要 Node.js 18+,不需要 `npm install`
### 1 分钟上手
### 快速开始
```bash
# 首次安装
git clone https://github.com/dtzp555-max/ocm.git
cd ocm
# 已安装后更新
git pull --ff-only
# 运行(无需 npm install
bash start.sh # macOS / Linux
start.bat # Windows
bash start.sh # macOS / Linux
start.bat # Windows
```
访问 [http://localhost:3333](http://localhost:3333)。
访问 [http://localhost:3333](http://localhost:3333)。远程访问请使用 `bash start.sh --host 0.0.0.0`
### 界面预览
### 功能
#### 模式选择
<!-- Screenshot removed (possible sensitive IDs) -->
- **Agent 管理** — 添加主 Agent 和子 Agent,树状结构查看,内联切换模型,浏览工作区文件
- **使用统计** — 从 OpenClaw 会话文件解析真实 Token 用量,按模型/Agent/日期维度展示
- **模型与认证** — 管理注册模型列表,内置 Provider 认证引导
- **内置终端** — 实时流式输出,预设命令,收藏夹,Tab 补全
- **运维面板** — 重启网关、查看日志、健康检查、本地/NAS 备份、Cron 任务管理
- **双语界面** — 中英文一键切换
#### Agent 管理
<!-- Screenshot removed (contained sensitive binding IDs) -->
### 配置
#### 内置 CLI 终端
底部终端面板,支持实时流式输出、预设命令、收藏夹、Tab 补全。
启动脚本自动检测 `~/.openclaw` 目录。如需指定其他路径:
<!-- Screenshot removed (possible sensitive IDs) -->
```bash
bash start.sh --dir /path/to/.openclaw --port 8080
```
<details>
<summary>更多截图</summary>
#### 新建向导
<!-- Screenshot removed (contained sensitive binding IDs) -->
#### 模型选择 & 操作菜单
首次安装后,通过 **Actions → Switch OpenClaw Dir** 指向你的 OpenClaw 配置目录即可开始使用。
<!-- Screenshot removed (possible sensitive IDs) -->
<!-- Screenshot removed (possible sensitive IDs) -->
#### Cron 定时任务
<!-- Screenshot removed (possible sensitive IDs) -->
<!-- Screenshot removed (possible sensitive IDs) -->
<!-- Screenshot removed (possible sensitive IDs) -->
</details>
### 功能一览
- **Agent 与 Workspace** — 新建子智能体、内联切换模型、浏览/编辑工作区文件
- **模型与认证** — 管理主模型/Fallback 链,按引导完成各 Provider 认证
- **运维操作面板** — 重启网关、查看日志、健康检查、切换 OpenClaw 目录
- **统计与计划任务** — 从 `gateway.log` 汇总 Token/费用,并管理 Cron 任务
- **备份能力** — 本地备份回滚 + NAS 远程备份(SFTP/rsync
- **内置 CLI 终端** — 实时输出、预设命令、收藏、Tab 补全
安装/更新/运行命令见上方 **1 分钟上手**
### 首次运行
启动脚本会自动检测 `~/.openclaw` 目录并创建 `manager-config.json`。如果你的 OpenClaw 配置在其他位置,进入界面后点击 **Actions → Switch OpenClaw Dir** 切换即可。
### 指定 OpenClaw 目录
程序按以下优先级查找配置:
1. `--dir` 命令行参数
2. `OPENCLAW_DIR` 环境变量
3. 同目录下的 `manager-config.json`
4. `~/.openclaw`(默认)
也可以手动创建 `manager-config.json`
也可手动创建 `manager-config.json`
```json
{ "dir": "~/.openclaw" }
```
`~` 在所有平台自动展开为用户主目录。
### Shell 别名(可选)
```bash
# 加到 ~/.zshrc 或 ~/.bashrc
alias ocm="bash ~/path/to/ocm/start.sh"
```