dfinity/icskills

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.

First seen Mar 30, 2026

Installation

$ npx skills add dfinity/icskills --skill canhelp

Also in this package

Other skills from dfinity/icskills · top by installs.

npx skills add dfinity/icskills

Browse all from dfinity/icskills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 34
License LICENSE
Default branch main
Open issues 24
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseApache-2.0
Compatibilityicp-cli >= 0.1.0
Allowed toolsBash(./scripts/resolve-canister-id.sh *), Bash(./scripts/fetch-candid.sh *), Read, Grep, Glob
More metadata
title
Canister Help
category
Infrastructure

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,414 B
  • docs SUMMARY.md 267 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 162 installs

SKILL.md

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:

``bash ./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.

  1. Fetch the Candid interface using the resolved canister ID:

``bash ./scripts/fetch-candid.sh <resolved-canister-id> ` The script outputs the path to the downloaded .did` file.

  1. Read the file using the Read tool.
  1. Present the output as a readable summary with the following structure:

Canister <canister-id>

Query methods: - methodname(arg1: type1, arg2: type2) → returntype — one-line description if inferable from the name

Update methods: - methodname(arg1: type1) → returntype

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