SkillHub

rescueclaw

v0.2.1

提供自动检查点创建与回滚功能,可在配置变更或更新等风险操作失败时安全恢复。

Sourced from ClawHub, Authored by harman314

Installation

Please help me install the skill `rescueclaw` from SkillHub official store. npx skills add harman314/rescueclaw

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

clearCheckpoint()

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

Returns: Promise

getStatus()

Gets RescueClaw daemon status by invoking the CLI.

Returns: Promise 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
  }
}