Install
openclaw skills install @thomas202301/link42-apiopenclaw skills install @thomas202301/link42-apiThe user supplies their LINK42 key, not an upstream Ark/OpenAI/Anthropic key. Read LINK42_API_KEY from the environment (or the user's explicitly chosen private key file); never echo it, put it in a URL/command argument, bundle it, or send it to a model. Default gateway: https://www.link42.ai. Use HTTPS except explicit loopback development. Do not disable TLS or follow credential-bearing redirects.
Run python3 scripts/link42_agent.py discover. This combines authenticated /v1/models scope with public capability/price metadata where available. IDs, aliases, modality, options and prices come from the current platform, not this skill. Public visibility is not upstream entitlement or capacity proof.
Resolve human names using actual IDs/display names/aliases. Preserve version digits: V4.1 Flash and V4 Flash are distinct. If several models share a display name, compare capabilities and a real estimate or ask for the missing material choice; never silently relabel a different model.
Infer the requested task and required input/output modality. Check supported options before constructing parameters. Unknown capabilities are not permission to invent fields. Text/vision understanding is not image generation; video audio output is not an Audio/Speech API. For a creative workflow, plan text → image → video when the user requests it, preserving reference identity and each stage's IDs. Do not expand a single requested output into an unbounded batch.
Translate the user's goal into a concrete result before choosing tools: writing/reasoning/coding → text; interpreting an image/video → an understanding-capable model; editing a reference → image editing; animating or extending footage → supported video roles/modes. When no model was specified, use current capabilities and budget to make a reasonable selection; ask only if a material choice remains. A misspelled display name is not a reason to give up, but version digits cannot be discarded.
doctor checks key-authorized discovery without generating. plan --json plan.json resolves an exact model, validates known image/video options and quotes a request. workflow-plan adds estimates for 1–8 explicit stages against a total estimate budget; it never creates future assets or silently executes the plan. Refresh quotes and validate outputs between stages.
discover/estimate are non-generating. POST /v1/estimates uses the same user's pricing/discount snapshot without holding funds or invoking a provider. It currently estimates chat, image generation and video creation. An estimate can expire/change and is not settlement or provider authorization.--execute; use --max-estimate-usd when the user specifies a budget. Respect key/organization limits; do not invent credits or change prices/profit policy.video-wait/image-wait. Local timeout does not cancel the provider task; report the ID so work can resume. Cancel only when requested.succeeded is not proof storage finished; no fake percentages, output files or completion claims. Download/preview media only through the host's permitted mechanism.Resolve scripts/link42_agent.py relative to this installed skill directory, not the project's working directory (Claude Code can use ${CLAUDE_SKILL_DIR}/scripts/link42_agent.py). Run its absolute path with python3 ... --help. JSON inputs come from a file or stdin, not interpolated shell strings. Scripts use the bundled first-party standard-library Python SDK; no npm/pip install is required. If the host cannot run Python, use its authorized HTTP tool with the same API contracts and security boundaries.
Only an API key is needed for model and owned-resource calls. It does not grant browser sessions, admin configuration, another user's data, reseller status, wallet top-ups or refund authority. Key-based usage/report access additionally requires the key's usage-read permission. No Audio, Realtime, Batch, multipart image editing or arbitrary hosted OpenAI tools are currently promised. The live endpoint/model capability check wins over this file.