{
  "schemaVersion": "1.0",
  "item": {
    "slug": "gator-cli",
    "name": "Gator CLI",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/AyushBherwani1998/gator-cli",
    "canonicalUrl": "https://clawhub.ai/AyushBherwani1998/gator-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/gator-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=gator-cli",
    "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/gator-cli"
    },
    "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/gator-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/gator-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gator-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gator-cli/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": "Quick Reference",
        "body": "Use this skill to run the gator CLI from the repo and to choose the correct command/flags for delegation workflows."
      },
      {
        "title": "Installation",
        "body": "npm install -g @metamask/gator-cli"
      },
      {
        "title": "CLI Overview",
        "body": "Binary name: gator\nDefault profile: default\nConfig path: ~/.gator-cli/permissions.json (or ~/.gator-cli/profiles/<profile-name>.json)\nDelegations local cache: ~/.gator-cli/delegations/<profile-name>.json when storage not configured"
      },
      {
        "title": "Configuration Requirements",
        "body": "Edit the profile config after gator init:\n\n{\n  \"delegationStorage\": {\n    \"apiKey\": \"your-api-key\",\n    \"apiKeyId\": \"your-api-key-id\"\n  },\n  \"rpcUrl\": \"https://your-rpc-url.com\"\n}\n\ndelegationStorage is optional; when missing, delegations are stored locally.\nrpcUrl is required for on-chain actions."
      },
      {
        "title": "init",
        "body": "Generate a private key and save config. Errors if the profile already exists.\n\ngator init [--chain <chain>] [--profile <profile-name>]\n--chain values: base (default), baseSepolia, sepolia\n--profile default: default\nPrints: address, chain, and config file path."
      },
      {
        "title": "create",
        "body": "Upgrade an EOA to an EIP-7702 smart account. Uses the chain in your profile config.\n\ngator create [--profile <profile-name>]\nRequires the account to be funded with native token first.\nPrints: address, chain, and the upgrade transaction hash."
      },
      {
        "title": "show",
        "body": "Display the EOA address for a profile.\n\ngator show [--profile <profile-name>]"
      },
      {
        "title": "status",
        "body": "Check config and on-chain account status.\n\ngator status [--profile <profile-name>]\nPrints: address, chain, config upgrade status, on-chain code presence, storage and RPC URL config."
      },
      {
        "title": "balance",
        "body": "Show native balance and optional ERC-20 balance.\n\ngator balance [--tokenAddress <address>] [--profile <profile-name>]\nIf --tokenAddress is provided, prints ERC-20 balance and decimals-derived units."
      },
      {
        "title": "grant",
        "body": "Create, sign, and store a delegation with a predefined scope.\n\ngator grant --to <to-address> --scope <type> [scope flags] [--profile <profile-name>]\n\nScope flags:\n\nToken scopes: --tokenAddress <token-address>, --maxAmount <amount>, --tokenId <id>\nPeriodic scopes: --periodAmount <amount>, --periodDuration <seconds>, --startDate <timestamp>\nStreaming scopes: --amountPerSecond <amount>, --initialAmount <amount>, --startTime <timestamp>\nFunction call scope: --targets <addresses>, --selectors <sigs>, --valueLte <ether>\nOwnership transfer: --contractAddress <contract-address>\n\nSupported scopes:\n\nerc20TransferAmount\nerc20PeriodTransfer\nerc20Streaming\nerc721Transfer\nnativeTokenTransferAmount\nnativeTokenPeriodTransfer\nnativeTokenStreaming\nfunctionCall\nownershipTransfer\n\nGrant flags per scope:\n\nScopeRequired FlagsOptional Flagserc20TransferAmount--tokenAddress, --maxAmounterc20PeriodTransfer--tokenAddress, --periodAmount, --periodDuration--startDateerc20Streaming--tokenAddress, --amountPerSecond, --initialAmount, --maxAmount--startTimeerc721Transfer--tokenAddress, --tokenIdnativeTokenTransferAmount--maxAmountnativeTokenPeriodTransfer--periodAmount, --periodDuration--startDatenativeTokenStreaming--amountPerSecond, --initialAmount, --maxAmount--startTimefunctionCall--targets, --selectors--valueLteownershipTransfer--contractAddress\n\n--startDate and --startTime default to the current time (unix seconds) when omitted.\n--valueLte sets the max native token value per call for functionCall scopes."
      },
      {
        "title": "redeem",
        "body": "Redeem a stored delegation using a specific action type.\n\ngator redeem --from <from-address> --action <type> [action flags] [--profile <profile-name>]\n\nSupported action types: erc20Transfer, erc721Transfer, nativeTransfer, functionCall, ownershipTransfer, raw\n\nAction-specific flags:\n\nerc20Transfer: --tokenAddress, --to, --amount\nerc721Transfer: --tokenAddress, --to, --tokenId\nnativeTransfer: --to, --amount\nfunctionCall: --target, --function, --args, --value\nownershipTransfer: --contractAddress, --to\nraw: --target, --callData, --value"
      },
      {
        "title": "revoke",
        "body": "Revoke a delegation on-chain. Revokes the first matching delegation.\n\ngator revoke --to <to-address> [--profile <profile-name>]"
      },
      {
        "title": "inspect",
        "body": "Inspect delegations for your account.\n\ngator inspect [--from <from-address>] [--to <to-address>] [--profile <profile-name>]\nWith no filters, prints both Given and Received.\nPrinted fields: From, To, Authority, Caveats count, Signed flag."
      },
      {
        "title": "Redeem Flags per Action",
        "body": "ActionRequired Flagserc20Transfer--tokenAddress, --to, --amounterc721Transfer--tokenAddress, --to, --tokenIdnativeTransfer--to, --amountfunctionCall--target, --function, --argsownershipTransfer--contractAddress, --toraw--target, --callData"
      },
      {
        "title": "Example Flows",
        "body": "Initialize and upgrade:\n\ngator init --profile <profile-name>\ngator create --profile <profile-name>\n\nGrant an ERC-20 transfer delegation:\n\ngator grant --profile <profile-name> --to <to-address> --scope erc20TransferAmount \\\n  --tokenAddress <token-address> --maxAmount 50\n\nRedeem an ERC-20 transfer:\n\ngator redeem --profile <profile-name> --from <from-address> --action erc20Transfer \\\n  --tokenAddress <token-address> --to <to-address> --amount 10\n\nRedeem a native transfer:\n\ngator redeem --profile <profile-name> --from <from-address> --action nativeTransfer \\\n  --to <to-address> --amount 0.5\n\nRedeem in raw mode:\n\ngator redeem --profile <profile-name> --from <from-address> --action raw \\\n  --target <contract-address> --callData 0xa9059cbb...\n\nInspect delegations:\n\ngator inspect --profile <profile-name>\ngator inspect --profile <profile-name> --from <from-address>\ngator inspect --profile <profile-name> --to <to-address>\n\nRevoke a delegation:\n\ngator revoke --profile <profile-name> --to <to-address>"
      },
      {
        "title": "Operational Notes",
        "body": "Private key security: This is alpha version. Private keys are stored in plaintext JSON. Never use accounts with significant funds.\n--from refers to the delegator address; --to refers to the delegate/recipient.\n--targets and --selectors are comma-separated lists.\n--function accepts a human-readable Solidity function signature like \"approve(address,uint256)\". Do not pass a 4-byte selector (e.g. 0x095ea7b3) — the CLI derives the selector from the signature automatically.\n--startDate and --startTime accept unix timestamps in seconds. When omitted, they default to the current time.\n--action is required for redeem and must be one of: erc20Transfer, erc721Transfer, nativeTransfer, functionCall, ownershipTransfer, raw.\nSupported chains for --chain in gator init: base (default), baseSepolia, sepolia."
      }
    ],
    "body": "Quick Reference\n\nUse this skill to run the gator CLI from the repo and to choose the correct command/flags for delegation workflows.\n\nInstallation\nnpm install -g @metamask/gator-cli\n\nCLI Overview\nBinary name: gator\nDefault profile: default\nConfig path: ~/.gator-cli/permissions.json (or ~/.gator-cli/profiles/<profile-name>.json)\nDelegations local cache: ~/.gator-cli/delegations/<profile-name>.json when storage not configured\nConfiguration Requirements\n\nEdit the profile config after gator init:\n\n{\n  \"delegationStorage\": {\n    \"apiKey\": \"your-api-key\",\n    \"apiKeyId\": \"your-api-key-id\"\n  },\n  \"rpcUrl\": \"https://your-rpc-url.com\"\n}\n\ndelegationStorage is optional; when missing, delegations are stored locally.\nrpcUrl is required for on-chain actions.\nCommands\ninit\n\nGenerate a private key and save config. Errors if the profile already exists.\n\ngator init [--chain <chain>] [--profile <profile-name>]\n--chain values: base (default), baseSepolia, sepolia\n--profile default: default\nPrints: address, chain, and config file path.\ncreate\n\nUpgrade an EOA to an EIP-7702 smart account. Uses the chain in your profile config.\n\ngator create [--profile <profile-name>]\nRequires the account to be funded with native token first.\nPrints: address, chain, and the upgrade transaction hash.\nshow\n\nDisplay the EOA address for a profile.\n\ngator show [--profile <profile-name>]\nstatus\n\nCheck config and on-chain account status.\n\ngator status [--profile <profile-name>]\nPrints: address, chain, config upgrade status, on-chain code presence, storage and RPC URL config.\nbalance\n\nShow native balance and optional ERC-20 balance.\n\ngator balance [--tokenAddress <address>] [--profile <profile-name>]\nIf --tokenAddress is provided, prints ERC-20 balance and decimals-derived units.\ngrant\n\nCreate, sign, and store a delegation with a predefined scope.\n\ngator grant --to <to-address> --scope <type> [scope flags] [--profile <profile-name>]\n\nScope flags:\n\nToken scopes: --tokenAddress <token-address>, --maxAmount <amount>, --tokenId <id>\nPeriodic scopes: --periodAmount <amount>, --periodDuration <seconds>, --startDate <timestamp>\nStreaming scopes: --amountPerSecond <amount>, --initialAmount <amount>, --startTime <timestamp>\nFunction call scope: --targets <addresses>, --selectors <sigs>, --valueLte <ether>\nOwnership transfer: --contractAddress <contract-address>\n\nSupported scopes:\n\nerc20TransferAmount\nerc20PeriodTransfer\nerc20Streaming\nerc721Transfer\nnativeTokenTransferAmount\nnativeTokenPeriodTransfer\nnativeTokenStreaming\nfunctionCall\nownershipTransfer\n\nGrant flags per scope:\n\nScope\tRequired Flags\tOptional Flags\nerc20TransferAmount\t--tokenAddress, --maxAmount\t\nerc20PeriodTransfer\t--tokenAddress, --periodAmount, --periodDuration\t--startDate\nerc20Streaming\t--tokenAddress, --amountPerSecond, --initialAmount, --maxAmount\t--startTime\nerc721Transfer\t--tokenAddress, --tokenId\t\nnativeTokenTransferAmount\t--maxAmount\t\nnativeTokenPeriodTransfer\t--periodAmount, --periodDuration\t--startDate\nnativeTokenStreaming\t--amountPerSecond, --initialAmount, --maxAmount\t--startTime\nfunctionCall\t--targets, --selectors\t--valueLte\nownershipTransfer\t--contractAddress\t\n--startDate and --startTime default to the current time (unix seconds) when omitted.\n--valueLte sets the max native token value per call for functionCall scopes.\nredeem\n\nRedeem a stored delegation using a specific action type.\n\ngator redeem --from <from-address> --action <type> [action flags] [--profile <profile-name>]\n\nSupported action types: erc20Transfer, erc721Transfer, nativeTransfer, functionCall, ownershipTransfer, raw\n\nAction-specific flags:\n\nerc20Transfer: --tokenAddress, --to, --amount\nerc721Transfer: --tokenAddress, --to, --tokenId\nnativeTransfer: --to, --amount\nfunctionCall: --target, --function, --args, --value\nownershipTransfer: --contractAddress, --to\nraw: --target, --callData, --value\nrevoke\n\nRevoke a delegation on-chain. Revokes the first matching delegation.\n\ngator revoke --to <to-address> [--profile <profile-name>]\ninspect\n\nInspect delegations for your account.\n\ngator inspect [--from <from-address>] [--to <to-address>] [--profile <profile-name>]\nWith no filters, prints both Given and Received.\nPrinted fields: From, To, Authority, Caveats count, Signed flag.\nRedeem Flags per Action\nAction\tRequired Flags\nerc20Transfer\t--tokenAddress, --to, --amount\nerc721Transfer\t--tokenAddress, --to, --tokenId\nnativeTransfer\t--to, --amount\nfunctionCall\t--target, --function, --args\nownershipTransfer\t--contractAddress, --to\nraw\t--target, --callData\nExample Flows\n\nInitialize and upgrade:\n\ngator init --profile <profile-name>\ngator create --profile <profile-name>\n\n\nGrant an ERC-20 transfer delegation:\n\ngator grant --profile <profile-name> --to <to-address> --scope erc20TransferAmount \\\n  --tokenAddress <token-address> --maxAmount 50\n\n\nRedeem an ERC-20 transfer:\n\ngator redeem --profile <profile-name> --from <from-address> --action erc20Transfer \\\n  --tokenAddress <token-address> --to <to-address> --amount 10\n\n\nRedeem a native transfer:\n\ngator redeem --profile <profile-name> --from <from-address> --action nativeTransfer \\\n  --to <to-address> --amount 0.5\n\n\nRedeem in raw mode:\n\ngator redeem --profile <profile-name> --from <from-address> --action raw \\\n  --target <contract-address> --callData 0xa9059cbb...\n\n\nInspect delegations:\n\ngator inspect --profile <profile-name>\ngator inspect --profile <profile-name> --from <from-address>\ngator inspect --profile <profile-name> --to <to-address>\n\n\nRevoke a delegation:\n\ngator revoke --profile <profile-name> --to <to-address>\n\nOperational Notes\nPrivate key security: This is alpha version. Private keys are stored in plaintext JSON. Never use accounts with significant funds.\n--from refers to the delegator address; --to refers to the delegate/recipient.\n--targets and --selectors are comma-separated lists.\n--function accepts a human-readable Solidity function signature like \"approve(address,uint256)\". Do not pass a 4-byte selector (e.g. 0x095ea7b3) — the CLI derives the selector from the signature automatically.\n--startDate and --startTime accept unix timestamps in seconds. When omitted, they default to the current time.\n--action is required for redeem and must be one of: erc20Transfer, erc721Transfer, nativeTransfer, functionCall, ownershipTransfer, raw.\nSupported chains for --chain in gator init: base (default), baseSepolia, sepolia."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/AyushBherwani1998/gator-cli",
    "publisherUrl": "https://clawhub.ai/AyushBherwani1998/gator-cli",
    "owner": "AyushBherwani1998",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/gator-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/gator-cli",
    "agentUrl": "https://openagent3.xyz/skills/gator-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/gator-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/gator-cli/agent.md"
  }
}