Scan Report
5 /100
openclaw-manager
OpenClaw-native local control plane and durable state sidecar with thread shadow observation, session management, and connector normalization
OpenClaw Manager is a well-architected local control plane skill with strong security controls including loopback-only networking, consent-gated autostart, and no external data exfiltration.
Safe to install
The skill is safe to use. Ensure OPENCLAW_MANAGER_ALLOW_REMOTE_SIDECAR is not set in untrusted environments and review connector configurations before enabling external integrations.
Findings 1 items
| Severity | Finding | Location |
|---|---|---|
| Low | Dependency version not exact-pinned | package.json:27 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | WRITE | WRITE | ✓ Aligned | FsStore writes to ~/.openclaw/skills/manager/ |
| Network | NONE | READ | ✓ Aligned | Health check only to loopback /health endpoint |
| Shell | NONE | NONE | — | Uses spawn with shell:false to launch only known local entrypoints |
| Environment | READ | READ | ✓ Aligned | Only reads local manager config vars (STATE_ROOT, BIND_HOST, etc.) |
| Skill Invoke | NONE | NONE | — | No skill invocation observed |
| Clipboard | NONE | NONE | — | No clipboard access observed |
| Browser | NONE | NONE | — | No browser access observed |
| Database | NONE | NONE | — | Uses filesystem-only JSONL storage |
6 findings
Medium External URL 外部 URL
http://127.0.0.1:4318 README.md:113 Medium External URL 外部 URL
http://127.0.0.1:4318/health README.md:378 Medium External URL 外部 URL
http://127.0.0.1: SECURITY.md:36 Medium External URL 外部 URL
https://opencollective.com/express package-lock.json:598 Medium External URL 外部 URL
https://json-schema.org/draft/2020-12/schema schemas/capability-fact.schema.json:2 Medium External URL 外部 URL
http://127.0.0.1:45218 scripts/security-smoke.cjs:39 File Tree
63 files · 232.2 KB · 7061 lines TypeScript 37f · 4057L
JSON 8f · 1652L
Markdown 13f · 894L
JavaScript 2f · 323L
Shell 1f · 103L
YAML 2f · 32L
├─
▾
agents
│ └─
openai.yaml
YAML
├─
▾
docs
│ ├─
architecture.md
Markdown
│ ├─
capability-facts.md
Markdown
│ ├─
connector-protocol.md
Markdown
│ ├─
event-schema.md
Markdown
│ ├─
security-audit-response.md
Markdown
│ └─
session-model.md
Markdown
├─
▾
schemas
│ ├─
capability-fact.schema.json
JSON
│ ├─
event.schema.json
JSON
│ ├─
run.schema.json
JSON
│ ├─
session.schema.json
JSON
│ └─
skill-trace.schema.json
JSON
├─
▾
scripts
│ ├─
install.sh
Shell
│ ├─
security-smoke.cjs
JavaScript
│ └─
smoke-test.cjs
JavaScript
├─
▾
src
│ ├─
▾
api
│ │ ├─
health.ts
TypeScript
│ │ ├─
inbound.ts
TypeScript
│ │ └─
server.ts
TypeScript
│ ├─
▾
connectors
│ │ ├─
base.ts
TypeScript
│ │ ├─
email.ts
TypeScript
│ │ ├─
github.ts
TypeScript
│ │ ├─
registry.ts
TypeScript
│ │ ├─
telegram.ts
TypeScript
│ │ └─
wecom.ts
TypeScript
│ ├─
▾
control-plane
│ │ ├─
attention-service.ts
TypeScript
│ │ ├─
binding-service.ts
TypeScript
│ │ ├─
checkpoint-service.ts
TypeScript
│ │ ├─
event-service.ts
TypeScript
│ │ ├─
run-service.ts
TypeScript
│ │ ├─
session-service.ts
TypeScript
│ │ ├─
shadow-classifier.ts
TypeScript
│ │ ├─
shadow-service.ts
TypeScript
│ │ ├─
share-service.ts
TypeScript
│ │ └─
spool-service.ts
TypeScript
│ ├─
▾
exporters
│ │ ├─
markdown-report.ts
TypeScript
│ │ └─
snapshot-html.ts
TypeScript
│ ├─
▾
skill
│ │ ├─
autostart-consent.ts
TypeScript
│ │ ├─
bootstrap.ts
TypeScript
│ │ ├─
commands.ts
TypeScript
│ │ ├─
hooks.ts
TypeScript
│ │ ├─
local-config.ts
TypeScript
│ │ ├─
sidecar-health.ts
TypeScript
│ │ └─
sidecar-launcher.ts
TypeScript
│ ├─
▾
storage
│ │ ├─
fs-store.ts
TypeScript
│ │ ├─
indexes.ts
TypeScript
│ │ └─
locks.ts
TypeScript
│ ├─
▾
telemetry
│ │ ├─
capability-facts.ts
TypeScript
│ │ ├─
capability-graph.ts
TypeScript
│ │ ├─
closure-metrics.ts
TypeScript
│ │ ├─
scenario-tagging.ts
TypeScript
│ │ └─
skill-trace.ts
TypeScript
│ └─
types.ts
TypeScript
├─
▾
templates
│ ├─
capability-report.md
Markdown
│ ├─
focus-digest.md
Markdown
│ └─
session-summary.md
Markdown
├─
AGENTS.md
Markdown
├─
package-lock.json
JSON
├─
package.json
JSON
├─
README.md
Markdown
├─
SECURITY.md
Markdown
├─
SKILL.md
Markdown
├─
skill.yaml
YAML
└─
tsconfig.json
JSON
Dependencies 3 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
express | ^5.1.0 | npm | No | Version not exact-pinned, using caret range |
tsx | ^4.20.5 | npm | No | Dev dependency for TypeScript execution |
typescript | ^5.9.2 | npm | No | Dev dependency for type checking |
Security Positives
✓ Sidecar binds to 127.0.0.1 loopback-only by default with explicit rejection of non-loopback URLs
✓ Autostart requires explicit one-time consent before the sidecar can auto-launch
✓ Process spawning uses shell:false and only targets known local entrypoints (dist/api/server.js or tsx src/api/server.ts)
✓ All state stays local in ~/.openclaw/skills/manager/ with no exfiltration to remote servers
✓ Connectors are adapter-only (normalization) and do not make external requests by default
✓ Security smoke tests validate all critical security invariants including consent, bind host, and launcher constraints
✓ SECURITY.md documents all environment variables and their local-only usage
✓ No base64 encoding, eval(), or other suspicious code patterns observed
✓ No access to ~/.ssh, ~/.aws, .env, or other sensitive credential paths
✓ Capability facts are anonymized by default before export