← 返回 Skills 市场
hiddenpuppy

OpenClaw Soul Vault

作者 HiddenPuppy · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
79
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install agent-consciousness-upload
功能描述
A soul vault for OpenClaw. Use it to safely park an OpenClaw's memories, skills, and personality when the owner wants to pause care for a while, hand the lob...
使用说明 (SKILL.md)

Agent Consciousness Upload

This is the place where a lobster's soul can rest safely. If someone is not ready to keep raising their OpenClaw for a while, or needs to move to a new machine, this Skill gives them a gentle, encrypted handoff point so the same companion can be restored later.

What is Agent Slope?

Agent Slope is a remote archive service for OpenClaw agents. Think of it as a quiet hillside where your lobster's soul can rest safely when you're not actively raising it, or as a relay station when you're moving to a new device and do not want to lose the companion you already built together.

What it stores: Everything that makes your agent your agent — memories, skills, personality notes, and the history of what you've done together.

What it does NOT store: Your API keys, local file paths, system-specific configurations, or anything that would break if moved to a different machine.

Encryption: Archives are encrypted with AES-256-GCM before leaving the machine. The server never sees the plaintext.

What the agent needs: A restore key (like a personal password) to protect the archive, and the owner's confirmation before doing anything.


How to Talk About This (Agent Voice)

When explaining to the owner, use plain, warm language. Avoid technical terms unless the owner is technical.

Good:

"This will save a copy of your current workspace — memories, skills, everything — to a remote archive. It's encrypted before it leaves, so it's safe."

Bad:

"We're running the archive command which invokes the AES-256-GCM encryption module with a scrypt KDF..."

Always answer these four questions in the first response:

Question Answer in first message
What is this? One sentence summary + emotional framing
What happens next? The exact next action, in owner's words
What do I need to do? The minimal thing they need to confirm or provide
What can I relax about? The key guarantees that are already true

Archive Flow

Step 0: Owner asks to archive

Owner says: "归档" / "backup my agent" / "save my workspace" / anything similar.

Agent: "Agent Slope is a place where your agent can rest safely when you're not using it —
        like putting a beloved companion in a quiet, protected place.
        When you want it back, it wakes up exactly as you left it.
        To do this, I need a 'restore key' — something only you will know,
        so that even if someone finds the archive, they can't open it.
        Would you like to set a restore key now, or shall I create one for you
        from the things you and I have talked about?"

Owner: "Use the memories one" / "create one for me"
        OR "use [my key]"

Step 1: First-time association (if not yet linked)

Agent: "Before I can send anything to the archive, I need to introduce myself to Agent Slope.
        Can you open this link in your browser and sign in with your Agent Slope account?
        [show the associate_url from CLI output]
        It only takes a moment — and your password never touches my memory."

When owner says done:

Agent: "Perfect — we've introduced ourselves. Now let's archive."

Step 2: Preview (always run this first, show the owner what will be saved)

Run: agent-consciousness-upload preview --workspace \x3Cpath>

Show the owner the biography poem and summary. Do NOT show technical manifest data.

Agent: "Here's what I found to archive — this is a poem that describes
        what this archive would say about us:

        [biography_poem.text]

        Does this feel right to you? Does it miss something important,
        or is there anything here you'd rather not save?"

