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.
What you’ll set up
Section titled “What you’ll set up”OpenClaw Agent ↕ MCP (skill)OpenTusk CLI (opentusk mcp serve) ↕ OpenTusk SDKOpenTusk API → Hot Cache → Walrus NetworkOpenClaw’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.
-
Create the OpenTusk skill
Create a
SKILL.mdin your OpenClaw skills directory:Terminal window mkdir -p ~/.openclaw/workspace/skills/opentuskWrite the skill file at
~/.openclaw/workspace/skills/opentusk/SKILL.md:---name: opentuskdescription: Decentralized file storage — upload, download, and manage files on the Walrus network via OpenTuskmetadata:{"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 file1. 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 file1. 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 -
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"}}Open
~/.openclaw/openclaw.jsonand add the server undermcp.servers:{// ... your existing config"mcp": {"servers": {"opentusk": {"command": "opentusk","args": ["mcp", "serve"],"env": {"OPENTUSK_API_KEY": "otk_your_key"}}}}} -
Restart OpenClaw and test
Refresh your skills or restart the agent, then try:
“List my OpenTusk vaults”
Your agent should call
opentusk_vault_listand return results.
Try it out
Section titled “Try it out”Once the skill is active, try these prompts in any OpenClaw channel (Signal, Telegram, Discord, WhatsApp):
| Prompt | What 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 |
Per-agent routing (optional)
Section titled “Per-agent routing (optional)”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" } } } }}Shared vaults (optional)
Section titled “Shared vaults (optional)”For encrypted collaboration between agents or users, enable SEAL encryption by adding a Sui keypair:
# Store your Sui Ed25519 private keyopentusk 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.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Fix |
|---|---|
| Skill not appearing | Check 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 connecting | Check 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 chat | Run /mcp show opentusk to verify the server is registered |