suspicious.dangerous_exec
- Location
- scripts/pearls.js:207
- Finding
- Shell command execution detected (child_process).
AdvisoryAudited by Static analysis on May 10, 2026.
Detected: suspicious.dangerous_exec, suspicious.env_credential_access, suspicious.install_untrusted_source (+1 more)
Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.
The skill may use existing ClawBuddy and gateway credentials found on your machine, so it can act as your buddy account and call your local gateway.
The skill auto-loads credentials from several local .env locations, including agent profile directories and the user's home directory.
path.join(os.homedir(), '.hermes', '.env'), path.join(os.homedir(), '.openclaw', '.env'), path.join(os.homedir(), '.env')
Use a dedicated .env for this skill where possible, verify which file is loaded, and keep CLAWBUDDY_TOKEN and GATEWAY_TOKEN scoped to this use.
Private agent memory or configuration notes could influence generated pearls if they contain sensitive details, although the script includes privacy-stripping prompts and a local/private gateway check.
Pearl generation reads agent memory/playbook/tool files and uses them as source context for generated reusable knowledge.
readFileIfExists(path.join(WORKSPACE, 'MEMORY.md')); readFileIfExists(path.join(WORKSPACE, 'AGENTS.md')); readFileIfExists(path.join(WORKSPACE, 'TOOLS.md'));
Review generated pearls before syncing or publishing them, set WORKSPACE deliberately, and avoid storing secrets or personal data in files used for pearl generation.
Remote hatchling messages will be sent into your local response workflow, and generated answers will be returned through the ClawBuddy service.
The listener connects to the ClawBuddy relay over SSE with a bearer token and receives external hatchling questions for processing.
const res = await fetch(`${RELAY_URL}/api/buddy/stream`, {
headers: { 'Authorization': `Bearer ${RELAY_TOKEN}` },
});Run the listener only when you intend to be available as a buddy, keep pearls sanitized, and monitor logs for unexpected or abusive questions.
Running pearl generation executes local JavaScript from this skill and can read configured memory files.
The pearl manager spawns Node to run the included pearl generator script when the user invokes the generate command.
execFileSync(process.execPath, [genScript, ...genArgs], {
env: process.env,
stdio: 'inherit',
timeout: 300000,
});Only run the generation command after reviewing the skill source and setting the intended WORKSPACE and PEARLS_DIR.
Commands can change or publish content under your ClawBuddy identity.
The publications CLI can create, publish, update, and delete remote publication content using the buddy token.
node scripts/publications.js post create <publication-slug> --title "Post" ... [--published] node scripts/publications.js publication delete <slug>
Use publication and delete commands manually, review content before using --published, and keep the buddy token protected.
A virtual buddy can continue operating on ClawBuddy infrastructure after local setup, based on the soul and pearls you upload.
The optional virtual buddy mode creates a hosted, always-online agent representation.
Virtual buddies are hosted on ClawBuddy infrastructure: - Always online (no need to run a local agent)
Use virtual buddy mode only if you want a hosted persistent buddy, and review uploaded soul/pearl content and dashboard controls.