Skill flagged — suspicious patterns detected

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

RescueClaw

v0.2.1

Provides automatic checkpoint creation and rollback to safely recover from failures during risky operations like config changes or updates.

0· 541·2 current·2 all-time
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
The skill's name/description (checkpoint + rollback for risky operations) matches the provided code and runtime instructions: rescueclaw-checkpoint.js creates/clears a checkpoint file and queries a user-local daemon; install.js installs a user-local daemon binary. No unrelated credentials, services, or capabilities are requested.
Instruction Scope
SKILL.md and the API expose exactly the checkpoint operations. However, example usage includes privileged operations (e.g., restarting a system service via systemctl) and uses a literal '~' in fs.writeFileSync (Node.js does not expand ~ automatically), which is a bug/ambiguous guidance. The docs instruct agents to call the daemon CLI (rescueclaw status) and to write checkpoint files under ~/.openclaw/rescueclaw — both are within the skill's stated scope, but the example's systemctl usage requires elevated privileges and is not something the skill can safely perform on behalf of a user without explicit consent.
Install Mechanism
Installation downloads a tar.gz from a GitHub Releases URL (well-known host) and extracts it into ~/.local/bin; this is a common pattern. Concerns: the installer doesn't verify checksums or signatures, extracts archives directly (tar extraction can be abused if upstream is compromised), and uses curl/tar via execSync (the script itself invokes shell commands). The install targets user-local paths (no sudo required), which limits system-wide impact.
Credentials
The skill requests no environment variables, no credentials, and stores data under the user's home directory (~/.openclaw/rescueclaw). The code does call external binary 'rescueclaw' when present, which matches the skill's role. There are no extraneous secrets or unrelated env access.
Persistence & Privilege
The skill does create persistent artifacts: it installs a daemon binary to ~/.local/bin/rescueclaw and stores checkpoint data under ~/.openclaw/rescueclaw/. always is false (not force-included). The agent is allowed to invoke the skill autonomously by default (normal for skills); this combined with a long-lived daemon means the binary could be executed by the agent later — review the binary from upstream before trusting it.
Assessment
This skill appears to do what it claims (create/clear checkpoint files and invoke a user-local daemon), but before installing: 1) Review the upstream GitHub repository and the exact release asset (verify that the release author is trusted). 2) Prefer installs with checksums/signatures — the installer does not verify them. 3) Inspect the downloaded binary (or run it in an isolated environment) before trusting it, since the installer extracts a tarball from Releases. 4) Note that example code uses systemctl (requires privileges) and uses '~' in paths (Node won't expand it automatically) — fix these when you adapt the examples. 5) Ensure ~/.local/bin is in your PATH and that you are comfortable with a user-local daemon being available for the agent to call. If you need higher assurance, request a signed release or build the daemon from source yourself.

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

latestvk975jqw0834g85wgyebdfjmzyd81sz5g
541downloads
0stars
3versions
Updated 1h ago
v0.2.1
MIT-0

RescueClaw Skill

Provides checkpoint/rollback safety net for risky operations.

Before Risky Operations

Before modifying config, installing skills, or updating the gateway, create a checkpoint:

const rescueclaw = require('./rescueclaw-checkpoint');
await rescueclaw.createCheckpoint('About to apply config changes');

RescueClaw will take an immediate backup. If the agent goes unresponsive within the rollback window, it auto-restores.

After Successful Operations

Clear the checkpoint:

const rescueclaw = require('./rescueclaw-checkpoint');
await rescueclaw.clearCheckpoint();

Commands

The agent can also invoke RescueClaw CLI directly:

  • rescueclaw backup — manual snapshot
  • rescueclaw status — check health
  • rescueclaw list — list backups

Installation

The daemon binary is bundled for supported platforms (linux/arm64). On install, it copies to ~/.local/bin/rescueclaw. For other platforms, download from GitHub Releases.

Data is stored in ~/.openclaw/rescueclaw/ (user-local, no sudo required).

API Reference

createCheckpoint(reason, rollbackWindowSec = 300)

Creates a checkpoint file that RescueClaw monitors. If the agent becomes unresponsive within the rollback window, RescueClaw will immediately restore from the checkpoint backup.

Parameters:

  • reason (string): Description of what operation is about to be performed
  • rollbackWindowSec (number, optional): How many seconds to monitor for issues (default: 300)

Returns: Promise<void>

clearCheckpoint()

Removes the checkpoint file, signaling that the risky operation completed successfully.

Returns: Promise<void>

getStatus()

Gets RescueClaw daemon status by invoking the CLI.

Returns: Promise<object> with health status details

Example: Safe Config Update

const fs = require('fs');
const rescueclaw = require('./rescueclaw-checkpoint');

async function updateConfig(newConfig) {
  // Create safety checkpoint
  await rescueclaw.createCheckpoint('Updating OpenClaw config', 180);
  
  try {
    // Perform the risky operation
    fs.writeFileSync('~/.openclaw/openclaw.json', JSON.stringify(newConfig));
    
    // Restart gateway
    await exec('systemctl restart openclaw-gateway');
    
    // If we get here, it worked!
    await rescueclaw.clearCheckpoint();
    console.log('✅ Config updated successfully');
  } catch (err) {
    console.error('❌ Config update failed:', err);
    // Don't clear checkpoint - let RescueClaw auto-restore
  }
}

Comments

Loading comments...