Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

memory-m3e - Semantic Memory Plugin

v1.0.0

Semantic memory plugin using m3e-large embeddings with SQLite storage, supporting storage, retrieval, and deletion via cosine similarity search in pure JS.

0· 166·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
Name/description match the code's behavior (embedding API + SQLite memory store). However the README/SKILL.md state "纯 JS / 无原生依赖" while package.json and index.ts use better-sqlite3 (a native module that requires compilation). This is an important mismatch for install/runtime expectations. Otherwise the declared functionality (embedding calls, cosine search, SQLite storage) is coherent.
!
Instruction Scope
SKILL.md and README instruct how to configure the plugin and mention autoCapture/autoRecall features, but index.ts does not implement automatic capture/recall behavior. The instructions ask you to place the API key in plugin config (openclaw.json) and restart the gateway — that is expected. No other out-of-scope file reads or unexpected external endpoints are referenced, though the plugin will send all texts to the configured embedding baseUrl.
!
Install Mechanism
There is no explicit install spec (instruction-only), but package.json lists better-sqlite3 which is a native dependency requiring build tools and platform-specific binaries. The SKILL.md claim of "no native deps" contradicts this. Lack of an install script means manual npm install may be required and could fail or compile native code unexpectedly.
Credentials
The plugin requests no environment variables, instead expecting an embedding.apiKey and baseUrl in plugin config. That is proportionate to its purpose. Be aware that the embedding API key will be stored in the OpenClaw plugin config (openclaw.json) and used as a Bearer token to whichever baseUrl you configure — ensure the endpoint is trusted. Memory DB is written under the user's home by default (~/.openclaw/data/memory-m3e.db).
Persistence & Privilege
always is false and the plugin registers its own tools only. It creates a local SQLite DB and starts a periodic index logger (setInterval). It does not modify other plugins or request elevated system privileges.
What to consider before installing
This skill appears to implement a memory store using an external embedding service and a local SQLite DB, but there are a few red flags to consider before installing: - Mismatch: README/SKILL.md claim "no native deps" but package.json/index.ts use better-sqlite3 (a native module). Expect native compilation or platform-specific binaries when running npm install — ensure build tools are available or avoid if you cannot build native modules. - Missing implementation: Documentation mentions autoCapture/autoRecall, but the code does not implement automatic capture of conversations. Treat those documented features as not present. - Secrets handling: The embedding API key is placed in plugin config (openclaw.json). That file will contain your API key in plaintext unless your environment secures it; point baseUrl only to a trusted embedding provider and rotate keys if needed. - Data location: Memories are stored locally at ~/.openclaw/data/memory-m3e.db by default and not encrypted. Sensitive information saved via memory_store will be persisted in that DB. - Network risk: All text passed to memory_store/memory_recall/memory_forget is sent to the configured embedding baseUrl. Verify the service is trusted and uses HTTPS (default example uses http). Recommended actions: - Ask the publisher for an upstream/homepage or source repository to validate releases and see build instructions. - If you want no native deps, request a truly pure-JS implementation or a different storage backend. Otherwise prepare to allow native builds. - Review and, if necessary, sandbox the plugin (test in isolated environment) before using with sensitive data. - Confirm where you will store the API key and consider whether storing it in openclaw.json meets your security requirements.

Like a lobster shell, security has layers — review code before you run it.

embeddingvk9710s2c39376whvxfw1cggfp18338s3latestvk9710s2c39376whvxfw1cggfp18338s3m3evk9710s2c39376whvxfw1cggfp18338s3memoryvk9710s2c39376whvxfw1cggfp18338s3semantic-searchvk9710s2c39376whvxfw1cggfp18338s3sqlitevk9710s2c39376whvxfw1cggfp18338s3

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Comments