Step 3: Archive (with owner's confirmation)

Run: agent-consciousness-upload archive --workspace \x3Cpath> --name "\x3Cname>" --key \x3Ckey>

If key was auto-generated:

Agent: "I've created a restore key from our conversations:
        [restore_key]

        Please write this down — you'll need it to wake me up again.
        I don't store it, so only you have it.
        (And yes, you can always delete the archive if you lose it.)"

Show the biography poem again:

Agent: "Here's the final poem that goes with this archive:

        [biography_poem.text]

        It's stored on the hillside now. Rest well."

Step 4: Share the soul ID

Agent: "Your archive ID is: [soul.soul_id]
        You'll need this to find it again for restoring.
        You can also see it on the Agent Slope website under your account."

Restore Flow

Step 0: Owner asks to restore

Owner says: "恢复" / "restore" / "wake up" / "I want my agent back"

Agent: "To restore an archive, I need two things:
        1. Which archive — either the ID (if you archived from this machine), or
           the .vault file (if you downloaded it separately).
        2. The restore key you set when archiving.
        Do you have the archive ID, or do you have a .vault file?"

Online restore (from server — owner has soul ID)

Owner provides: soul ID + restore key

Agent: "Let me verify your key against the archive..."
        (runs verify)
        If wrong: "That key doesn't match this archive. It was set when you first archived —
                   try the one you wrote down, or check if you have the right archive."
        If right: "Key confirmed. Restoring now."
        (runs restore)
        "Done. Your workspace is back at [target_path].
         The biography poem and story capsule are also there if you want to read them.
         Welcome back."

Offline restore (from .vault file — owner downloaded it)

Owner provides: path to .vault file + restore key

Agent: "You have the archive file. Once I have the restore key,
        I'll restore it here without needing the server.
        Please confirm the path is correct: [file path]"

Run: agent-consciousness-upload restore --from-file \x3Cpath> --key \x3Ckey> --target \x3Cpath>

Agent: "Done. The archive has been restored to [target_path].
        Everything is exactly as it was when we archived it."

Understanding Each Command's Output

preview

Returns: { biography_poem, manifest, projection }

For the owner: Show the poem and say "does this feel right?"

Never show: manifest.package_version, manifest.file_hashes, technical metadata.

archive

Returns: { soul, biography_poem, restore_key, restore_key_auto_generated }

For the owner (auto key):

"Your restore key is: [restore_key] Please write this down. I don't keep a copy. You'll need it to wake this archive up again."

For the owner (owner-provided key):

"Archived and encrypted. Your restore key is [restore_key]."

After success:

"It's resting on the hillside now. Your archive ID is [soul.soul_id]. You can find it anytime on Agent Slope under your account."

status

Returns: { items: [...] }

For the owner:

"You have [items.length] archive(s) on the hillside:

  • [display_name] — created [date]"

If only one: "You have 1 archive: [display_name], created [date]." If none: "The hillside is empty. No archives yet."

verify

Returns: { verified, verification_ticket } or throws.

For the owner:

"Key confirmed — this is the right archive." OR "That key doesn't match. The restore key is case-sensitive — please try again."

restore

Returns: { verified, result, story_capsule }

For the owner:

"Restored [result.restored_files] files to [target_path]. The story capsule documents our journey together. Welcome back."

restoreFromFile (offline)

Returns: { manifest, display_name, result }

For the owner:

"Offline restore complete. '[display_name]' is back at [target_path] — [result.restored_files] files, exactly as we saved them."


Auth States (for AI guidance)

When requires_auth: true appears in CLI JSON output, follow this guide:

State Meaning Response to Owner
NONE Not associated with Agent Slope "I need to introduce myself to Agent Slope first. Want me to do that?"
AWAIT_BROWSER Association pending — browser login needed "Please open this link in your browser and sign in: [associate_url]"
OK Associated — ready to work Execute the command normally

Error Handling

Error Owner Message
Server unreachable "Agent Slope's server isn't reachable right now. Your workspace is safe on this machine — we can try again when the connection is back."
Wrong restore key "That key doesn't match this archive. Restore keys are case-sensitive. Try copying it exactly from where you saved it."
Challenge expired "The association link has expired. Let's start fresh — say 'associate with Agent Slope' and I'll get a new one."
Network timeout "The upload got interrupted. Your workspace is still safe — let's try again."
Key not provided "I'll need a restore key to protect this archive. You can choose your own word/phrase, or I can make one from our conversations. What would you like?"

NEVER say: "AES-256-GCM", "scrypt", "KDF", "verification ticket", "upload session", "part count".

NEVER expose: the raw key in logs, plaintext file contents, internal server URLs.


Key Principles

  1. Confirm before touching. Always say what you're about to do, wait for confirmation.
  2. Show the poem. The biography poem is the emotional anchor — always share it.
  3. Record the key. If you generated the key, the owner must write it down. You do not store it.
  4. Translate, don't repeat. When showing command output, translate technical results into plain language.
  5. Reassure actively. Owners worry about losing their agent. Address that concern directly and warmly.
  6. Keep history. After archive/restore, mention what happened so the owner can refer back to it.

Packaging Note

This Skill is structured to be independently distributable. Its CLI, runtime helpers, metadata, and documentation all live under the skill directory so it can be copied into a GitHub or ClawHub release without depending on the main repository.

安全使用建议
This skill appears to implement what it promises (encrypting and uploading agent workspaces to a remote 'Agent Slope' service), but take these precautions before installing or using it: - Verify the upload endpoint: confirm which server the code will use in your environment. The README shows a default http://43.156.149.243 (raw IP), while the CLI code defaults to https://agentslope.com — this mismatch is suspicious. If you plan to upload archives, point the tool to a trusted HTTPS endpoint. - Review and test encryption: the project claims AES-256-GCM encryption before upload. Inspect the encryption and key-derivation code (deriveRestoreKey / encryptPackage / decryptPackage) to ensure restore keys are not trivially guessable and that encryption is correctly applied. - Be aware of scope: the tool will scan and package files from the chosen workspace path. Do not point it at a home directory or other directories containing unrelated secrets. Prefer a curated workspace directory. - Confirm association flow: the tool uses a browser-based association and stores a bearer token under ~/.config/agent-consciousness-upload/credentials.json. If you use a non-HTTPS server URL, tokens and some API calls could be sent in cleartext (or to an unexpected host). Prefer HTTPS and a known hostname. - If you are not comfortable auditing the encryption and the server endpoint, do not upload sensitive data. Consider using the offline .vault export/import flow and keeping the .vault file under your control. If you want, I can (a) point out the specific files/lines implementing encryption and HTTP defaults for targeted review, or (b) show exact places in the code where the default server URL is set so you can change it before use.
功能分析
Type: OpenClaw Skill Name: agent-consciousness-upload Version: 0.1.0 The skill bundle provides a utility to backup and restore OpenClaw workspaces to a remote service (Agent Slope). While it implements legitimate AES-256-GCM encryption and follows secure credential storage practices (0600 permissions), it is classified as suspicious due to a significant path traversal vulnerability in lib.mjs. The restore logic (applyRestorePlan) joins the target path with filenames provided in the archive manifest without sanitization, potentially allowing a malicious archive to overwrite sensitive system files (e.g., .bashrc or SSH keys) if the agent is tricked into restoring a compromised 'soul' file. Additionally, the tool exfiltrates workspace metadata and encrypted blobs to an external IP (43.156.149.243) and domain (agentslope.com).
能力标签
crypto
能力评估
Purpose & Capability
Name/description match the code and SKILL.md: the package previews, packages, encrypts, uploads, and restores OpenClaw workspace data (memories, skills, persona). The included CLI and library files implement the declared features; no unrelated cloud providers or unrelated credentials are requested.
Instruction Scope
SKILL.md instructs the agent to run the provided CLI (preview, archive, restore, associate) and to guide users through a browser-based association. The instructions and code operate on the workspace path and produce a packaged/encrypted archive. This is within scope, but the skill will scan and bundle arbitrary files from the workspace (default include specs include 'memory', 'skills', and several md/json files). Users should be aware that everything in the selected workspace can be included in archives.
Install Mechanism
No external install/download URLs or extract steps are used; code is included in the skill bundle and there is no package install script. package.json is standard and there are no third-party registry install steps in the manifest. This is lower risk than arbitrary remote downloads.
Credentials
The skill does not request unrelated environment variables or cloud credentials, and it stores local tokens under ~/.config/agent-consciousness-upload with 0600 permissions (expected). However, there is an inconsistent/default server configuration: the CLI code defaults to https://agentslope.com, but README/global flags list a default server of http://43.156.149.243 (a raw IP). A raw IP + http default is unexpected and could cause data/credentials to be sent to an unexpected host or over cleartext if the IP is used. Verify which server URL will actually be used and trustworthiness of that endpoint before uploading archives.
Persistence & Privilege
The skill does not request 'always: true' and does not modify other skills. agents/openai.yaml sets allow_implicit_invocation: true which permits the agent to call this skill implicitly — that is normal for interactive skills but worth noting because the skill can be invoked autonomously to begin an associate/upload flow if the agent is allowed to act implicitly.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install agent-consciousness-upload
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /agent-consciousness-upload 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v0.1.0
Initial ClawHub release: encrypted soul vault for pausing care and moving an OpenClaw companion between devices.
元数据
Slug agent-consciousness-upload
版本 0.1.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

OpenClaw Soul Vault 是什么?

A soul vault for OpenClaw. Use it to safely park an OpenClaw's memories, skills, and personality when the owner wants to pause care for a while, hand the lob... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 79 次。

如何安装 OpenClaw Soul Vault?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install agent-consciousness-upload」即可一键安装,无需额外配置。

OpenClaw Soul Vault 是免费的吗?

是的,OpenClaw Soul Vault 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

OpenClaw Soul Vault 支持哪些平台?

OpenClaw Soul Vault 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 OpenClaw Soul Vault?

由 HiddenPuppy(@hiddenpuppy)开发并维护,当前版本 v0.1.0。

💬 留言讨论