skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
dfinity/icskills185 installs

canhelp

Display a human-readable summary of a canister's interface given its mainnet canister ID or a human-readable name. Like --help but for canisters. Only for mainnet canisters — for local canisters, read the generated .did file in your project directly.

How do I install this agent skill?

npx skills add https://github.com/dfinity/icskills --skill canhelp
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubwarn

    The skill is functional for summarizing Internet Computer canisters but contains a dynamic code execution vulnerability in a helper script. Specifically, one script improperly interpolates user-provided input into a Python execution command, which could allow a malicious user to execute arbitrary code on the host system. It also interacts with official vendor APIs to fetch canister metadata.

  • Socketwarn

    1 alert: gptSecurity

  • Snykwarn

    Risk: MEDIUM · 1 issue

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

Given a canister ID or name in $ARGUMENTS, fetch and summarize its Candid interface.

Steps

  1. Resolve the canister ID by running the resolve script from the skill's base directory:

    ./scripts/resolve-canister-id.sh "$ARGUMENTS"
    

    If $ARGUMENTS is already a valid principal, the script echoes it back. Otherwise, it queries the IC Dashboard API and outputs matches as <canister-id> <name> (one per line).

    • If there is a single result, clearly display the resolved canister ID and use it directly.
    • If there are multiple results, present the list to the user and ask them to pick one before continuing.
  2. Fetch the Candid interface using the resolved canister ID:

    ./scripts/fetch-candid.sh <resolved-canister-id>
    

    The script outputs the path to the downloaded .did file.

  3. Read the file using the Read tool.

  4. Present the output as a readable summary with the following structure:

    Canister <canister-id>

    Query methods:

    • method_name(arg1: type1, arg2: type2) → return_type — one-line description if inferable from the name

    Update methods:

    • method_name(arg1: type1) → return_type

    Types:

    • List any custom record/variant types defined in the interface, with their fields

Guidelines

  • Group methods by query vs update
  • Sort methods alphabetically within each group
  • For complex nested types, show the top-level structure and note nesting
  • If the candid is very large (>100 methods), show a summary count and list only the most important-looking methods, offering to show the full list on request
  • If the fetch succeeds, but the Candid interface is empty,explain that the canister is not exposing its Candid interface in the wasm metadata
  • If the fetch fails, suggest the user verify the canister ID and that icp is installed

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/dfinity/icskills/canhelp">View canhelp on skillZs</a>