{
  "schemaVersion": "1.0",
  "item": {
    "slug": "surrealfs",
    "name": "surrealfs",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/24601/surrealfs",
    "canonicalUrl": "https://clawhub.ai/24601/surrealfs",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/surrealfs",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=surrealfs",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/surrealfs"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/surrealfs",
    "agentPageUrl": "https://openagent3.xyz/skills/surrealfs/agent",
    "manifestUrl": "https://openagent3.xyz/skills/surrealfs/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/surrealfs/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "SurrealFS -- Virtual Filesystem for AI Agents",
        "body": "SurrealFS provides a persistent, queryable virtual filesystem backed by SurrealDB.\nDesigned for AI agents that need durable file operations, hierarchical storage,\nand content search across sessions."
      },
      {
        "title": "Components",
        "body": "ComponentCrate/PackageLanguagePurposeCore LibrarysurrealfsRustFilesystem operations, CLI REPL, SurrealDB storage layerAI Agentsurrealfs-aiPython (Pydantic AI)Agent interface with tool integration, HTTP hosting"
      },
      {
        "title": "Rust Core -- Commands",
        "body": "The surrealfs crate provides a REPL with POSIX-like commands:\n\nCommandDescriptionlsList directory contentscatDisplay file contentstailShow last lines of a filenlNumber lines of a filegrepSearch file contentstouchCreate empty filemkdirCreate directorywrite_fileWrite content to fileeditEdit file contentscpCopy filecdChange directorypwdPrint working directory\n\nSupports piping from external commands: curl https://example.com > /pages/example.html\n\nStorage backends:\n\nEmbedded RocksDB (local)\nRemote SurrealDB via WebSocket"
      },
      {
        "title": "Python AI Agent",
        "body": "Built on Pydantic AI with tools that mirror the filesystem commands.\n\nfrom surrealfs_ai import build_chat_agent\n\n# Create the agent (default LLM: Claude Haiku)\nagent = build_chat_agent()\n\n# Expose over HTTP\nimport uvicorn\napp = agent.to_web()\nuvicorn.run(app, host=\"127.0.0.1\", port=7932)\n\nFeatures:\n\nDefault LLM: Claude Haiku\nTelemetry via Pydantic Logfire (OpenTelemetry) -- see Security section for opt-out\nAll filesystem operations available as agent tools\nHTTP hosting (default port 7932, bound to 127.0.0.1)\nPath normalization: virtual FS root / is isolated; paths cannot escape to host filesystem"
      },
      {
        "title": "Quick Start",
        "body": "# Install the Rust core\ncargo install surrealfs\n\n# Start the REPL with embedded storage\nsurrealfs\n\n# Or connect to a remote SurrealDB instance\nsurrealfs --endpoint ws://localhost:8000 --user root --pass root --ns agent --db workspace\n\n# Install the Python agent\npip install surrealfs-ai\n\n# Run the agent HTTP server\npython -m surrealfs_ai --host 127.0.0.1 --port 7932"
      },
      {
        "title": "Use Cases",
        "body": "Persistent workspace for AI agent sessions\nHierarchical document storage with metadata queries\nMulti-agent shared file access with SurrealDB permissions\nContent strategy and knowledge management\nProject scaffolding and template management"
      },
      {
        "title": "Security Considerations",
        "body": "Credentials: Remote SurrealDB connections require --user/--pass. Use\ndedicated, least-privilege credentials scoped to a specific namespace/database.\nNever use root credentials in shared or production environments.\n\nTelemetry: The Python agent uses Pydantic Logfire (OpenTelemetry). To\ndisable telemetry, set: export LOGFIRE_SEND_TO_LOGFIRE=false or configure\nLogfire with send_to_logfire=False in code. Audit telemetry endpoints before\nenabling in environments with sensitive data.\n\nHTTP binding: The agent binds to 127.0.0.1 by default. Do not expose to\n0.0.0.0 or public networks without authentication and TLS. If running in a\ncontainer, use network isolation.\n\nPipe commands: The Rust core supports curl URL > /path syntax for content\ningress. This executes the pipe source command on the host. Use only with\ntrusted URLs in controlled environments. Do not allow untrusted input to\nconstruct pipe commands.\n\nSandboxing: The virtual FS root (/) is a SurrealDB-backed abstraction,\nnot the host filesystem. Path traversal (e.g., ../../etc/passwd) is\nnormalized and rejected. However, pipe commands execute on the host -- run\nin a container or sandbox if accepting untrusted agent input."
      },
      {
        "title": "Full Documentation",
        "body": "See the main skill's rule file for complete guidance:\n\nrules/surrealfs.md -- architecture, Rust core API, Python agent setup, SurrealDB schema, multi-agent patterns, and deployment\nsurrealdb/surrealfs -- upstream repository"
      }
    ],
    "body": "SurrealFS -- Virtual Filesystem for AI Agents\n\nSurrealFS provides a persistent, queryable virtual filesystem backed by SurrealDB. Designed for AI agents that need durable file operations, hierarchical storage, and content search across sessions.\n\nComponents\nComponent\tCrate/Package\tLanguage\tPurpose\nCore Library\tsurrealfs\tRust\tFilesystem operations, CLI REPL, SurrealDB storage layer\nAI Agent\tsurrealfs-ai\tPython (Pydantic AI)\tAgent interface with tool integration, HTTP hosting\nRust Core -- Commands\n\nThe surrealfs crate provides a REPL with POSIX-like commands:\n\nCommand\tDescription\nls\tList directory contents\ncat\tDisplay file contents\ntail\tShow last lines of a file\nnl\tNumber lines of a file\ngrep\tSearch file contents\ntouch\tCreate empty file\nmkdir\tCreate directory\nwrite_file\tWrite content to file\nedit\tEdit file contents\ncp\tCopy file\ncd\tChange directory\npwd\tPrint working directory\n\nSupports piping from external commands: curl https://example.com > /pages/example.html\n\nStorage backends:\n\nEmbedded RocksDB (local)\nRemote SurrealDB via WebSocket\nPython AI Agent\n\nBuilt on Pydantic AI with tools that mirror the filesystem commands.\n\nfrom surrealfs_ai import build_chat_agent\n\n# Create the agent (default LLM: Claude Haiku)\nagent = build_chat_agent()\n\n# Expose over HTTP\nimport uvicorn\napp = agent.to_web()\nuvicorn.run(app, host=\"127.0.0.1\", port=7932)\n\n\nFeatures:\n\nDefault LLM: Claude Haiku\nTelemetry via Pydantic Logfire (OpenTelemetry) -- see Security section for opt-out\nAll filesystem operations available as agent tools\nHTTP hosting (default port 7932, bound to 127.0.0.1)\nPath normalization: virtual FS root / is isolated; paths cannot escape to host filesystem\nQuick Start\n# Install the Rust core\ncargo install surrealfs\n\n# Start the REPL with embedded storage\nsurrealfs\n\n# Or connect to a remote SurrealDB instance\nsurrealfs --endpoint ws://localhost:8000 --user root --pass root --ns agent --db workspace\n\n# Install the Python agent\npip install surrealfs-ai\n\n# Run the agent HTTP server\npython -m surrealfs_ai --host 127.0.0.1 --port 7932\n\nUse Cases\nPersistent workspace for AI agent sessions\nHierarchical document storage with metadata queries\nMulti-agent shared file access with SurrealDB permissions\nContent strategy and knowledge management\nProject scaffolding and template management\nSecurity Considerations\n\nCredentials: Remote SurrealDB connections require --user/--pass. Use dedicated, least-privilege credentials scoped to a specific namespace/database. Never use root credentials in shared or production environments.\n\nTelemetry: The Python agent uses Pydantic Logfire (OpenTelemetry). To disable telemetry, set: export LOGFIRE_SEND_TO_LOGFIRE=false or configure Logfire with send_to_logfire=False in code. Audit telemetry endpoints before enabling in environments with sensitive data.\n\nHTTP binding: The agent binds to 127.0.0.1 by default. Do not expose to 0.0.0.0 or public networks without authentication and TLS. If running in a container, use network isolation.\n\nPipe commands: The Rust core supports curl URL > /path syntax for content ingress. This executes the pipe source command on the host. Use only with trusted URLs in controlled environments. Do not allow untrusted input to construct pipe commands.\n\nSandboxing: The virtual FS root (/) is a SurrealDB-backed abstraction, not the host filesystem. Path traversal (e.g., ../../etc/passwd) is normalized and rejected. However, pipe commands execute on the host -- run in a container or sandbox if accepting untrusted agent input.\n\nFull Documentation\n\nSee the main skill's rule file for complete guidance:\n\nrules/surrealfs.md -- architecture, Rust core API, Python agent setup, SurrealDB schema, multi-agent patterns, and deployment\nsurrealdb/surrealfs -- upstream repository"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/24601/surrealfs",
    "publisherUrl": "https://clawhub.ai/24601/surrealfs",
    "owner": "24601",
    "version": "1.2.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/surrealfs",
    "downloadUrl": "https://openagent3.xyz/downloads/surrealfs",
    "agentUrl": "https://openagent3.xyz/skills/surrealfs/agent",
    "manifestUrl": "https://openagent3.xyz/skills/surrealfs/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/surrealfs/agent.md"
  }
}