quick-backup-restore@3.2.3
CAUTION· install onlyPublisher claims: "Restic-powered encrypted time machine for OpenClaw: hourly incremental snapshots, fast restore by time/snapshot/file, local-only privacy defaults, integrity..." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Nothing executable in the bundle ran; the trace covers the install step only.- Tested
- every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-14 and scored it 69/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Privileged sudo command; Privileged sudo command; Privileged sudo command. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
# Usage: sudo bin/prune.sh [options]Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.sudo bash {baseDir}/bin/setup.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " sudo bin/prune.sh --keep-last 24 # keep only last 24 snapshots"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " To view the password later: sudo cat $PASS_FILE"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo "Usage: sudo bin/restore.sh [snapshot_id] [--file path] [--target dir]"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo "Usage: sudo bin/status.sh"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.…id": "setup", "kind": "shell", "label": "Run Time Clawshine setup", "command": "sudo bash {baseDir}/bin/setup.sh" }], "homepage": "https://github.com/marzliak/quick-…Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.# Run once as root: sudo bin/setup.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.[[ $EUID -eq 0 ]] || { echo "ERROR: Run as root (sudo bin/setup.sh)"; exit 1; }Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo "║ Run 'sudo bin/backup.sh' to test the new config ║"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " sudo bin/restore.sh latest # restore latest to /"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " - Credential stores like ~/.ssh and ~/.gnupg are not auto-suggested"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Usage: sudo bin/uninstall.sh [options]Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo "Usage: sudo bin/prune.sh [options]"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo "Usage: sudo bin/setup.sh [options]"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.# Usage: sudo bin/restore.sh [snapshot_id] [--file path] [--target dir]Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.sudo bash {baseDir}/bin/status.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.rm -f /etc/systemd/system/time-clawshine.service /etc/systemd/system/time-clawshine.timerFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.Credential stores such as `~/.ssh` and `~/.gnupg` are not auto-suggested. Add them only after explicit user approval and only when repository access and password-file backup are strongly controlled.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# Run: sudo bin/status.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.sudo bash {baseDir}/bin/setup.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " sudo bin/prune.sh --older-than 7d # remove snapshots older than 7 days"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " Retry now : sudo /usr/local/bin/time-clawshine"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.[[ $EUID -eq 0 ]] || { echo "ERROR: Run as root (sudo bin/customize.sh)"; exit 1; }Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.# Usage: sudo bin/customize.shFix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " sudo bin/restore.sh # interactive"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " sudo bin/restore.sh '2h ago' # restore closest to 2 hours ago"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo "│ Credential stores like ~/.ssh and ~/.gnupg are not │"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.echo "Usage: sudo bin/customize.sh"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo " sudo bin/prune.sh # use config retention"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.chmod 755 /usr/local/bin/time-clawshineFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.echo "Run: sudo bin/setup.sh"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.[[ $EUID -eq 0 ]] || { echo "ERROR: Run as root (sudo bin/uninstall.sh)"; exit 1; }Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell."command": "sudo bash {baseDir}/bin/setup.sh"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.echo "Usage: sudo bin/uninstall.sh [options]"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.System:Fix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.echo " Source files in $TC_ROOT are untouched — you can re-install with: sudo bin/setup.sh"Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.chmod +x "$TC_ROOT/bin/"*.sh "$TC_ROOT/lib.sh" 2>/dev/null || trueFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.- **Password:** The restic repository is AES-256 encrypted. The password file location is configured in `config.yaml` (chmod 600). Losing it means losing access to all snapshots.Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts."credential stores such as ~/.ssh and ~/.gnupg are not auto-suggested and require manual opt-in"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.chmod 600 "$PASS_FILE"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.**Password file:** configured in `config.yaml` under `repository.password_file` (chmod 600 — **back this up separately**)Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.chmod 700 "$REPO"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.chmod 600 /var/lock/time-clawshine.lock 2>/dev/null || trueFix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts."https://api.telegram.org/bot${TG_TOKEN}/sendMessage" \Fix: Replace encoded or assembled strings with plain literals and remove undeclared network calls.chmod +x "$YQ_BIN"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.chmod 600 "$TEST_PASS"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.
What would make this Verified
11 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Unclaimed publisher≈ +8 on the totalClaim marzliak: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
- Privileged sudo command≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Destructive file system command detected≈ +4 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
- Telegram Bot API URL≈ +4 on the totalReplace encoded or assembled strings with plain literals and remove undeclared network calls.
- File permission modification command≈ +2 on the totalRequest the narrowest permission that works; replace wildcards with the exact paths or hosts.