This report was generated in Chinese. Some content may be in Chinese.
Trusted — Risk Score 5/100
Last scan:2 hr ago Rescan
5 /100
pixel-agents
Real-time pixel art ops dashboard for OpenClaw deployments. Visualizes agent activity as character sprites in a shared office with live activity bubbles, hardware monitoring, service controls, and task spawning.
Pixel Agents Dashboard 是 OpenClaw 的合法监控工具,用于可视化 agent 活动。代码审查未发现恶意行为、凭证收割、隐蔽通信或未声明的高危操作。
Skill Namepixel-agents
Duration61.2s
Enginepi
ClawHub Openclaw Pixel Agents Dashboard v1.0.0 by jaffer1979
📥 278
ClawHub Verdict Suspicious dangerous_execvt_suspicious
Safe to install
可用。该项目安全风险极低,建议信任使用。

Findings 3 items

Severity Finding Location
Low
shell:WRITE 超出声明范围 Priv Escalation
SKILL.md 未声明 shell 执行权限,但 setup.sh 调用 npm install/build,server 使用 execSync 执行 systemctl/nvidia-smi/df 等命令。这是仪表板工具的合法需要。
npm install --silent && npm run build
→ 建议在 SKILL.md 中声明 shell:WRITE 权限,说明用于 npm 构建和 systemd 服务管理。
setup.sh:177, server/hardware.ts:42, server/services.ts:43
Low
配置支持远程机器 SSH 访问 Sensitive Access
dashboard.config.example.json 和代码支持通过 SSH 连接远程机器执行命令(硬件监控、服务控制)。SSH 凭证存储在配置文件或环境变量中。
sshpass -p '${r.password}' ssh ... '${systemctlCmd}'
→ 确保远程 SSH 配置使用密钥认证而非密码,避免在配置文件中明文存储密码。
dashboard.config.example.json, server/hardware.ts:97, server/services.ts:43
Info
systemd --user 服务控制 Priv Escalation
services.ts 通过 systemctl --user 管理 openclaw-gateway 服务。这是合法的系统管理操作。
systemctl --user ${action} ${service.unit}
→ 无需修改,这是声明功能的一部分。
server/services.ts:43
ResourceDeclaredInferredStatusEvidence
Filesystem READ READ ✓ Aligned setup.sh:67 configLoader.ts:180 读取配置文件和 session 文件
Network READ READ ✓ Aligned server/index.ts 使用 Express/WebSocket 本地通信
Shell NONE WRITE ✗ Violation setup.sh:177 npm install/build; hardware.ts:42 nvidia-smi; services.ts:43 system…
Environment NONE READ ✗ Violation configLoader.ts:45 expandEnvVars 读取 ${OPENCLAW_GATEWAY_TOKEN} 等
10 findings
🔗
Medium External URL 外部 URL
https://openclaw.ai
README.md:3
🔗
Medium External URL 外部 URL
https://opencollective.com/babel
package-lock.json:91
🔗
Medium External URL 外部 URL
https://opencollective.com/express
package-lock.json:1425
🔗
Medium External URL 外部 URL
https://opencollective.com/browserslist
package-lock.json:1436
🔗
Medium External URL 外部 URL
https://tidelift.com/funding/github/npm/browserslist
package-lock.json:1440
🔗
Medium External URL 外部 URL
https://tidelift.com/funding/github/npm/caniuse-lite
package-lock.json:1512
🔗
Medium External URL 外部 URL
https://paulmillr.com/funding/
package-lock.json:1563
💰
Medium Wallet Address 加密货币钱包地址
347pnakNevPmiHhNmZ2HbFA76w
package-lock.json:2257
🔗
Medium External URL 外部 URL
https://opencollective.com/postcss/
package-lock.json:2378
🔗
Medium External URL 外部 URL
https://tidelift.com/funding/github/npm/postcss
package-lock.json:2382

File Tree

