Back to plugin
Pluginv2.1.1
ClawScan security
Gralkor Memory (OpenClaw) · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
BenignApr 26, 2026, 10:22 AM
- Verdict
- benign
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- The plugin's code, instructions, and requirements align with a memory plugin that spawns a bundled Python memory server and forwards conversation data to it — nothing in the package appears to be doing unrelated or covert work, but it depends on a bundled server in a separate package and requires LLM API keys so you should review that server before enabling.
- Guidance
- What to consider before installing: - This plugin spawns a Python memory server (bundled in @susu-eng/gralkor-ts) that will receive conversation content and your workspace memory files. That server will in turn call external LLM/embedding providers using API keys you provide. Review the gralkor-ts adapter and the Gralkor Python server source (linked from SKILL.md) before enabling. - The plugin requires a writable dataDir where it creates a venv and FalkorDB; choose a dedicated directory with appropriate permissions and backups. - Provide LLM/embedding API keys with least privilege (use a dedicated key/account for this service if possible), and be aware that conversation content and indexed files may be sent to those provider endpoints. - The README asks you to install with --dangerously-force-unsafe-install because the install-time scanner flags the bundled server. That flag bypasses install-time protections; only use it after you have inspected the server source and are comfortable with running it. - If you cannot audit the gralkor-ts and Gralkor server code, consider running this plugin in an isolated environment (container or VM) or using an alternative memory provider you trust. I have medium confidence in this assessment because the plugin's own code is consistent with its description, but important runtime behavior (the Python server) resides in a separate bundled dependency that you should review before enabling.
- Findings
[pre-scan-injection-none] expected: The static pre-scan reported no injection signals. The package contains many dist/*.js files and hooks that call a bundled Python server via a dependency; absence of regex findings is not proof of safety and the SKILL.md explicitly warns the install-time scanner flags the bundled server as critical.
Review Dimensions
- Purpose & Capability
- okThe package implements an OpenClaw memory plugin: it registers hooks and tools, scans workspace memory files, captures turns and forwards them to a Gralkor HTTP server, and requires a persistent dataDir and LLM API keys for the server. Those requirements are coherent with the stated purpose.
- Instruction Scope
- noteRuntime instructions and code register before_prompt_build, agent_end, and session_end hooks and two tools (memory_search, memory_add). The plugin scans workspace files (MEMORY.md, memory/*.md) and sends captured conversation content to the Gralkor HTTP server. This is expected for a memory plugin, but it does mean user messages and local workspace content are forwarded into the server (and then to external LLM providers depending on config).
- Install Mechanism
- noteThere is no special install spec in the registry, but the SKILL.md requires installing via openclaw plugins install with --dangerously-force-unsafe-install because the plugin spawns a Python server contained in the @susu-eng/gralkor-ts dependency. The package includes compiled JS and wiring code; the high-risk piece is the bundled Python server in the dependency — the README explicitly warns the install-time scanner flags it. This is explainable (bundled server needed) but raises audit importance.
- Credentials
- noteThe registry metadata lists no required env vars, but the plugin expects LLM/embedding keys (googleApiKey/openaiApiKey/anthropicApiKey/groqApiKey) via plugin config or host gateway env. Those keys are necessary for the server's LLM/embedding calls and are proportionate to a memory plugin, but the absence of declared required credentials in registry metadata is a mild inconsistency to be aware of.
- Persistence & Privilege
- okThe skill does not request always:true and does not modify other skills. It will create a venv and database under the configured dataDir (expected for a local server). It registers a server service so the Python server is supervised by OpenClaw; this is normal for this type of plugin.
