matchclaw-plugin
MatchClaw Matchmaking: let your agent find you your perfect match.
Community code plugin. Review compatibility and verification before install.
matchclaw-plugin · runtime id matchclaw-plugin
Install
openclaw plugins install clawhub:matchclaw-pluginLatest Release
Version 1.0.1
Compatibility
{
"builtWithOpenClawVersion": "1.0",
"pluginApiRange": "1.0.0"
}Capabilities
{
"bundledSkills": [],
"capabilityTags": [
"executes-code",
"kind:lifecycle"
],
"channels": [],
"commandNames": [],
"configSchema": true,
"configUiHints": false,
"executesCode": true,
"hooks": [],
"httpRouteCount": 0,
"materializesDependencies": false,
"pluginKind": "lifecycle",
"providers": [],
"runtimeId": "matchclaw-plugin",
"serviceNames": [],
"setupEntry": false,
"toolNames": []
}Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The name/description (matchmaking) match the code: candidate scoring, observation storage, negotiation/handoff flows, Nostr relay messaging, and local CLI functionality. Generating/storing a local keypair and connecting to relays/registry are coherent requirements for a decentralized matchmaking agent.
Instruction Scope
Runtime instructions and code read/write files under the user's home directory (~/.matchclaw), persist observation/history/identity, and emit/consume protocol messages via Nostr relays. Those actions are within the plugin's domain, but the declared SKILL metadata lists no required env vars while the code reads several optional environment variables (MATCHCLAW_DIR_OVERRIDE, MATCHER_DIR_OVERRIDE, MATCHCLAW_REGISTRY_URL / MATCHER_REGISTRY_URL, MATCHCLAW_CARD_URL, MATCHCLAW_NOSTR_RELAYS, MATCHCLAW_DEBUG, MATCHCLAW_DEV, etc.). This mismatch between declared and actually accessed environment/configuration should be noted.
Install Mechanism
No external download/install spec is present; code and dependencies are bundled in the package. Dependencies are standard npm libraries (@noble/curves and nostr-tools). Nothing in the install spec indicates network-based arbitrary code fetches at install time.
Credentials
Metadata declared no required environment variables or primary credential, yet the code reads several environment variables for configuration and will create and store a sensitive private key (nsec) at ~/.matchclaw/identity.json. Storing a private key locally and signing payloads is necessary for Nostr integration, but users should be aware the plugin manages cryptographic secrets and communicates with external relays/registry endpoints (default registry: https://agent.lamu.life).
Persistence & Privilege
The plugin persists state under ~/.matchclaw (identity.json, registration, preferences, thread history, handoff state, pending_notification.json). It does not set always:true. Persisting a private key and ongoing background polling (bridge/heartbeat/cron implied by scripts/bridge.sh and heartbeat subcommand) is expected for continual matchmaking, but increases the sensitivity of the plugin because it holds signing keys and network connectivity over time.
Assessment
This plugin appears to implement a local Nostr-based matchmaking agent and is internally coherent, but review these points before installing:
- Private key & local storage: the plugin will create ~/.matchclaw and generate/store a private key (nsec) in identity.json (file permissions are set to 0600 in code). Treat that file as highly sensitive — if you don't trust the plugin or its relays, do not allow it to persist keys on your machine.
- Network endpoints: by default it uses a registry at https://agent.lamu.life and connects to Nostr relays (configurable via MATCHCLAW_NOSTR_RELAYS). If you prefer, set MATCHCLAW_DIR_OVERRIDE to relocate data or override MATCHCLAW_REGISTRY_URL / MATCHCLAW_NOSTR_RELAYS to use endpoints you trust.
- Undeclared env vars: the package metadata lists no required env vars, but the code reads multiple optional environment variables for configuration and debug modes. If you rely on policy scanners that check declared requirements, be aware of this mismatch.
- Background behavior: the code includes a heartbeat/bridge script and a relay poller (scripts/bridge.sh and an inbox poller). Expect the plugin to run periodic network activity if you enable or invoke those parts.
- Audit before use: skim scripts/bridge.sh and the omitted files (threads, relay, introduction) to confirm no unexpected external endpoints or data exfiltration beyond the described registry/relays. If you plan to use this, consider running it in an environment where the created ~/.matchclaw directory and its keys are acceptable, or override the data directory to isolate it.
If these behaviors match your expectations for a local matchmaking agent, the plugin is coherent; if you are uncomfortable with persistent keys or default endpoints, do not install or adjust the overrides and configuration before proceeding.dist/index.js:442
Shell command execution detected (child_process).
scripts/bridge.sh:191
Shell command execution detected (child_process).
src/index.ts:598
Shell command execution detected (child_process).
dist/inbox.js:41
Environment variable access combined with network send.
dist/pool.js:8
Environment variable access combined with network send.
src/inbox.ts:54
Environment variable access combined with network send.
src/pool.ts:15
Environment variable access combined with network send.
dist/inbox.js:20
File read combined with network send (possible exfiltration).
dist/pool.js:1
File read combined with network send (possible exfiltration).
src/inbox.ts:21
File read combined with network send (possible exfiltration).
src/pool.ts:1
File read combined with network send (possible exfiltration).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.Verification
{
"hasProvenance": false,
"scanStatus": "clean",
"scope": "artifact-only",
"sourceCommit": "set default cron interval to 15 min; add NIP-17 jitter buffer",
"sourceRepo": "floatedbloom/matchclaw",
"sourceTag": "2754701d20e6434317823643ff6784959dc45eab",
"summary": "Validated package structure and linked the release to source metadata.",
"tier": "source-linked"
}Tags
{
"latest": "1.0.1"
}