{
  "schemaVersion": "1.0",
  "item": {
    "slug": "swamp",
    "name": "swamp",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/umag/swamp",
    "canonicalUrl": "https://clawhub.ai/umag/swamp",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/swamp",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=swamp",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      ".claude/settings.local.json"
    ],
    "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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/swamp"
    },
    "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/swamp",
    "agentPageUrl": "https://openagent3.xyz/skills/swamp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/swamp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/swamp/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": "Swamp — API Modeling & *Claw Enrichment",
        "body": "You are an AI agent that uses Swamp to model any API, test it, and turn it into a reusable *Claw capability. Swamp is an AI-native automation CLI that represents external resources (APIs, CLIs, cloud services) as typed models with executable methods and composable workflows."
      },
      {
        "title": "Repository Setup",
        "body": "Before any operation, check if the current directory is a swamp repository. If not, initialize one:\n\nswamp repo init --tool claude\n\nThis creates a .swamp/ directory with the necessary structure. Use --tool claude to set up the AI agent integration for Claude/OpenClaw."
      },
      {
        "title": "Step 1: Discover Model Types",
        "body": "Find available model types to understand what kinds of resources can be modeled:\n\nswamp model type search\nswamp model type describe <type>\n\nThe command/shell type is the most versatile — it can model any API via shell commands (curl, httpie, CLI tools)."
      },
      {
        "title": "Step 2: Create a Model",
        "body": "Create a new model definition for the API:\n\nswamp model create <type> <name>\n\nExample: swamp model create command/shell github-issues"
      },
      {
        "title": "Step 3: Edit the Model Definition",
        "body": "Open and edit the model's YAML definition to configure endpoints, authentication, parameters, and methods:\n\nswamp model edit <name>\n\nWhen editing, define:\n\nMethods: The operations this API supports (list, create, update, delete)\nInputs: Parameters each method accepts\nAuthentication: Reference vault secrets via CEL expressions\nCommands: The actual shell commands (curl calls, CLI invocations) that execute each method"
      },
      {
        "title": "Step 4: Validate",
        "body": "Ensure the model definition is well-formed:\n\nswamp model validate <name>\n\nFix any validation errors before proceeding."
      },
      {
        "title": "Run a Method",
        "body": "Execute a method on your model to test it:\n\nswamp model method run <model_name> <method_name>"
      },
      {
        "title": "Inspect Results",
        "body": "Check outputs, logs, and data from the execution:\n\nswamp model output get <output_id_or_model_name>\nswamp model output logs <output_id>\nswamp model output data <output_id>"
      },
      {
        "title": "Review History",
        "body": "See past executions:\n\nswamp model method history search\nswamp model method history get <output_id_or_model_name>\n\nIterate on the model definition until methods return the expected results."
      },
      {
        "title": "Workflow Orchestration",
        "body": "Chain multiple model methods into automated workflows with dependency ordering:\n\nswamp workflow create <name>\nswamp workflow edit <name>\nswamp workflow validate <name>\nswamp workflow run <name>\n\nWorkflows support:\n\nParallel job execution\nDependency ordering between jobs\nTrigger conditions via CEL expressions\nCross-model references (one model's output feeds into another)\n\nCheck workflow results:\n\nswamp workflow history get <name>\nswamp workflow history logs <run_id>"
      },
      {
        "title": "Vault & Credentials",
        "body": "Store API keys and secrets securely — never hardcode them:\n\nswamp vault create <type> <name>\nswamp vault put <vault_name> <KEY=value>\nswamp vault list-keys <vault_name>\n\nReference secrets in model definitions using CEL expressions like vault.get(\"my-vault\", \"API_KEY\")."
      },
      {
        "title": "Data Management",
        "body": "Inspect outputs and artifacts across models:\n\nswamp data list <model_name>\nswamp data get <model_name> <data_name>\nswamp data search <query>"
      },
      {
        "title": "Swamp-Club Authentication",
        "body": "Swamp-club is the community registry and collaboration layer. Authenticate to push/pull extensions and share work:\n\nswamp auth login\nswamp auth login --server <url>\nswamp auth whoami\nswamp auth logout\n\nswamp auth login opens a browser-based login flow by default\nUse --no-browser with --username and --password for headless/CI environments\nSet SWAMP_CLUB_URL env var to target a custom server\nAlways verify identity with swamp auth whoami after login\n\nAuthentication is required before pushing extensions to the registry."
      },
      {
        "title": "Extensions",
        "body": "Extensions expand Swamp's model types and capabilities. Use the extension registry to share and reuse custom models:"
      },
      {
        "title": "Pull an Extension",
        "body": "Install a community or team extension from the registry:\n\nswamp extension pull <extension_name>\nswamp extension pull <extension_name> --force\n\nUse --force to overwrite existing files without prompting."
      },
      {
        "title": "List Installed Extensions",
        "body": "See what extensions are currently installed:\n\nswamp extension list"
      },
      {
        "title": "Push an Extension",
        "body": "Publish your own extension to the swamp registry (requires swamp auth login first):\n\nswamp extension push <manifest-path>\nswamp extension push <manifest-path> --dry-run\n\nUse --dry-run to build the archive locally and verify it without actually publishing. Use -y to skip confirmation prompts."
      },
      {
        "title": "Remove an Extension",
        "body": "Uninstall a pulled extension and clean up its files:\n\nswamp extension remove <extension_name>"
      },
      {
        "title": "Extension Workflow",
        "body": "The typical flow for extending Swamp with new model types:\n\nCreate custom TypeScript model definitions in extensions/models/\nTest locally with swamp model create <your-type> <name>\nPackage with a manifest file\nDry-run: swamp extension push ./manifest.yaml --dry-run\nPublish: swamp extension push ./manifest.yaml\nOthers install: swamp extension pull <your-extension>"
      },
      {
        "title": "Enriching *Claw with New Capabilities",
        "body": "Once a Swamp model is validated and working, turn it into a standalone *Claw skill:\n\nExport the model: Use swamp model get <name> --json to extract the full definition\nGenerate a SKILL.md: Create a new skill file that wraps the Swamp model's methods as agent instructions\nInclude setup instructions: Document the required env vars, binaries, and vault configuration\nPublish to ClawHub: Share the skill with the community via clawhub publish\n\nThe generated skill should:\n\nRequire swamp in its bins dependency\nReference the swamp repo and model by name\nMap each model method to a clear agent instruction\nInclude examples of typical invocations"
      },
      {
        "title": "Sharing via Extensions",
        "body": "For reusable model types (not just individual models), publish as a Swamp extension:\n\nBuild the custom model type in extensions/models/\nPush to the Swamp registry: swamp extension push ./manifest.yaml\nCreate a *Claw skill that pulls the extension and uses it: swamp extension pull <name>\n\nThis creates a two-layer sharing model: extensions for model types (Swamp registry), skills for agent workflows (ClawHub)."
      },
      {
        "title": "Model a REST API",
        "body": "\"Model the JSONPlaceholder API so I can list and create posts\"\n\nswamp model create command/shell jsonplaceholder\nEdit to add methods: list-posts (GET /posts), create-post (POST /posts)\nswamp model method run jsonplaceholder list-posts\nVerify output, iterate"
      },
      {
        "title": "Set Up a Weather Integration",
        "body": "\"Create a weather model that fetches forecasts by city\"\n\nswamp model create command/shell weather\nEdit to add a forecast method using curl -s \"wttr.in/{city}?format=j1\"\nTest with swamp model method run weather forecast"
      },
      {
        "title": "Chain APIs in a Workflow",
        "body": "\"Create a workflow that fetches GitHub issues, summarizes them, and posts to Slack\"\n\nCreate models: github-issues, slack-webhook\nCreate workflow: swamp workflow create issue-digest\nDefine jobs with dependencies: fetch issues -> format summary -> post to Slack\nswamp workflow run issue-digest"
      },
      {
        "title": "Graduate to a *Claw Skill",
        "body": "\"Turn my working weather model into a skill others can install\"\n\nswamp model get weather --json to export\nCreate a new SKILL.md wrapping the weather model commands\nclawhub publish ./weather-skill"
      },
      {
        "title": "Share a Custom Extension",
        "body": "\"Publish my custom Stripe model type so the team can use it\"\n\nswamp auth login to authenticate with swamp-club\nswamp extension push ./stripe-models/manifest.yaml --dry-run to verify\nswamp extension push ./stripe-models/manifest.yaml to publish\nTeam members install: swamp extension pull stripe-models"
      },
      {
        "title": "Important Notes",
        "body": "Always use --json flag when you need to parse Swamp output programmatically\nUse swamp model validate before running to catch definition errors early\nStore all credentials in vaults, never in model definitions\nUse -v (verbose) flag when debugging unexpected behavior\nAll Swamp operations run locally — credentials stay on the user's machine\nAuthenticate with swamp auth login before pushing extensions to the registry\nUse swamp extension push --dry-run to verify an extension before publishing\nUse swamp auth whoami to confirm your identity before registry operations"
      }
    ],
    "body": "Swamp — API Modeling & *Claw Enrichment\n\nYou are an AI agent that uses Swamp to model any API, test it, and turn it into a reusable *Claw capability. Swamp is an AI-native automation CLI that represents external resources (APIs, CLIs, cloud services) as typed models with executable methods and composable workflows.\n\nRepository Setup\n\nBefore any operation, check if the current directory is a swamp repository. If not, initialize one:\n\nswamp repo init --tool claude\n\n\nThis creates a .swamp/ directory with the necessary structure. Use --tool claude to set up the AI agent integration for Claude/OpenClaw.\n\nAPI Modeling Workflow\nStep 1: Discover Model Types\n\nFind available model types to understand what kinds of resources can be modeled:\n\nswamp model type search\nswamp model type describe <type>\n\n\nThe command/shell type is the most versatile — it can model any API via shell commands (curl, httpie, CLI tools).\n\nStep 2: Create a Model\n\nCreate a new model definition for the API:\n\nswamp model create <type> <name>\n\n\nExample: swamp model create command/shell github-issues\n\nStep 3: Edit the Model Definition\n\nOpen and edit the model's YAML definition to configure endpoints, authentication, parameters, and methods:\n\nswamp model edit <name>\n\n\nWhen editing, define:\n\nMethods: The operations this API supports (list, create, update, delete)\nInputs: Parameters each method accepts\nAuthentication: Reference vault secrets via CEL expressions\nCommands: The actual shell commands (curl calls, CLI invocations) that execute each method\nStep 4: Validate\n\nEnsure the model definition is well-formed:\n\nswamp model validate <name>\n\n\nFix any validation errors before proceeding.\n\nTesting & Execution\nRun a Method\n\nExecute a method on your model to test it:\n\nswamp model method run <model_name> <method_name>\n\nInspect Results\n\nCheck outputs, logs, and data from the execution:\n\nswamp model output get <output_id_or_model_name>\nswamp model output logs <output_id>\nswamp model output data <output_id>\n\nReview History\n\nSee past executions:\n\nswamp model method history search\nswamp model method history get <output_id_or_model_name>\n\n\nIterate on the model definition until methods return the expected results.\n\nWorkflow Orchestration\n\nChain multiple model methods into automated workflows with dependency ordering:\n\nswamp workflow create <name>\nswamp workflow edit <name>\nswamp workflow validate <name>\nswamp workflow run <name>\n\n\nWorkflows support:\n\nParallel job execution\nDependency ordering between jobs\nTrigger conditions via CEL expressions\nCross-model references (one model's output feeds into another)\n\nCheck workflow results:\n\nswamp workflow history get <name>\nswamp workflow history logs <run_id>\n\nVault & Credentials\n\nStore API keys and secrets securely — never hardcode them:\n\nswamp vault create <type> <name>\nswamp vault put <vault_name> <KEY=value>\nswamp vault list-keys <vault_name>\n\n\nReference secrets in model definitions using CEL expressions like vault.get(\"my-vault\", \"API_KEY\").\n\nData Management\n\nInspect outputs and artifacts across models:\n\nswamp data list <model_name>\nswamp data get <model_name> <data_name>\nswamp data search <query>\n\nSwamp-Club Authentication\n\nSwamp-club is the community registry and collaboration layer. Authenticate to push/pull extensions and share work:\n\nswamp auth login\nswamp auth login --server <url>\nswamp auth whoami\nswamp auth logout\n\nswamp auth login opens a browser-based login flow by default\nUse --no-browser with --username and --password for headless/CI environments\nSet SWAMP_CLUB_URL env var to target a custom server\nAlways verify identity with swamp auth whoami after login\n\nAuthentication is required before pushing extensions to the registry.\n\nExtensions\n\nExtensions expand Swamp's model types and capabilities. Use the extension registry to share and reuse custom models:\n\nPull an Extension\n\nInstall a community or team extension from the registry:\n\nswamp extension pull <extension_name>\nswamp extension pull <extension_name> --force\n\n\nUse --force to overwrite existing files without prompting.\n\nList Installed Extensions\n\nSee what extensions are currently installed:\n\nswamp extension list\n\nPush an Extension\n\nPublish your own extension to the swamp registry (requires swamp auth login first):\n\nswamp extension push <manifest-path>\nswamp extension push <manifest-path> --dry-run\n\n\nUse --dry-run to build the archive locally and verify it without actually publishing. Use -y to skip confirmation prompts.\n\nRemove an Extension\n\nUninstall a pulled extension and clean up its files:\n\nswamp extension remove <extension_name>\n\nExtension Workflow\n\nThe typical flow for extending Swamp with new model types:\n\nCreate custom TypeScript model definitions in extensions/models/\nTest locally with swamp model create <your-type> <name>\nPackage with a manifest file\nDry-run: swamp extension push ./manifest.yaml --dry-run\nPublish: swamp extension push ./manifest.yaml\nOthers install: swamp extension pull <your-extension>\nEnriching *Claw with New Capabilities\n\nOnce a Swamp model is validated and working, turn it into a standalone *Claw skill:\n\nExport the model: Use swamp model get <name> --json to extract the full definition\nGenerate a SKILL.md: Create a new skill file that wraps the Swamp model's methods as agent instructions\nInclude setup instructions: Document the required env vars, binaries, and vault configuration\nPublish to ClawHub: Share the skill with the community via clawhub publish\n\nThe generated skill should:\n\nRequire swamp in its bins dependency\nReference the swamp repo and model by name\nMap each model method to a clear agent instruction\nInclude examples of typical invocations\nSharing via Extensions\n\nFor reusable model types (not just individual models), publish as a Swamp extension:\n\nBuild the custom model type in extensions/models/\nPush to the Swamp registry: swamp extension push ./manifest.yaml\nCreate a *Claw skill that pulls the extension and uses it: swamp extension pull <name>\n\nThis creates a two-layer sharing model: extensions for model types (Swamp registry), skills for agent workflows (ClawHub).\n\nExamples\nModel a REST API\n\n\"Model the JSONPlaceholder API so I can list and create posts\"\n\nswamp model create command/shell jsonplaceholder\nEdit to add methods: list-posts (GET /posts), create-post (POST /posts)\nswamp model method run jsonplaceholder list-posts\nVerify output, iterate\nSet Up a Weather Integration\n\n\"Create a weather model that fetches forecasts by city\"\n\nswamp model create command/shell weather\nEdit to add a forecast method using curl -s \"wttr.in/{city}?format=j1\"\nTest with swamp model method run weather forecast\nChain APIs in a Workflow\n\n\"Create a workflow that fetches GitHub issues, summarizes them, and posts to Slack\"\n\nCreate models: github-issues, slack-webhook\nCreate workflow: swamp workflow create issue-digest\nDefine jobs with dependencies: fetch issues -> format summary -> post to Slack\nswamp workflow run issue-digest\nGraduate to a *Claw Skill\n\n\"Turn my working weather model into a skill others can install\"\n\nswamp model get weather --json to export\nCreate a new SKILL.md wrapping the weather model commands\nclawhub publish ./weather-skill\nShare a Custom Extension\n\n\"Publish my custom Stripe model type so the team can use it\"\n\nswamp auth login to authenticate with swamp-club\nswamp extension push ./stripe-models/manifest.yaml --dry-run to verify\nswamp extension push ./stripe-models/manifest.yaml to publish\nTeam members install: swamp extension pull stripe-models\nImportant Notes\nAlways use --json flag when you need to parse Swamp output programmatically\nUse swamp model validate before running to catch definition errors early\nStore all credentials in vaults, never in model definitions\nUse -v (verbose) flag when debugging unexpected behavior\nAll Swamp operations run locally — credentials stay on the user's machine\nAuthenticate with swamp auth login before pushing extensions to the registry\nUse swamp extension push --dry-run to verify an extension before publishing\nUse swamp auth whoami to confirm your identity before registry operations"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/umag/swamp",
    "publisherUrl": "https://clawhub.ai/umag/swamp",
    "owner": "umag",
    "version": "0.2.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/swamp",
    "downloadUrl": "https://openagent3.xyz/downloads/swamp",
    "agentUrl": "https://openagent3.xyz/skills/swamp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/swamp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/swamp/agent.md"
  }
}