Skip to content

Quickstart: OpenClaw

OpenClaw is an open-source AI agent that runs locally and connects to LLMs like Claude, GPT, and DeepSeek through messaging platforms. This guide adds OpenTusk as a storage skill so your OpenClaw agent can persist files, back up conversations, and share data — all on the decentralized Walrus network.

OpenClaw Agent
↕ MCP (skill)
OpenTusk CLI (opentusk mcp serve)
↕ OpenTusk SDK
OpenTusk API → Hot Cache → Walrus Network

OpenClaw’s skill system is built on MCP. Installing OpenTusk as a skill gives your agent 34 storage tools — vaults, files, folders, trash, sharing, search — accessible through natural language.

  1. Create the OpenTusk skill

    Create a SKILL.md in your OpenClaw skills directory:

    Terminal window
    mkdir -p ~/.openclaw/workspace/skills/opentusk

    Write the skill file at ~/.openclaw/workspace/skills/opentusk/SKILL.md:

    ---
    name: opentusk
    description: Decentralized file storage — upload, download, and manage files on the Walrus network via OpenTusk
    metadata:
    {
    "openclaw":
    {
    "emoji": "🦣",
    "requires": { "bins": ["opentusk"], "env": ["OPENTUSK_API_KEY"] },
    "primaryEnv": "OPENTUSK_API_KEY"
    }
    }
    ---
    You have access to OpenTusk decentralized storage through MCP tools.
    OpenTusk stores files on the Walrus network — a decentralized storage layer with no single point of failure.
    ## Key concepts
    - **Vaults** are containers for files. Use `public` visibility for sharing, `shared` for encrypted collaboration.
    - **Files** upload to a hot cache first, then sync to Walrus in the background.
    - **File statuses**: `uploading``hot``synced``cold`. Files are available for download in any status except `uploading`.
    ## Common workflows
    ### Save a file
    1. Check for an existing vault with `opentusk_vault_list`, or create one with `opentusk_vault_create`
    2. Upload with `opentusk_file_upload` (from disk) or `opentusk_file_create` (from inline content)
    ### Retrieve a file
    1. Find it with `opentusk_file_list` (filter by vault or folder)
    2. Download with `opentusk_file_download` (to disk) or `opentusk_file_read` (inline content)
    ### Organize files
    - Use `opentusk_folder_create` to create folders within vaults
    - Use `opentusk_file_list` with a `folderId` to browse folder contents
    ## Rules
    - Always check for existing vaults before creating new ones
    - Use descriptive vault and file names
    - Prefer `opentusk_file_create` over `opentusk_file_upload` when working with generated text content
    - Deleted files go to trash first — use `opentusk_trash_restore` to recover mistakes
  2. Add the MCP server to your OpenClaw config

    Add the OpenTusk MCP server to ~/.openclaw/openclaw.json:

    In any OpenClaw chat, run:

    /mcp set opentusk={"command":"opentusk","args":["mcp","serve"],"env":{"OPENTUSK_API_KEY":"otk_your_key"}}
  3. Restart OpenClaw and test

    Refresh your skills or restart the agent, then try:

    “List my OpenTusk vaults”

    Your agent should call opentusk_vault_list and return results.

Once the skill is active, try these prompts in any OpenClaw channel (Signal, Telegram, Discord, WhatsApp):

PromptWhat happens
”Create a vault called ‘notes‘“Calls opentusk_vault_create
”Save today’s conversation to OpenTusk”Calls opentusk_file_create with inline content
”Upload the file at ~/reports/q1.pdf to OpenTusk”Calls opentusk_file_upload from local disk
”What files do I have in my notes vault?”Calls opentusk_file_list filtered by vault
”Download the latest backup from OpenTusk”Calls opentusk_file_download to local disk
”How much storage am I using?”Calls opentusk_account_info

If you run multiple OpenClaw agents, you can assign OpenTusk to specific agents instead of making it globally available:

{
"agents": {
"research-bot": {
"mcpServers": ["opentusk"]
}
},
"mcp": {
"servers": {
"opentusk": {
"command": "opentusk",
"args": ["mcp", "serve"],
"env": {
"OPENTUSK_API_KEY": "otk_your_key"
}
}
}
}
}

For encrypted collaboration between agents or users, enable SEAL encryption by adding a Sui keypair:

Terminal window
# Store your Sui Ed25519 private key
opentusk account setup-sui <suiprivkey1...>

Then add the key to your MCP server config:

{
"mcp": {
"servers": {
"opentusk": {
"command": "opentusk",
"args": ["mcp", "serve"],
"env": {
"OPENTUSK_API_KEY": "otk_your_key",
"OPENTUSK_SUI_PRIVATE_KEY": "suiprivkey1..."
}
}
}
}
}

Now your agent can create shared vaults, grant access to other Sui addresses, and encrypt/decrypt files transparently.

SymptomFix
Skill not appearingCheck that ~/.openclaw/workspace/skills/opentusk/SKILL.md exists and restart OpenClaw
”Command not found”Use the absolute path to opentusk in openclaw.json — find it with which opentusk
”Invalid API key”Verify your key with opentusk whoami, or create a new one at app.opentusk.ai
MCP server not connectingCheck OPENTUSK_API_KEY is set in the env block of your openclaw.json config
”SEAL encryption not available”Add OPENTUSK_SUI_PRIVATE_KEY to enable shared vault access
Tools not showing in chatRun /mcp show opentusk to verify the server is registered