81 files · 701.4 KB · 23240 lines
TypeScript 66f · 16453L JSON 7f · 6129L Markdown 4f · 294L Shell 1f · 222L CSS 1f · 67L JavaScript 1f · 62L HTML 1f · 13L
├─ 📁 bin
│ └─ 📜 pixel-agents.cjs JavaScript 62L · 1.8 KB
├─ 📁 public
│ └─ 📁 assets
│ ├─ 📝 ASSET-LICENSE.md Markdown 29L · 1.3 KB
│ └─ 📋 default-layout.json JSON 2801L · 33.3 KB
├─ 📁 server
│ ├─ 📜 assetLoader.ts TypeScript 191L · 6.3 KB
│ ├─ 📜 config.ts TypeScript 108L · 3.6 KB
│ ├─ 📜 configLoader.ts TypeScript 292L · 9.0 KB
│ ├─ 📜 hardware.ts TypeScript 260L · 8.5 KB
│ ├─ 📜 index.ts TypeScript 397L · 11.3 KB
│ ├─ 📜 openclawParser.ts TypeScript 316L · 10.6 KB
│ ├─ 📜 services.ts TypeScript 130L · 3.9 KB
│ ├─ 📜 sessionWatcher.ts TypeScript 429L · 14.6 KB
│ ├─ 📜 setupWizard.ts TypeScript 514L · 16.1 KB
│ ├─ 📜 spawner.ts TypeScript 374L · 12.5 KB
│ └─ 📜 version.ts TypeScript 140L · 4.4 KB
├─ 📁 skill
│ ├─ 📁 scripts
│ │ └─ 🔧 setup.sh Shell 222L · 5.9 KB
│ └─ 📝 SKILL.md Markdown 58L · 2.0 KB
├─ 📁 src
│ ├─ 📁 components
│ │ ├─ 📜 ActivityBubble.tsx TypeScript 248L · 7.9 KB
│ │ ├─ 📜 ActivityTicker.tsx TypeScript 103L · 2.5 KB
│ │ ├─ 📜 AgentLabels.tsx TypeScript 171L · 5.7 KB
│ │ ├─ 📜 BottomToolbar.tsx TypeScript 142L · 4.0 KB
│ │ ├─ 📜 BreakerPanel.tsx TypeScript 226L · 6.5 KB
│ │ ├─ 📜 ConversationHeat.tsx TypeScript 175L · 5.4 KB
│ │ ├─ 📜 DayNightCycle.tsx TypeScript 110L · 3.2 KB
│ │ ├─ 📜 DebugView.tsx TypeScript 190L · 5.2 KB
│ │ ├─ 📜 FireAlarm.tsx TypeScript 191L · 5.3 KB
│ │ ├─ 📜 HamRadio.tsx TypeScript 335L · 11.0 KB
│ │ ├─ 📜 NickDesk.tsx TypeScript 158L · 4.4 KB
│ │ ├─ 📜 OfficeDoor.tsx TypeScript 189L · 6.0 KB
│ │ ├─ 📜 ServerRack.tsx TypeScript 269L · 7.8 KB
│ │ ├─ 📜 SessionInfoPanel.tsx TypeScript 164L · 5.0 KB
│ │ ├─ 📜 SettingsModal.tsx TypeScript 232L · 7.0 KB
│ │ ├─ 📜 SpawnButton.tsx TypeScript 433L · 14.7 KB
│ │ ├─ 📜 SpawnChat.tsx TypeScript 292L · 9.3 KB
│ │ └─ 📜 ZoomControls.tsx TypeScript 177L · 5.0 KB
│ ├─ 📁 hooks
│ │ ├─ 📜 useEditorActions.ts TypeScript 634L · 21.1 KB
│ │ ├─ 📜 useEditorKeyboard.ts TypeScript 74L · 2.3 KB
│ │ ├─ 📜 useExtensionMessages.ts TypeScript 406L · 15.2 KB
│ │ ├─ 📜 useOpenClawEvents.ts TypeScript 437L · 14.1 KB
│ │ └─ 📜 useSpawnedSessions.ts TypeScript 201L · 5.7 KB
│ ├─ 📁 office
│ │ ├─ 📁 components
│ │ │ ├─ 📜 index.ts TypeScript 2L · 98 B
│ │ │ ├─ 📜 OfficeCanvas.tsx TypeScript 885L · 31.4 KB
│ │ │ └─ 📜 ToolOverlay.tsx TypeScript 233L · 7.7 KB
│ │ ├─ 📁 editor
│ │ │ ├─ 📜 editorActions.ts TypeScript 268L · 8.7 KB
│ │ │ ├─ 📜 editorState.ts TypeScript 120L · 3.0 KB
│ │ │ ├─ 📜 EditorToolbar.tsx TypeScript 646L · 20.2 KB
│ │ │ └─ 📜 index.ts TypeScript 9L · 226 B
│ │ ├─ 📁 engine
│ │ │ ├─ 📜 characters.ts TypeScript 339L · 10.0 KB
│ │ │ ├─ 📜 gameLoop.ts TypeScript 35L · 856 B
│ │ │ ├─ 📜 index.ts TypeScript 19L · 535 B
│ │ │ ├─ 📜 matrixEffect.ts TypeScript 139L · 5.0 KB
│ │ │ ├─ 📜 officeState.ts TypeScript 700L · 23.8 KB
│ │ │ └─ 📜 renderer.ts TypeScript 669L · 19.6 KB
│ │ ├─ 📁 layout
│ │ │ ├─ 📜 furnitureCatalog.ts TypeScript 383L · 12.6 KB
│ │ │ ├─ 📜 index.ts TypeScript 18L · 495 B
│ │ │ ├─ 📜 layoutSerializer.ts TypeScript 375L · 12.6 KB
│ │ │ └─ 📜 tileMap.ts TypeScript 105L · 3.0 KB
│ │ ├─ 📁 sprites
│ │ │ ├─ 📜 index.ts TypeScript 13L · 325 B
│ │ │ ├─ 📜 spriteCache.ts TypeScript 77L · 2.3 KB
│ │ │ └─ 📜 spriteData.ts TypeScript 1122L · 50.6 KB
│ │ ├─ 📜 colorize.ts TypeScript 207L · 5.6 KB
│ │ ├─ 📜 floorTiles.ts TypeScript 74L · 2.8 KB
│ │ ├─ 📜 toolUtils.ts TypeScript 28L · 876 B
│ │ ├─ 📜 types.ts TypeScript 198L · 5.6 KB
│ │ └─ 📜 wallTiles.ts TypeScript 189L · 5.6 KB
│ ├─ 📜 apiBase.ts TypeScript 14L · 512 B
│ ├─ 📜 App.tsx TypeScript 553L · 17.1 KB
│ ├─ 📜 constants.ts TypeScript 113L · 5.8 KB
│ ├─ 📄 index.css CSS 67L · 1.6 KB
│ ├─ 📜 main.tsx TypeScript 12L · 237 B
│ ├─ 📜 notificationSound.ts TypeScript 168L · 4.9 KB
│ └─ 📜 vscodeApi.ts TypeScript 6L · 206 B
├─ 📋 dashboard.config.example.json JSON 84L · 3.0 KB
├─ 📄 index.html HTML 13L · 389 B
├─ 📋 package-lock.json JSON 3118L · 104.5 KB
├─ 📋 package.json JSON 65L · 1.5 KB
├─ 📝 README.md Markdown 165L · 5.9 KB
├─ 📝 SKILL.md Markdown 42L · 1.3 KB
├─ 📋 tsconfig.app.json JSON 28L · 732 B
├─ 📋 tsconfig.json JSON 7L · 119 B
├─ 📋 tsconfig.node.json JSON 26L · 653 B
└─ 📜 vite.config.ts TypeScript 26L · 478 B

Dependencies 5 items

PackageVersionSourceKnown VulnsNotes
react ^19.2.0 npm No 前端框架,无风险
express ^5.1.0 npm No Web 服务器,无风险
ws ^8.18.0 npm No WebSocket,无风险
chokidar ^4.0.0 npm No 文件监控,无风险
tsx ^4.19.0 npm No TypeScript 执行,无风险

Security Positives

✓ 代码结构清晰,TypeScript 类型完整
✓ 配置文件支持 ${ENV_VAR} 扩展,敏感信息可存环境变量
✓ 无 Base64 编码、eval()、动态代码执行等可疑模式
✓ 无凭证收割、文件外传、C2 通信等恶意行为
✓ SSH 凭证支持密钥认证(keyPath)优先于密码
✓ 文档与代码行为基本一致