Scan Report
20 /100
agency-hq
A pixel art office visualization for AI agent teams. Shows real-time agent status, activity feeds, and personality-driven banter. Works with OpenClaw in live mode or standalone in demo mode.
A pixel-art visualization dashboard that reads OpenClaw session files and system stats; all core behavior is documented though a few minor filesystem paths accessed are not explicitly declared.
Safe to install
No blocking action needed. Consider documenting the undeclared ~/.openclaw/cron/runs/ path access in SKILL.md for full transparency.
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Low | Undeclared cron/runs directory access Doc Mismatch | src/app/api/agents/activity/route.ts:52 |
| Low | Undeclared ps aux process listing Doc Mismatch | src/app/api/agents/status/route.ts:62 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | READ | ✓ Aligned | SKILL.md declares scanning ~/.openclaw/agents/{id}/sessions/*.jsonl; activity/ro… |
| Shell | READ | READ | ✓ Aligned | stats/route.ts:9-36 uses execSync for uptime, /proc/loadavg, free -m, df — all l… |
| Environment | NONE | READ | ✓ Aligned | HOME and ARENA_MODE env vars are read; no sensitive key iteration |
| Network | NONE | NONE | — | No outbound network requests found; only internal localhost responses |
| Clipboard | NONE | NONE | — | Not accessed |
| Browser | NONE | NONE | — | UI component only, no browser automation |
| Database | NONE | NONE | — | SKILL.md explicitly states 'No database' |
| Skill Invoke | NONE | NONE | — | No skill self-invocation or subprocess spawning of other skills |
3 findings
Medium External URL 外部 URL
https://vercel.com/button README.md:123 Medium External URL 外部 URL
https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fenjinstudio%2Fagency-hq README.md:123 Medium External URL 外部 URL
https://enjinstudio.com README.md:198 File Tree
25 files · 155.6 KB · 4415 lines TypeScript 12f · 3877L
Markdown 2f · 295L
JavaScript 3f · 113L
CSS 1f · 68L
JSON 2f · 62L
├─
▾
public
│ ├─
file.svg
│ ├─
globe.svg
│ ├─
next.svg
│ ├─
vercel.svg
│ └─
window.svg
├─
▾
scripts
│ └─
generate-og-image.js
JavaScript
├─
▾
src
│ ├─
▾
app
│ │ ├─
▾
api
│ │ │ └─
▾
agents
│ │ │ ├─
▾
activity
│ │ │ │ └─
route.ts
TypeScript
│ │ │ ├─
▾
mode
│ │ │ │ └─
route.ts
TypeScript
│ │ │ ├─
▾
stats
│ │ │ │ └─
route.ts
TypeScript
│ │ │ └─
▾
status
│ │ │ └─
route.ts
TypeScript
│ │ ├─
globals.css
CSS
│ │ ├─
layout.tsx
TypeScript
│ │ └─
page.tsx
TypeScript
│ ├─
▾
components
│ │ ├─
ActivityPanel.tsx
TypeScript
│ │ └─
PixelOffice.tsx
TypeScript
│ └─
▾
lib
│ ├─
agent-chat.ts
TypeScript
│ ├─
agents.ts
TypeScript
│ └─
demo-data.ts
TypeScript
├─
eslint.config.mjs
JavaScript
├─
next.config.ts
TypeScript
├─
package.json
JSON
├─
postcss.config.mjs
JavaScript
├─
README.md
Markdown
├─
SKILL.md
Markdown
└─
tsconfig.json
JSON
Dependencies 4 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
next | 16.1.6 | npm | No | Pinned major version |
pixi.js | ^8.17.0 | npm | No | Major version pinned |
react | 19.2.3 | npm | No | Exact version |
canvas | ^3.2.1 | npm (dev) | No | Used only in build script generate-og-image.js |
Security Positives
✓ No credential harvesting — skill never reads SSH keys, AWS credentials, .env, or similar sensitive paths
✓ No data exfiltration — no outbound HTTP requests to external IPs
✓ No obfuscation — no base64, atob(), or encoded payload patterns
✓ No supply chain threats — all npm dependencies are standard with pinned major versions
✓ Shell commands are limited to read-only monitoring tools (uptime, free, df, ps, cat /proc/loadavg)
✓ Filesystem access is scoped to the user's own OpenClaw session data, not arbitrary system files
✓ Demo mode provides a zero-access fallback that works without touching any local resources
✓ SKILL.md correctly states 'No database. No external APIs.' — confirmed by code review
✓ Process listing via ps aux is used only to check local agent status, not for any credential or data gathering