{
  "schemaVersion": "1.0",
  "item": {
    "slug": "triggercmd",
    "name": "TRIGGERcmd - Run commands on your computers remotely",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/rvmey/triggercmd",
    "canonicalUrl": "https://clawhub.ai/rvmey/triggercmd",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/triggercmd",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=triggercmd",
    "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-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/triggercmd"
    },
    "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/triggercmd",
    "agentPageUrl": "https://openagent3.xyz/skills/triggercmd/agent",
    "manifestUrl": "https://openagent3.xyz/skills/triggercmd/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/triggercmd/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": "TriggerCMD Skill",
        "body": "Use this skill to inspect and run TRIGGERcmd commands on any computer that is registered with the account tied to the local API token."
      },
      {
        "title": "Authentication",
        "body": "The skill supports two authentication methods (checked in order):\n\nEnvironment Variable (recommended): Set TRIGGERCMD_TOKEN to your personal API token\n\nExport it in your shell: export TRIGGERCMD_TOKEN='your-token-here'\nOr prefix individual commands: TRIGGERCMD_TOKEN='your-token-here' <command>\n\n\n\nToken File: Store token at ~/.TRIGGERcmdData/token.tkn\n\nThe file should contain only the raw token text (no quotes, spaces, or trailing newline)\nMust be permission-restricted: chmod 600 ~/.TRIGGERcmdData/token.tkn\nTo create: mkdir -p ~/.TRIGGERcmdData && read -s TOKEN && printf \"%s\" \"$TOKEN\" > ~/.TRIGGERcmdData/token.tkn && chmod 600 ~/.TRIGGERcmdData/token.tkn\n\nObtaining your token:\n\nLog in at https://www.triggercmd.com\nNavigate to your profile/settings page\nCopy the API token (keep it secure and never share it)\n\nSecurity Warning: Never print, log, or paste your token in shared terminals or outputs."
      },
      {
        "title": "Common Environment Helpers",
        "body": "# Get token from environment variable or file (checks env var first)\nif [ -n \"$TRIGGERCMD_TOKEN\" ]; then\n  TOKEN=\"$TRIGGERCMD_TOKEN\"\nelif [ -f ~/.TRIGGERcmdData/token.tkn ]; then\n  TOKEN=$(cat ~/.TRIGGERcmdData/token.tkn)\nelse\n  echo \"Error: No token found. Set TRIGGERCMD_TOKEN env var or create ~/.TRIGGERcmdData/token.tkn\" >&2\n  exit 1\nfi\n\nAUTH_HEADER=(\"-H\" \"Authorization: Bearer $TOKEN\")\nBASE_URL=https://www.triggercmd.com/api\n\nUse the snippets above to avoid repeating the authentication logic in each command."
      },
      {
        "title": "list_commands",
        "body": "Lists every command in the account across all computers.\n\ncurl -sS \"${BASE_URL}/command/list\" \"${AUTH_HEADER[@]}\" | jq '.records[] | {computer: .computer.name, name, voice, allowParams, id, mcpToolDescription}'\n\nFormatting tips:\n\nFor quick human output, pipe through jq -r '.records[] | \"\\(.computer.name): \\(.name) (voice: \\(.voice // \"-\"))\"'.\nInclude allowParams when suggesting follow-up commands so the user knows whether parameters are allowed.\nWhen asked for a summary, group by .computer.name and present bullet points per computer."
      },
      {
        "title": "run_command",
        "body": "Run a specific command on a specific computer using the computer name and command name.\n\n# Use jq to safely construct JSON payload and prevent injection\nPAYLOAD=$(jq -n \\\n  --arg computer \"$COMPUTER\" \\\n  --arg command \"$COMMAND\" \\\n  --arg params \"$PARAMS\" \\\n  '{computer: $computer, command: $command, params: $params}')\n\ncurl -sS -X POST \"${BASE_URL}/run/trigger\" \\\n  \"${AUTH_HEADER[@]}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"$PAYLOAD\"\n\n$COMPUTER should be the computer name (e.g., \"MyLaptop\")\n$COMMAND should be the command name (e.g., \"calculator\")\nOmit the --arg params \"$PARAMS\" and params: $params from the jq command when the command does not accept parameters.\nUsing jq -n with --arg ensures all values are properly escaped and prevents JSON injection attacks.\nSuccessful responses return a confirmation plus any queued status info. Surface both to the user."
      },
      {
        "title": "Error Handling",
        "body": "Missing token file: Explain how to create ~/.TRIGGERcmdData/token.tkn and remind them to keep it private.\nInvalid token (401/403): Ask the user to regenerate the token and overwrite the file.\nComputer not found: Show the available computer names (case-insensitive match).\nCommand not found: List the commands for the requested computer; highlight commands with allowParams: true when relevant.\nAPI/network issues: Include the HTTP status and response body to aid debugging."
      },
      {
        "title": "Testing workflow",
        "body": "Verify authentication is configured:\n[ -n \"$TRIGGERCMD_TOKEN\" ] || [ -f ~/.TRIGGERcmdData/token.tkn ] || echo \"Error: No token configured\"\n\n\n\nTest API connectivity (using the helper variables above):\ncurl -sS \"${BASE_URL}/command/list\" \"${AUTH_HEADER[@]}\" | jq -r '.records[0].computer.name // \"No commands found\"'\n\n\n\nDry-run a command by listing IDs, then run with known-safe commands (e.g., toggling a harmless script) before invoking anything destructive."
      },
      {
        "title": "Security Notes",
        "body": "Never print, log, or expose the token value. Do not include it in command outputs or error messages.\nIf using the token file method, ensure ~/.TRIGGERcmdData/token.tkn has permissions set to 600 (readable only by owner).\nPrefer the TRIGGERCMD_TOKEN environment variable for temporary sessions or when you don't want to persist the token on disk.\nConfirm with the user before running commands with side effects unless they explicitly asked for it.\nRespect per-device safety constraints; if you are unsure what a command does, ask before triggering it.\nIf authentication fails, do not suggest commands that would expose the token; instead direct the user to regenerate it via the TRIGGERcmd website."
      }
    ],
    "body": "TriggerCMD Skill\n\nUse this skill to inspect and run TRIGGERcmd commands on any computer that is registered with the account tied to the local API token.\n\nAuthentication\n\nThe skill supports two authentication methods (checked in order):\n\nEnvironment Variable (recommended): Set TRIGGERCMD_TOKEN to your personal API token\n\nExport it in your shell: export TRIGGERCMD_TOKEN='your-token-here'\nOr prefix individual commands: TRIGGERCMD_TOKEN='your-token-here' <command>\n\nToken File: Store token at ~/.TRIGGERcmdData/token.tkn\n\nThe file should contain only the raw token text (no quotes, spaces, or trailing newline)\nMust be permission-restricted: chmod 600 ~/.TRIGGERcmdData/token.tkn\nTo create: mkdir -p ~/.TRIGGERcmdData && read -s TOKEN && printf \"%s\" \"$TOKEN\" > ~/.TRIGGERcmdData/token.tkn && chmod 600 ~/.TRIGGERcmdData/token.tkn\n\nObtaining your token:\n\nLog in at https://www.triggercmd.com\nNavigate to your profile/settings page\nCopy the API token (keep it secure and never share it)\n\nSecurity Warning: Never print, log, or paste your token in shared terminals or outputs.\n\nCommon Environment Helpers\n# Get token from environment variable or file (checks env var first)\nif [ -n \"$TRIGGERCMD_TOKEN\" ]; then\n  TOKEN=\"$TRIGGERCMD_TOKEN\"\nelif [ -f ~/.TRIGGERcmdData/token.tkn ]; then\n  TOKEN=$(cat ~/.TRIGGERcmdData/token.tkn)\nelse\n  echo \"Error: No token found. Set TRIGGERCMD_TOKEN env var or create ~/.TRIGGERcmdData/token.tkn\" >&2\n  exit 1\nfi\n\nAUTH_HEADER=(\"-H\" \"Authorization: Bearer $TOKEN\")\nBASE_URL=https://www.triggercmd.com/api\n\n\nUse the snippets above to avoid repeating the authentication logic in each command.\n\nlist_commands\n\nLists every command in the account across all computers.\n\ncurl -sS \"${BASE_URL}/command/list\" \"${AUTH_HEADER[@]}\" | jq '.records[] | {computer: .computer.name, name, voice, allowParams, id, mcpToolDescription}'\n\n\nFormatting tips:\n\nFor quick human output, pipe through jq -r '.records[] | \"\\(.computer.name): \\(.name) (voice: \\(.voice // \"-\"))\"'.\nInclude allowParams when suggesting follow-up commands so the user knows whether parameters are allowed.\nWhen asked for a summary, group by .computer.name and present bullet points per computer.\nrun_command\n\nRun a specific command on a specific computer using the computer name and command name.\n\n# Use jq to safely construct JSON payload and prevent injection\nPAYLOAD=$(jq -n \\\n  --arg computer \"$COMPUTER\" \\\n  --arg command \"$COMMAND\" \\\n  --arg params \"$PARAMS\" \\\n  '{computer: $computer, command: $command, params: $params}')\n\ncurl -sS -X POST \"${BASE_URL}/run/trigger\" \\\n  \"${AUTH_HEADER[@]}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"$PAYLOAD\"\n\n$COMPUTER should be the computer name (e.g., \"MyLaptop\")\n$COMMAND should be the command name (e.g., \"calculator\")\nOmit the --arg params \"$PARAMS\" and params: $params from the jq command when the command does not accept parameters.\nUsing jq -n with --arg ensures all values are properly escaped and prevents JSON injection attacks.\nSuccessful responses return a confirmation plus any queued status info. Surface both to the user.\nError Handling\nMissing token file: Explain how to create ~/.TRIGGERcmdData/token.tkn and remind them to keep it private.\nInvalid token (401/403): Ask the user to regenerate the token and overwrite the file.\nComputer not found: Show the available computer names (case-insensitive match).\nCommand not found: List the commands for the requested computer; highlight commands with allowParams: true when relevant.\nAPI/network issues: Include the HTTP status and response body to aid debugging.\nTesting workflow\n\nVerify authentication is configured:\n\n[ -n \"$TRIGGERCMD_TOKEN\" ] || [ -f ~/.TRIGGERcmdData/token.tkn ] || echo \"Error: No token configured\"\n\n\nTest API connectivity (using the helper variables above):\n\ncurl -sS \"${BASE_URL}/command/list\" \"${AUTH_HEADER[@]}\" | jq -r '.records[0].computer.name // \"No commands found\"'\n\n\nDry-run a command by listing IDs, then run with known-safe commands (e.g., toggling a harmless script) before invoking anything destructive.\n\nSecurity Notes\nNever print, log, or expose the token value. Do not include it in command outputs or error messages.\nIf using the token file method, ensure ~/.TRIGGERcmdData/token.tkn has permissions set to 600 (readable only by owner).\nPrefer the TRIGGERCMD_TOKEN environment variable for temporary sessions or when you don't want to persist the token on disk.\nConfirm with the user before running commands with side effects unless they explicitly asked for it.\nRespect per-device safety constraints; if you are unsure what a command does, ask before triggering it.\nIf authentication fails, do not suggest commands that would expose the token; instead direct the user to regenerate it via the TRIGGERcmd website."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/rvmey/triggercmd",
    "publisherUrl": "https://clawhub.ai/rvmey/triggercmd",
    "owner": "rvmey",
    "version": "1.0.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/triggercmd",
    "downloadUrl": "https://openagent3.xyz/downloads/triggercmd",
    "agentUrl": "https://openagent3.xyz/skills/triggercmd/agent",
    "manifestUrl": "https://openagent3.xyz/skills/triggercmd/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/triggercmd/agent.md"
  }
}