OpenClaw Migrator

ReviewAudited by ClawScan on May 10, 2026.

Overview

The migrator’s purpose is coherent, but its restore path can write archive contents directly into the user’s home/agent state without clear containment or pre-verified extraction.

Use this only with archives you created yourself and keep both the archive and password private. Before importing, back up your existing ~/.openclaw and workspace, and be aware that restore may overwrite persistent agent configuration, memory, skills, and tokens.

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.

What this means

A crafted or untrusted archive could write unexpected files under the restore destination, which defaults to a broad user-controlled location in the import command.

Why it was flagged

The restore code extracts every archive entry into the chosen target directory and logs entries, but does not show a whitelist limiting restores to expected OpenClaw paths such as .openclaw, clawd, or manifest.json.

Skill content
const extractor = tar.x({
        cwd: targetDir,
        onentry: (entry) => {
          console.log(`Extracting: ${entry.path}`);
        }
      });
Recommendation

Only import archives you created and trust. The skill should add entry validation, path restrictions, overwrite prompts, and a backup/staging restore flow.

What this means

If an archive is corrupted or tampered with, restoration may begin writing files before the failure is detected, potentially leaving partial or inconsistent agent state.

Why it was flagged

The decrypted stream is piped directly into tar extraction while the GCM authentication tag is handled at the end of the stream. Authenticated encryption is only fully verified at finalization, so the code uses decrypted data before the archive has been completely authenticated.

Skill content
splitter.on('tag', (tag) => {
        try {
          decipher.setAuthTag(tag);
        } catch (e) {
          reject(new Error('Invalid auth tag'));
        }
      });
...
input.pipe(splitter).pipe(decipher).pipe(extractor);
Recommendation

Decrypt and verify into a temporary file or staging area first, then extract only after authentication succeeds; also clean up partial restores on failure.

What this means

The exported archive may contain API keys, tokens, agent profiles, and private configuration. Anyone with the archive password can restore or inspect that state.

Why it was flagged

The skill explicitly handles OpenClaw configuration and authentication material, which is expected for migration but sensitive.

Skill content
This skill handles sensitive data (`openclaw.json`, `auth.token`).
Recommendation

Use a strong unique password, protect the .oca file, avoid sharing it, and rotate tokens if the archive or password may have been exposed.

What this means

Restored memories or skills may carry old instructions, sensitive context, or unwanted behavior into the new machine.

Why it was flagged

The skill intentionally migrates persistent memory and skills, which can influence future agent behavior after restore.

Skill content
Securely migrate OpenClaw Agent (config, memory, skills) to a new machine.
Recommendation

Review restored memory and installed skills after import, especially if the archive was not created directly by you.

What this means

Users must trust the repository and the npm dependency resolution used at install time.

Why it was flagged

The installation path relies on cloning a repository and installing npm dependencies, while the registry metadata provides no install spec or homepage.

Skill content
git clone https://github.com/anchor-jevons/openclaw-migrator
cd openclaw-migrator
npm install
npm link
Recommendation

Install from a trusted source, review the repository, and prefer pinned dependencies or a lockfile before using it on sensitive agent state.