OpenClaw Migrator
Analysis
This appears to be a legitimate OpenClaw migration tool, but it restores powerful agent state directly into the home environment and streams extraction before full archive validation, so it deserves careful review before use.
Findings (5)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
splitter.on('tag', (tag) => { ... decipher.setAuthTag(tag); ... }); ... const extractor = tar.x({ cwd: targetDir, ... }); ... input.pipe(splitter).pipe(decipher).pipe(extractor);The decrypted tar stream is extracted directly into the target directory while the GCM authentication tag is only handled at the stream tail. The artifacts do not show staging, cleanup, or path allowlisting before files are written.
"dependencies": { "archiver": "^7.0.0", "tar": "^7.4.3", "fs-extra": "^11.2.0", "commander": "^12.0.0" }The CLI depends on external npm packages with semver ranges. This is normal for a Node tool, but installs may resolve newer package versions.
migrator export --out my-agent.oca --password "secret"
The documented example places the archive password directly on the command line, which can expose it through shell history or local process listings.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
This skill handles sensitive data (`openclaw.json`, `auth.token`).
The skill explicitly handles local OpenClaw credential/config material. This is expected for migration, but it is high-impact data.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
.option('--source <paths...>', 'Source directories', [ path.join(process.env.HOME, '.openclaw'), path.join(process.env.HOME, 'clawd') ]) ... .option('-d, --dest <path>', 'Destination directory (defaults to HOME)', process.env.HOME)The default workflow packages and restores persistent OpenClaw state from the user's home directory, including memory/skills per the skill description, and writes it back to the home environment.
