Scan Report
5 /100
totalreclaw
End-to-end encrypted memory vault for AI agents with AES-256-GCM
TotalReclaw is a legitimate end-to-end encrypted memory plugin for AI agents with no malicious indicators. All pre-scan base64 flags are standard cryptographic encoding operations, hardcoded credentials exist only in test files, and all functionality is properly declared in SKILL.md.
Safe to install
No action needed. The skill is safe to use.
Findings 2 items
| Severity | Finding | Location |
|---|---|---|
| Low | SKILL.md does not declare TOTALRECLAW_RECOVERY_PHRASE env var Doc Mismatch | SKILL.md:1 |
| Low | @huggingface/transformers unpinned to minor/patch Supply Chain | plugin/package.json:1 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | NONE | READ+WRITE | ✓ Aligned | plugin/index.ts:200 — CREDENTIALS_PATH, billing cache, MEMORY.md header manageme… |
| Network | NONE | READ+WRITE | ✓ Aligned | plugin/api-client.ts — JSON/HTTP to api.totalreclaw.xyz; plugin/subgraph-store.t… |
| Shell | NONE | NONE | — | No subprocess, exec, or spawn calls found in production plugin code |
| Environment | NONE | READ | ✓ Aligned | plugin/llm-client.ts:160-200 — reads provider API keys (ZAI_API_KEY, OPENAI_API_… |
| Skill Invoke | NONE | NONE | — | No dynamic skill invocation |
| Clipboard | NONE | NONE | — | No clipboard access |
| Browser | NONE | NONE | — | No browser automation |
| Database | NONE | NONE | — | No direct database access — encrypted facts stored via API or on-chain |
5 Critical 5 High 50 findings
Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(creds.salt, 'base64' plugin/index.ts:366 Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(b64, 'base64' plugin/index.ts:724 Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(encryptedBase64, 'base64' plugin/pocv2-e2e-test.ts:141 Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(record.data, 'base64' src/tools/export.ts:260 Critical Encoded Execution Base64 编码执行(代码混淆)
Buffer.from(response.body.salt, 'base64' tests/integration/server-integration.test.ts:360 High API Key 疑似硬编码凭证
Password = 'pocv2-e2e-test-password-2026' plugin/pocv2-e2e-test.ts:401 High API Key 疑似硬编码凭证
Password: 'my-secure-password' src/index.ts:13 High API Key 疑似硬编码凭证
Password: 'test-password-123' tests/integration/e2e-flow.test.ts:281 High API Key 疑似硬编码凭证
Password: 'new-user-password' tests/integration/e2e-flow.test.ts:348 High API Key 疑似硬编码凭证
Password: 'existing-password' tests/integration/e2e-flow.test.ts:361 Medium External URL 外部 URL
https://clawhub.ai CLAWHUB.md:3 Medium External URL 外部 URL
https://clawhub.ai/skills/totalreclaw CLAWHUB.md:10 Medium External URL 外部 URL
https://totalreclaw.xyz CLAWHUB.md:67 Medium External URL 外部 URL
http://your-totalreclaw-server:8080 README.md:26 Medium External URL 外部 URL
http://127.0.0.1:8080 README.md:246 Medium External URL 外部 URL
http://your-server:8080 README.md:273 Medium External URL 外部 URL
https://www.npmjs.com/package/@totalreclaw/core README.md:313 Medium External URL 外部 URL
https://totalreclaw.xyz/pricing SKILL.md:221 Medium External URL 外部 URL
https://checkout.stripe.com/c/pay/... SKILL.md:280 Medium External URL 外部 URL
https://api.totalreclaw.xyz SKILL.md:877 Medium External URL 外部 URL
https://www.npmjs.com/package/@totalreclaw/totalreclaw plugin/README.md:13 Medium External URL 外部 URL
https://img.shields.io/npm/v/@totalreclaw/totalreclaw?color=7B5CFF plugin/README.md:18 Medium External URL 外部 URL
https://img.shields.io/npm/dm/@totalreclaw/totalreclaw plugin/README.md:19 Medium External URL 外部 URL
https://img.shields.io/badge/license-MIT-blue plugin/README.md:20 Medium External URL 外部 URL
https://openclaw.ai plugin/README.md:25 Medium External URL 外部 URL
https://www.npmjs.com/package/@totalreclaw/mcp-server plugin/README.md:92 Medium External URL 外部 URL
https://api.mem0.ai plugin/import-adapters/mem0-adapter.ts:156 Medium External URL 外部 URL
https://api.z.ai/api/paas/v4 plugin/llm-client.ts:64 Medium External URL 外部 URL
https://api.mistral.ai/v1 plugin/llm-client.ts:69 Medium External URL 外部 URL
https://api.groq.com/openai/v1 plugin/llm-client.ts:70 Medium External URL 外部 URL
https://api.deepseek.com/v1 plugin/llm-client.ts:71 Medium External URL 外部 URL
https://openrouter.ai/api/v1 plugin/llm-client.ts:72 Medium External URL 外部 URL
https://api.x.ai/v1 plugin/llm-client.ts:73 Medium External URL 外部 URL
https://api.together.xyz/v1 plugin/llm-client.ts:74 Medium External URL 外部 URL
https://api.cerebras.ai/v1 plugin/llm-client.ts:75 Medium External URL 外部 URL
https://opencollective.com/libvips plugin/package-lock.json:88 Medium External URL 外部 URL
https://paulmillr.com/funding/ plugin/package-lock.json:549 Medium External URL 外部 URL
https://www.npmjs.com/support plugin/package-lock.json:750 Medium Wallet Address 加密货币钱包地址
0xC445af1D4EB9fce4e1E61fE96ea7B8feBF03c5ca plugin/subgraph-store.ts:26 Medium Wallet Address 加密货币钱包地址
0x0000000071727De22E5E9d8BAf0edAc6f37da032 plugin/subgraph-store.ts:29 Medium External URL 外部 URL
http://custom-server:9000 tests/config.test.ts:61 Medium External URL 外部 URL
https://secure.example.com tests/config.test.ts:74 Medium External URL 外部 URL
http://openclaw-memory:8080 tests/config.test.ts:105 Medium External URL 外部 URL
http://env-server:8888 tests/config.test.ts:134 Medium External URL 外部 URL
http://env-server tests/config.test.ts:218 Medium External URL 外部 URL
http://override-server tests/config.test.ts:219 Medium External URL 外部 URL
http://openclaw-server tests/config.test.ts:234 Medium External URL 外部 URL
http://insecure.com tests/config.test.ts:315 Medium External URL 外部 URL
http://custom:9000 tests/config.test.ts:501 Medium External URL 外部 URL
http://nonexistent-server:9999 tests/tools.test.ts:649 File Tree
72 files · 956.7 KB · 30361 lines TypeScript 60f · 26957L
JSON 6f · 1713L
Markdown 4f · 1656L
Shell 1f · 19L
JavaScript 1f · 16L
├─
▾
plugin
│ ├─
▾
import-adapters
│ │ ├─
base-adapter.ts
TypeScript
│ │ ├─
chatgpt-adapter.ts
TypeScript
│ │ ├─
claude-adapter.ts
TypeScript
│ │ ├─
import-adapters.test.ts
TypeScript
│ │ ├─
index.ts
TypeScript
│ │ ├─
mcp-memory-adapter.ts
TypeScript
│ │ ├─
mem0-adapter.ts
TypeScript
│ │ └─
types.ts
TypeScript
│ ├─
api-client.ts
TypeScript
│ ├─
consolidation.test.ts
TypeScript
│ ├─
consolidation.ts
TypeScript
│ ├─
crypto.ts
TypeScript
│ ├─
embedding.ts
TypeScript
│ ├─
extractor-dedup.test.ts
TypeScript
│ ├─
extractor.ts
TypeScript
│ ├─
generate-mnemonic.ts
TypeScript
│ ├─
hot-cache-wrapper.ts
TypeScript
│ ├─
index.ts
TypeScript
│ ├─
llm-client.ts
TypeScript
│ ├─
lsh.test.ts
TypeScript
│ ├─
lsh.ts
TypeScript
│ ├─
openclaw.plugin.json
JSON
│ ├─
package-lock.json
JSON
│ ├─
package.json
JSON
│ ├─
pocv2-e2e-test.ts
TypeScript
│ ├─
porter-stemmer.d.ts
TypeScript
│ ├─
README.md
Markdown
│ ├─
reranker.test.ts
TypeScript
│ ├─
reranker.ts
TypeScript
│ ├─
semantic-dedup.test.ts
TypeScript
│ ├─
semantic-dedup.ts
TypeScript
│ ├─
setup.sh
Shell
│ ├─
store-dedup-wiring.test.ts
TypeScript
│ ├─
subgraph-search.ts
TypeScript
│ └─
subgraph-store.ts
TypeScript
├─
▾
src
│ ├─
▾
extraction
│ │ ├─
dedup.ts
TypeScript
│ │ ├─
extractor.ts
TypeScript
│ │ ├─
index.ts
TypeScript
│ │ └─
prompts.ts
TypeScript
│ ├─
▾
reranker
│ │ └─
cross-encoder.ts
TypeScript
│ ├─
▾
tools
│ │ ├─
export.ts
TypeScript
│ │ ├─
forget.ts
TypeScript
│ │ ├─
index.ts
TypeScript
│ │ ├─
recall.ts
TypeScript
│ │ ├─
remember.ts
TypeScript
│ │ └─
status.ts
TypeScript
│ ├─
▾
triggers
│ │ ├─
agent-end.ts
TypeScript
│ │ ├─
before-agent-start.ts
TypeScript
│ │ ├─
index.ts
TypeScript
│ │ └─
pre-compaction.ts
TypeScript
│ ├─
config.ts
TypeScript
│ ├─
debug.ts
TypeScript
│ ├─
index.ts
TypeScript
│ ├─
totalreclaw-skill.ts
TypeScript
│ └─
types.ts
TypeScript
├─
▾
tests
│ ├─
▾
extraction
│ │ └─
host-llm-integration.test.ts
TypeScript
│ ├─
▾
fixtures
│ │ └─
conversations.ts
TypeScript
│ ├─
▾
integration
│ │ ├─
e2e-flow.test.ts
TypeScript
│ │ ├─
hooks-integration.test.ts
TypeScript
│ │ └─
server-integration.test.ts
TypeScript
│ ├─
config.test.ts
TypeScript
│ ├─
extraction.test.ts
TypeScript
│ ├─
integration.test.ts
TypeScript
│ ├─
reranker.test.ts
TypeScript
│ └─
tools.test.ts
TypeScript
├─
CLAWHUB.md
Markdown
├─
jest.config.js
JavaScript
├─
package.json
JSON
├─
README.md
Markdown
├─
skill.json
JSON
├─
SKILL.md
Markdown
└─
tsconfig.json
JSON
Dependencies 6 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
@huggingface/transformers | ^3.8.1 | npm | No | Version range ^3.8.1 not pinned |
@noble/hashes | ^2.0.1 | npm | No | BIP-39 / Argon2id crypto library |
@scure/bip39 | ^2.0.1 | npm | No | BIP-39 wordlist and mnemonic validation |
permissionless | ^0.3.4 | npm | No | ERC-4337 UserOp bundler client |
viem | ^2.46.3 | npm | No | Ethereum library for on-chain interactions |
@totalreclaw/core | ^0.1.0 | npm | No | WASM crypto module (local, no network) |
Security Positives
✓ Client-side AES-256-GCM encryption — server never sees plaintext
✓ BIP-39 mnemonic (recovery phrase) derives all keys locally via WASM
✓ LSH + embedding-based semantic search preserves E2EE
✓ Credentials stored at ~/.totalreclaw/ only — no credential exfiltration
✓ LLM API keys used only for in-process extraction calls, never transmitted externally
✓ No shell execution, no subprocess, no eval in production code
✓ No access to ~/.ssh, ~/.aws, or other sensitive host paths
✓ Subgraph mode uses ERC-4337 Smart Accounts — no private key management needed
✓ All tools (remember, recall, forget, export, import_from, etc.) fully declared in SKILL.md
✓ Import adapters support dry_run=true preview by default