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.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-12
- Stars
- ★ 81
- Forks
- 17
01 前言 Front Matter
- name
- canhelp
- license
- Apache-2.0
- metadata
- { "title": "Canister Help", "category": "Infrastructure" }
- description
- 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.
- allowed-tools
- Bash(./scripts/resolve-canister-id.sh *), Bash(./scripts/fetch-candid.sh *), Read, Grep, Glob
- argument-hint
- <canister-id-or-name>
- compatibility
- icp-cli >= 0.1.0
02 资源文件 5
- 许可证LICENSE10.5 KB
- 脚本scripts/fetch-candid.sh358 B
- 脚本scripts/resolve-canister-id.sh1.1 KB
- 参考文档SOURCE.md325 B
- 参考文档TRUST.auto.yaml2.2 KB
03 SKILL.md 正文
Given a canister ID or name in $ARGUMENTS, fetch and summarize its Candid interface.
Steps
-
Resolve the canister ID by running the resolve script from the skill's base directory:
./scripts/resolve-canister-id.sh "$ARGUMENTS"If
$ARGUMENTSis 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.
-
Fetch the Candid interface using the resolved canister ID:
./scripts/fetch-candid.sh <resolved-canister-id>The script outputs the path to the downloaded
.didfile. -
Read the file using the
Readtool. -
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
icpis installed
04 同仓库更多 Skills
recipe-performance
Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold/warm/background-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout/paint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.
mexc-spot-websocket
MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.
mexc-spot-rest
MEXC Spot REST workflows for public data, signed account requests, orders, wallet/admin actions, and secure signing without exposing API keys.
mexc-futures-websocket
MEXC Futures WebSocket workflows for public streams, private account/order/position streams, ping/pong, subscriptions, and depth maintenance.
0xklen-version-and-refresh-sanctions-lists
暂无简介
verify-tests-cover-changed-lines
Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.