FD everclaw
AI inference you own, forever powering your OpenClaw agents via the Morpheus decentralized network. Stake MOR tokens, access Kimi K2.5 and 30+ models, and maintain persistent inference by recycling staked MOR. Includes Morpheus API Gateway bootstrap for zero-config startup, OpenAI-compatible proxy with auto-session management, automatic retry with fresh sessions, OpenAI-compatible error classification to prevent cooldown cascades, multi-key auth profile rotation for Venice API keys, Gateway Guardian v4 with billing-aware escalation, through-OpenClaw inference probes, proactive Venice DIEM credit monitoring, circuit breaker for stuck sub-agents, and nuclear self-healing restart, always-on proxy-router with launchd auto-restart, smart session archiver to prevent dashboard overload, bundled security skills, zero-dependency wallet management via macOS Keychain, x402 payment client for agent-to-agent USDC payments, and ERC-8004 agent registry reader for discovering trustless agents on Base.
AI inference you own, forever powering your OpenClaw agents via the Morpheus decentralized network.
As a process D 45/100 · Unfinished process — weak spots: when it triggers, inputs and preconditions, consistency
What is at stake
The skill contains fragments that, in the wrong hands, cost money or data. Below: what the installer risks and what the author should do.
The skill contains commands that delete files, rewrite disks or execute code fetched from the network. The agent may run them without asking if it believes the instructions require it.
Replace destructive commands with safe equivalents that ask for confirmation, scope them to one folder, and stop piping curl into a shell: pin a version and a checksum.
Below is the worst case for this category. The finding here is medium: the guard saw a sign, not a proof.
The instructions or scripts send data out: environment variables, keys, file contents, chat history. You may never notice, because the agent performs the upload as "part of the task".
If the upload is not needed for the task, remove it: catalogs flag such skills and delist them. If it is needed, name the destination explicitly, say what leaves the machine, and give the user a switch.
Below is the worst case for this category. The finding here is medium: the guard saw a sign, not a proof.
The purpose itself is risky: wallets, browser password stores, offensive security. Even an honest implementation gives the agent access to things that cost money.
Explain in the description why the access is needed and how it is limited; add tests that show refusals on dangerous requests.
How to improve
- Address the high-severity findings: each costs 18 safety points. If one is a false positive, add the rule id to guard.allow in spec.yaml.
- Say in the description WHEN to use the skill ("use when…", example requests): that is the agent's main cue.
- The SKILL.md body is over 5,000 tokens: move reference detail into references/ and load it when needed.
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 87
-
high Dangerous commands
cmd-persistencescripts/install-proxy.sh:83Persistence mechanism (cron / launchd / scheduled task / autorun registry)launchctl load "$LAUNCH_AGENTS/com.morpheus.router.plist" 2>/dev/null
-
high Dangerous commands
cmd-persistencescripts/install-proxy.sh:85Persistence mechanism (cron / launchd / scheduled task / autorun registry)launchctl load "$LAUNCH_AGENTS/com.morpheus.proxy.plist" 2>/dev/null
-
high Dangerous commands
cmd-persistencescripts/install-proxy.sh:86Persistence mechanism (cron / launchd / scheduled task / autorun registry)launchctl load "$LAUNCH_AGENTS/ai.openclaw.guardian.plist" 2>/dev/null
Medium and low: 84
-
medium Exfiltration
net-credential-usescripts/balance.sh:23Credential used in a network call (verify the destination is the intended service)BALANCE=$(curl -s -u "admin:$COOKIE_PASS" "${API_BASE}/blockchain/balance" 2>/dev/null || echo "{}") -
medium Exfiltration
net-credential-usescripts/balance.sh:47Credential used in a network call (verify the destination is the intended service)ALLOWANCE=$(curl -s -u "admin:$COOKIE_PASS" "${API_BASE}/blockchain/allowance?spender=0x6a…30a" 2>/dev/null || echo "{}") -
medium Exfiltration
net-credential-usescripts/balance.sh:60Credential used in a network call (verify the destination is the intended service)SESSIONS=$(curl -s -u "admin:$COOKIE_PASS" "${API_BASE}/blockchain/sessions" 2>/dev/null || echo "[]") -
medium Exfiltration
net-credential-usescripts/chat.sh:64Credential used in a network call (verify the destination is the intended service)SESSIONS_RESPONSE=$(curl -s -u "admin:$COOKIE_PASS" "${API_BASE}/blockchain/sessions" 2>/dev/null || echo "[]") -
medium Exfiltration
net-credential-usescripts/chat.sh:85Credential used in a network call (verify the destination is the intended service)curl -s -u "admin:$COOKIE_PASS" "${API_BASE}/v1/chat/completions" \ -
medium Exfiltration
net-credential-usescripts/chat.sh:95Credential used in a network call (verify the destination is the intended service)RESPONSE=$(curl -s -u "admin:$COOKIE_PASS" "${API_BASE}/v1/chat/completions" \ -
medium Exfiltration
net-credential-usescripts/diagnose.sh:273Credential used in a network call (verify the destination is the intended service)router_health=$(curl -s --max-time 5 -u "admin:$cookie_pass" http://loca…082/healthcheck 2>/dev/null || echo "")
-
medium Dangerous commands
cmd-persistencescripts/diagnose.sh:288Persistence mechanism (cron / launchd / scheduled task / autorun registry) (string literal in code, not executed)fix "Start it: launchctl load ~/Library/LaunchAgents/com.morpheus.router.plist"
code literal -
medium Dangerous commands
cmd-persistencescripts/diagnose.sh:304Persistence mechanism (cron / launchd / scheduled task / autorun registry) (string literal in code, not executed)fix "Start it: launchctl load ~/Library/LaunchAgents/com.morpheus.proxy.plist"
code literal -
medium Exfiltration
net-credential-usescripts/diagnose.sh:369Credential used in a network call (verify the destination is the intended service)balance_json=$(curl -s --max-time 5 -u "admin:$cookie_pass" http://loca…082/blockchain/balance 2>/dev/null || echo "")
-
medium Dangerous commands
cmd-persistencescripts/diagnose.sh:477Persistence mechanism (cron / launchd / scheduled task / autorun registry) (string literal in code, not executed)local plist="$HOME/Library/LaunchAgents/${svc}.plist"code literal -
medium Dangerous commands
cmd-persistencescripts/diagnose.sh:480Persistence mechanism (cron / launchd / scheduled task / autorun registry) (string literal in code, not executed)fix "Load: launchctl load $plist"
code literal -
medium Dangerous commands
cmd-pipe-to-shellscripts/gateway-guardian.sh:266Downloads and executes remote code from an unrecognised host (pipe to shell) (documentation of a security skill)curl -fsSL "$INSTALL_URL" | bash >> "$LOG_FILE" 2>&1 || nuclear_rc=$?
security skill -
medium Risky intent
intent-wallet-secretsscripts/mor-launch-headless.sh:4Handles crypto-wallet secrets (seed / mnemonic / private key) — a classic stealer target# Retrieves wallet private key from 1Password at runtime via macOS Keychain.
-
medium Exfiltration
net-credential-usescripts/session.sh:75Credential used in a network call (verify the destination is the intended service)RESPONSE=$(curl -s -u "admin:$COOKIE_PASS" -X POST \
-
medium Exfiltration
net-credential-usescripts/session.sh:100Credential used in a network call (verify the destination is the intended service)RESPONSE=$(curl -s -u "admin:$COOKIE_PASS" -X POST \
-
medium Exfiltration
net-credential-usescripts/session.sh:115Credential used in a network call (verify the destination is the intended service)RESPONSE=$(curl -s -u "admin:$COOKIE_PASS" "${API_BASE}/blockchain/sessions") -
medium Risky intent
intent-wallet-secretsscripts/start.sh:50Handles crypto-wallet secrets (seed / mnemonic / private key) — a classic stealer target# Retrieve wallet private key
-
medium Exfiltration
net-credential-usescripts/start.sh:108Credential used in a network call (verify the destination is the intended service)HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" -u "admin:$COOKIE_PASS" "http://loca…082/healthcheck" 2>/dev/null || echo "000") -
medium Dangerous commands
cmd-pipe-to-shellscripts/swap.sh:10Downloads and executes remote code from an unrecognised host (pipe to shell) (code comment)# Requires: Foundry (cast) installed. Install: curl -L https://foundry.paradigm.xyz | bash && foundryup
comment -
medium Dangerous commands
cmd-pipe-to-shellscripts/swap.sh:92Downloads and executes remote code from an unrecognised host (pipe to shell) (string literal in code, not executed)echo " curl -L https://foundry.paradigm.xyz | bash"
code literal -
medium Risky intent
intent-wallet-secretsSKILL.md:256Handles crypto-wallet secrets (seed / mnemonic / private key) — a classic stealer targetThe proxy-router needs your wallet private key. **Never store it on disk.** Inject it at runtime from 1Password:
-
low Dangerous commands
cmd-pipe-to-shell-known-hostdocs/index.html:399Pipe-to-shell installer from a well-known host (still executes remote code) (detector / deny-list definition)<p style="font-size: 13px; color: var(--text-muted); margin-top: 8px;">Or: <code style="font-size: 12px;">curl -fsSL https://raw.githubusercontent.com/profbernardoj/everclaw/main/scripts/install-everc
detector -
low Dangerous commands
cmd-pipe-to-shell-known-hostdocs/index.html:488Pipe-to-shell installer from a well-known host (still executes remote code) (detector / deny-list definition)<p style="font-size: 13px; color: var(--text-muted); margin-top: 8px;">Or: <code style="font-size: 12px;">curl -fsSL https://raw.githubusercontent.com/profbernardoj/everclaw/main/scripts/install-everc
detector -
low Dangerous commands
cmd-pipe-to-shell-known-hostREADME.md:20Pipe-to-shell installer from a well-known host (still executes remote code) (documentation of a security skill)curl -fsSL https://raw.githubusercontent.com/profbernardoj/everclaw/main/scripts/install-everclaw.sh | bash
security skill -
low Dangerous commands
cmd-pipe-to-shell-known-hostREADME.md:211Pipe-to-shell installer from a well-known host (still executes remote code) (documentation table row; documentation of a security skill)| Install (script) | `curl -fsSL https://raw.githubusercontent.com/profbernardoj/everclaw/main/scripts/install-everclaw.sh \| bash` |
tablesecurity skill -
low Secrets in code
secret-high-entropy-tokenreferences/acquiring-mor.md:96High-entropy token-like string (may be an id, hash or a credential) (documentation table row)| MOR | `0x74…8e3` | 18 |
table -
low Secrets in code
secret-high-entropy-tokenreferences/acquiring-mor.md:98High-entropy token-like string (may be an id, hash or a credential) (documentation table row)| USDC | `0x83…913` | 6 |
table -
low Secrets in code
secret-high-entropy-tokenreferences/acquiring-mor.md:99High-entropy token-like string (may be an id, hash or a credential) (documentation table row)| USDT | `0xfd…bb2` | 6 |
table -
low Exfiltration
net-credential-usereferences/api.md:19Credential used in a network call (verify the destination is the intended service) (documentation of a security skill)curl -s -u "admin:$COOKIE_PASS" http://loca…082/...
security skill -
low Exfiltration
net-credential-usereferences/api.md:33Credential used in a network call (verify the destination is the intended service) (documentation of a security skill)curl -s -u "admin:$COOKIE_PASS" http://loca…082/healthcheck
security skill -
low Exfiltration
net-credential-usereferences/api.md:47Credential used in a network call (verify the destination is the intended service) (documentation of a security skill)curl -s -u "admin:$COOKIE_PASS" http://loca…082/blockchain/balance | jq .
security skill -
low Exfiltration
net-credential-usereferences/api.md:69Credential used in a network call (verify the destination is the intended service) (documentation of a security skill)curl -s -u "admin:$COOKIE_PASS" -X POST \
security skill -
low Exfiltration
net-credential-usereferences/api.md:94Credential used in a network call (verify the destination is the intended service) (documentation of a security skill)curl -s -u "admin:$COOKIE_PASS" \
security skill -
low Secrets in code
secret-high-entropy-tokenreferences/api.md:305High-entropy token-like string (may be an id, hash or a credential) (documentation table row)| Diamond | `0x6a…30a` | Base (8453) |
table -
low Secrets in code
secret-high-entropy-tokenreferences/api.md:306High-entropy token-like string (may be an id, hash or a credential) (documentation table row)| MOR Token | `0x74…8e3` | Base (8453) |
table -
low Secrets in code
secret-high-entropy-tokenreferences/economics.md:78High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)- MOR token contract: `0x74…8e3` (Base)
quoted -
low Exfiltration
net-credential-usereferences/troubleshooting.md:15Credential used in a network call (verify the destination is the intended service) (documentation of a security skill)curl -s -u "admin:$COOKIE_PASS" "http://loca…082/v1/chat/completions" \
security skill -
low Secrets in code
secret-high-entropy-tokenscripts/agent-registry.mjs:30High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)const IDENTITY_REGISTRY = "0x80…432";
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/agent-registry.mjs:31High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)const REPUTATION_REGISTRY = "0x80…b63";
quoted -
low Obfuscation
obf-base64-blobscripts/bootstrap-gateway.mjs:35Long base64-looking blob (detector / deny-list definition)const COMM…B64 = 'c2st…ZDA=';
detector -
low Secrets in code
secret-high-entropy-tokenscripts/everclaw-wallet.mjs:30High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)const MOR_TOKEN = "0x74…8e3";
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/everclaw-wallet.mjs:31High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)const USDC_TOKEN = "0x83…913";
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/everclaw-wallet.mjs:33High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)const DIAMOND_CONTRACT = "0x6a…30a";
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/everclaw-wallet.mjs:34High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)const UNISWAP_ROUTER = "0x26…481"; // Swap…r02 on Base
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/everclaw-wallet.mjs:35High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)const UNISWAP_QUOTER = "0x3d…76a"; // QuoterV2 on Base
quoted -
low Dangerous commands
cmd-persistencescripts/gateway-guardian.sh:17Persistence mechanism (cron / launchd / scheduled task / autorun registry) (code comment; documentation of a security skill)# Install: launchd plist at ~/Library/LaunchAgents/ai.openclaw.guardian.plist
commentsecurity skill -
low Dangerous commands
cmd-pipe-to-shellscripts/gateway-guardian.sh:264Downloads and executes remote code from an unrecognised host (pipe to shell) (string literal in code, not executed; documentation of a security skill)log "Executing: curl -fsSL $INSTALL_URL | bash"
code literalsecurity skill -
low Dangerous commands
cmd-pipe-to-shell-known-hostscripts/install-everclaw.sh:11Pipe-to-shell installer from a well-known host (still executes remote code) (code comment)# curl -fsSL https://raw.githubusercontent.com/profbernardoj/everclaw/main/scripts/install-everclaw.sh | bash
comment -
low Risky intent
intent-wallet-secretsscripts/install.sh:174Handles crypto-wallet secrets (seed / mnemonic / private key) — a classic stealer target (quoted — discussed, not commanded)echo " - Set up 1Password with your wallet private key"
quoted -
low Exfiltration
read-dotenvscripts/mor-launch-headless.sh:14Reads a .env file (code comment)# Source .env for ETH_NODE_ADDRESS and other config
comment -
low Exfiltration
read-dotenvscripts/mor-launch-headless.sh:17Reads a .env filesource .env
-
low Exfiltration
read-dotenvscripts/start.sh:33Reads a .env file (code comment)# Source .env
comment -
low Risky intent
intent-wallet-secretsscripts/start.sh:52Handles crypto-wallet secrets (seed / mnemonic / private key) — a classic stealer target (quoted — discussed, not commanded)echo "🔐 Retrieving wallet private key..."
quoted -
low Risky intent
intent-wallet-secretsscripts/start.sh:73Handles crypto-wallet secrets (seed / mnemonic / private key) — a classic stealer target (quoted — discussed, not commanded)echo "❌ Could not retrieve wallet private key."
quoted -
low Dangerous commands
cmd-background-processscripts/start.sh:89Starts a background / autostarted processnohup ./proxy-router > "$LOG_FILE" 2>&1 &
-
low Secrets in code
secret-high-entropy-tokenscripts/swap.sh:17High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)MOR="0x74…8e3"
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/swap.sh:19High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)USDC="0x83…913"
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/swap.sh:20High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)USDT="0xfd…bb2"
quoted -
low Secrets in code
secret-high-entropy-tokenscripts/swap.sh:23High-entropy token-like string (may be an id, hash or a credential) (quoted — discussed, not commanded)SWAP_ROUTER="0x26…481"
quoted
…and 19 more
A further 5 matches are quotations in this security skill's documentation and are not counted as findings.
Files scanned: 29. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- warning
description-no-whendescription does not say WHEN to use the skill (no "use when") - warning
body-longSKILL.md body ≈ 16266 tokens (recommended < 5000); move details to references/ - note
frontmatter-keyunknown frontmatter key "homepage"
Process rating: all ten parameters 45/100
- 0Inputs and preconditions. Does not say what the process needs to start
- 10Execution cost. Instruction body is 16266 tokens: crowds the task out of the window
- 20When it triggers. No condition that starts the skill
- 40Consistency. Frontmatter name (everclaw) differs from the folder (everclaw-inference)
- 50Failures and branches. 0 branches, has a failure section
- 60Tools and files. Uses tools (bash, web, git, python, node) that frontmatter does not declare
- 60Steps. 146 steps, 6 vague phrases
- 60Result and completion. Output format stated, no completion criterion
- 100Running it twice. Mutating operations check current state
- 100Progress reporting. Reports progress
- medium Safety rules and hard prohibitions inside a skill: they belong in the system prompt, here they protect nothing
- low 27 top-level sections: this looks like several domains in one skill
- low The response is described with custom markup (10 tags): a typed call is more reliable
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +5Description has no quoted example phrases that should trigger the skill
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 1000: 120–800 characters recommended
- -2localhost URLs: will not work for another user
- -230 emoji in the instructions: noise for the model
- -31 of 19 scripts are never mentioned in SKILL.md
- +1No license
- +2Single-language instructions
- +4Structure: 127 headings
- +3Step-by-step instructions: 146 items
- +3Output format is stated explicitly
- +4Has examples (66 code blocks)
- +4Reference files are cited in the instructions (5 of 5)
Quality base 70; lint remarks subtract, signals add up to 100. Result: 58.