{
  "schemaVersion": "1.0",
  "item": {
    "slug": "viam-cli",
    "name": "This skill informs the agent how to use Viam CLI",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/hexbabe/viam-cli",
    "canonicalUrl": "https://clawhub.ai/hexbabe/viam-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/viam-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=viam-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",
      "slug": "viam-cli",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-09T23:57:35.257Z",
      "expiresAt": "2026-05-16T23:57:35.257Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=viam-cli",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=viam-cli",
        "contentDisposition": "attachment; filename=\"viam-cli-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "viam-cli"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/viam-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/viam-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/viam-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/viam-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/viam-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": "Comprehensive Viam CLI Management Skill",
        "body": "This skill allows the agent to interact with the Viam robotics platform across all available CLI surfaces, including initial setup, deployment, data management, and the local developer loop."
      },
      {
        "title": "Security & Scoping Guardrails",
        "body": "No hardcoded credentials: Never ask the user to paste an API key or Token into the chat. Rely on OpenClaw's environment variable injection. If unauthenticated, instruct the user to run viam login in their secure terminal.\nRead-first approach: Always prefer listing resources (e.g., list, describe) before attempting mutations or deletions.\nDestructive operations: Always confirm with the user before running any delete command across datasets, data pipelines, or machine data."
      },
      {
        "title": "Initialization & Installation (First-Time Setup)",
        "body": "Before attempting to run any viam commands, verify if the CLI is installed by running viam version or checking the system path.\n\nIf the viam CLI is NOT installed:\n\nSTOP and ask for permission: You must explicitly ask the user: \"The Viam CLI is not installed on your system. Would you like me to install it via Homebrew?\"\nExecute Installation (Upon Approval Only): If the user grants permission, run the following commands sequentially:\n\nbrew tap viamrobotics/brews\nbrew install viam\n\n\nVerify: Once installed, run viam version to confirm success, then instruct the user to run viam login to authenticate."
      },
      {
        "title": "Authentication & Profiles",
        "body": "viam login - Authenticates the session (opens a browser or returns a URL).\nviam login api-key --key-id <id> --key <secret> - Authenticates non-interactively via API key.\nviam logout - Logs out of the current Viam session.\nviam whoami - Displays the current authenticated profile/user.\nviam profiles - Manages local CLI profiles."
      },
      {
        "title": "Organizations & Locations",
        "body": "viam organizations list - Lists all organizations the user has access to.\nviam locations list - Lists locations belonging to an organization."
      },
      {
        "title": "Fleet & Machine Management (Aliases: machine, robots)",
        "body": "viam machines list - Lists all machines in an organization/location.\nviam machines logs - Retrieves logs from a specific machine for debugging.\nviam machines api-key create - Generates a new machine part API key for programmatic access.\nviam machines part shell --organization=<org> --location=<loc> --machine=<id> - Opens a remote shell to a specific machine part (Requires the ViamShellDanger fragment on the machine).\nviam machines part cp - Copies files to/from a remote machine over Viam's WebRTC tunnel."
      },
      {
        "title": "Modules, Hot-Reloading, & Registry",
        "body": "viam module generate - Interactively scaffolds a new module. Can bypass prompts using flags.\nviam module reload --part-id <machine-part-id> - (Hot Reloading) Bundles local module code, deploys it to the target machine via WebRTC, registers it as a local module, and restarts it.\nviam module local-app-testing --app-url <url> - Tests a custom Viam web application locally against machine data.\nviam module create - Creates the module entity in the Viam cloud registry.\nviam module upload --version <version> --platform <platform> <module-path> - Bundles and uploads a finished module to the Viam Registry.\nviam packages - Manages individual software packages."
      },
      {
        "title": "Machine Data (Uploads, Syncs, & Databases)",
        "body": "viam data export tabular - Exports sensor/tabular data to a specified destination.\nviam data export binary - Exports image/binary data to a specified destination.\nviam data delete tabular - Deletes tabular data from the Viam Cloud.\nviam data delete binary - Deletes binary data from the Viam Cloud.\nviam data tag - Adds or removes tags from data matching specific IDs.\nviam data database configure - Creates/modifies a database user for MongoDB Atlas Data Federation.\nviam data database hostname - Retrieves the MongoDB Atlas Data Federation hostname."
      },
      {
        "title": "Datasets (For Machine Learning)",
        "body": "viam dataset create - Creates a new dataset.\nviam dataset rename - Renames an existing dataset.\nviam dataset list - Lists datasets for an organization or by specific IDs.\nviam dataset delete - Deletes a specified dataset.\nviam dataset data add - Adds images/binary data to a dataset.\nviam dataset data remove - Removes images/binary data from a dataset.\nviam dataset export - Downloads all data contained within a dataset."
      },
      {
        "title": "Data Pipelines (Precompute & Transformations)",
        "body": "viam datapipelines create - Creates a new data pipeline.\nviam datapipelines describe - Gets detailed information about a specific data pipeline.\nviam datapipelines delete - Deletes a data pipeline.\nviam datapipelines enable - Resumes executing a disabled data pipeline.\nviam datapipelines disable - Stops executing a data pipeline without deleting it.\nviam datapipelines list - Lists all data pipelines in an organization."
      },
      {
        "title": "Machine Learning (Training & Inference)",
        "body": "viam train - Initiates an ML model training job in the Viam cloud.\nviam training-script - Manages scripts utilized during custom ML training runs.\nviam infer - Runs quick inferences against a model directly from the CLI."
      },
      {
        "title": "Metadata & Diagnostics",
        "body": "viam metadata - Retrieves metadata related to the Viam configuration or platform state.\nviam parse-ftdc - Parses Full-Time Data Capture (FTDC) diagnostic data files generated by viam-server.\nviam version - Prints the currently installed version of the Viam CLI."
      },
      {
        "title": "⚠️ Fallback & Troubleshooting Protocol (CRITICAL)",
        "body": "The Viam platform evolves rapidly. If any viam command fails, returns a syntax error, or complains about an unrecognized flag, you MUST adhere to the following fallback protocol:\n\nRead the local help text: Immediately run --help on the failing command or subcommand (e.g., viam module reload --help or viam datapipelines --help) to read the exact syntax required by the user's installed binary.\nSuggest an Upgrade: If a requested root command or feature does not exist locally, the user is likely running an outdated version. Advise them to upgrade by explicitly asking for permission to run brew upgrade viam.\nDo not hallucinate flags: Never guess a flag or command structure. Always defer to the local CLI's help output if execution fails."
      }
    ],
    "body": "Comprehensive Viam CLI Management Skill\n\nThis skill allows the agent to interact with the Viam robotics platform across all available CLI surfaces, including initial setup, deployment, data management, and the local developer loop.\n\nSecurity & Scoping Guardrails\nNo hardcoded credentials: Never ask the user to paste an API key or Token into the chat. Rely on OpenClaw's environment variable injection. If unauthenticated, instruct the user to run viam login in their secure terminal.\nRead-first approach: Always prefer listing resources (e.g., list, describe) before attempting mutations or deletions.\nDestructive operations: Always confirm with the user before running any delete command across datasets, data pipelines, or machine data.\nInitialization & Installation (First-Time Setup)\n\nBefore attempting to run any viam commands, verify if the CLI is installed by running viam version or checking the system path.\n\nIf the viam CLI is NOT installed:\n\nSTOP and ask for permission: You must explicitly ask the user: \"The Viam CLI is not installed on your system. Would you like me to install it via Homebrew?\"\nExecute Installation (Upon Approval Only): If the user grants permission, run the following commands sequentially:\nbrew tap viamrobotics/brews\nbrew install viam\nVerify: Once installed, run viam version to confirm success, then instruct the user to run viam login to authenticate.\nComplete Viam CLI Command Reference\nAuthentication & Profiles\nviam login - Authenticates the session (opens a browser or returns a URL).\nviam login api-key --key-id <id> --key <secret> - Authenticates non-interactively via API key.\nviam logout - Logs out of the current Viam session.\nviam whoami - Displays the current authenticated profile/user.\nviam profiles - Manages local CLI profiles.\nOrganizations & Locations\nviam organizations list - Lists all organizations the user has access to.\nviam locations list - Lists locations belonging to an organization.\nFleet & Machine Management (Aliases: machine, robots)\nviam machines list - Lists all machines in an organization/location.\nviam machines logs - Retrieves logs from a specific machine for debugging.\nviam machines api-key create - Generates a new machine part API key for programmatic access.\nviam machines part shell --organization=<org> --location=<loc> --machine=<id> - Opens a remote shell to a specific machine part (Requires the ViamShellDanger fragment on the machine).\nviam machines part cp - Copies files to/from a remote machine over Viam's WebRTC tunnel.\nModules, Hot-Reloading, & Registry\nviam module generate - Interactively scaffolds a new module. Can bypass prompts using flags.\nviam module reload --part-id <machine-part-id> - (Hot Reloading) Bundles local module code, deploys it to the target machine via WebRTC, registers it as a local module, and restarts it.\nviam module local-app-testing --app-url <url> - Tests a custom Viam web application locally against machine data.\nviam module create - Creates the module entity in the Viam cloud registry.\nviam module upload --version <version> --platform <platform> <module-path> - Bundles and uploads a finished module to the Viam Registry.\nviam packages - Manages individual software packages.\nMachine Data (Uploads, Syncs, & Databases)\nviam data export tabular - Exports sensor/tabular data to a specified destination.\nviam data export binary - Exports image/binary data to a specified destination.\nviam data delete tabular - Deletes tabular data from the Viam Cloud.\nviam data delete binary - Deletes binary data from the Viam Cloud.\nviam data tag - Adds or removes tags from data matching specific IDs.\nviam data database configure - Creates/modifies a database user for MongoDB Atlas Data Federation.\nviam data database hostname - Retrieves the MongoDB Atlas Data Federation hostname.\nDatasets (For Machine Learning)\nviam dataset create - Creates a new dataset.\nviam dataset rename - Renames an existing dataset.\nviam dataset list - Lists datasets for an organization or by specific IDs.\nviam dataset delete - Deletes a specified dataset.\nviam dataset data add - Adds images/binary data to a dataset.\nviam dataset data remove - Removes images/binary data from a dataset.\nviam dataset export - Downloads all data contained within a dataset.\nData Pipelines (Precompute & Transformations)\nviam datapipelines create - Creates a new data pipeline.\nviam datapipelines describe - Gets detailed information about a specific data pipeline.\nviam datapipelines delete - Deletes a data pipeline.\nviam datapipelines enable - Resumes executing a disabled data pipeline.\nviam datapipelines disable - Stops executing a data pipeline without deleting it.\nviam datapipelines list - Lists all data pipelines in an organization.\nMachine Learning (Training & Inference)\nviam train - Initiates an ML model training job in the Viam cloud.\nviam training-script - Manages scripts utilized during custom ML training runs.\nviam infer - Runs quick inferences against a model directly from the CLI.\nMetadata & Diagnostics\nviam metadata - Retrieves metadata related to the Viam configuration or platform state.\nviam parse-ftdc - Parses Full-Time Data Capture (FTDC) diagnostic data files generated by viam-server.\nviam version - Prints the currently installed version of the Viam CLI.\n⚠️ Fallback & Troubleshooting Protocol (CRITICAL)\n\nThe Viam platform evolves rapidly. If any viam command fails, returns a syntax error, or complains about an unrecognized flag, you MUST adhere to the following fallback protocol:\n\nRead the local help text: Immediately run --help on the failing command or subcommand (e.g., viam module reload --help or viam datapipelines --help) to read the exact syntax required by the user's installed binary.\nSuggest an Upgrade: If a requested root command or feature does not exist locally, the user is likely running an outdated version. Advise them to upgrade by explicitly asking for permission to run brew upgrade viam.\nDo not hallucinate flags: Never guess a flag or command structure. Always defer to the local CLI's help output if execution fails."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/hexbabe/viam-cli",
    "publisherUrl": "https://clawhub.ai/hexbabe/viam-cli",
    "owner": "hexbabe",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/viam-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/viam-cli",
    "agentUrl": "https://openagent3.xyz/skills/viam-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/viam-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/viam-cli/agent.md"
  }
}