Communitygithub.com

HD70X/nxtpath-minimax-video

Generate videos and resume old tasks via Nxtpath's MiniMax H3, supporting first/last frames and reference images. Use when explicitly specifying Nxtpath, invoking this skill, or checking its task history; general MiniMax new tasks and official API use minimax-video, Seedance uses nxtpath-video.

What is nxtpath-minimax-video?

This skill enables video generation through the Nxtpath API using the MiniMax H3 model. It supports text-to-video, first/last frame conditioning, and reference image input. The skill manages the entire workflow: credential checking (via `NXTPATH_API_KEY`), prompt preparation, optional local image hosting on private R2, job submission with idempotency key, status polling, and final MP4 download with integrity verification. It is designed for reliability with offline task resumes, explicit job directories, and no automatic retries on failure. Use this skill for Nxtpath-specific H3 channel operations; for other MiniMax or Seedance tasks, refer to `minimax-video` or `nxtpath-video` respectively.

Works with✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/HD70X/clarkens-agent-skills/tree/HEAD/codex/skills/nxtpath-minimax-video

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Nxtpath MiniMax Video

Uses the standalone client scripts/nxtpath_minimax_video.py, fixed gateway https://api.nxtpath.ai/v1, default model minimax/minimax-h3. Parameters follow the Nxtpath H3 channel, not the MiniMax official direct API or Seedance parameters. Verified interfaces and scopes are documented in API Reference.

Configuration & Input

  • Reuses the local NXTPATH_API_KEY, environment variable takes precedence, otherwise reads ~/.config/nxtpath/env; NXTPATH_ENV_FILE can override the file path. Does not read Claude, Codex, or Grok chat credentials, and does not place the key on the command line or in task records.
  • Locates the client from this skill's actual directory. Prefers ~/.config/nxtpath/venv/bin/python; text or HTTPS image input only requires Python 3.9+. Local image hosting additionally requires boto3 from scripts/requirements.txt; configuration details are in Configuration & Recovery.
  • First reads the target project's assets and privacy conventions. Each candidate uses a new task directory, defaulting to the project's ignored tmp/artwork/generations/<run-id>/<asset-id>/<attempt-id>/; when no project exists, uses the current workspace's temp directory or user-specified location. Does not overwrite old tasks or automatically replace formal resources.
  • Default sample is 4 seconds, 720p, 16:9. Duration is an integer between 4–12 seconds, resolution only 720p / 960p / 2k, aspect ratio 21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16.
  • Three input modes: text-only; --first-frame and/or --last-frame (max one each); repeatable --ref-image for ordinary reference images. First/last frames and ordinary reference images cannot be mixed; reference audio or reference video are not supported. Ordinary reference images do not have the role of first/last frames.
  • Images use HTTPS URL, or local PNG/JPEG/WebP (max 20 MiB each). Rejects data URLs. Overly large images require saving a reduced copy first without modifying the user's original.

Generation & Resumption

When the user explicitly requests video generation, complete one candidate; batch and rework counts follow the current convention. Merely checking configuration, researching interfaces, or creating a skill does not authorize paid generation. Without an agreed-upon extra attempt, do not automatically regenerate failed tasks or switch models.

  1. Use doctor --check-api to read-only verify credentials, model_available, and model_supported; if any model check is false, stop submission and verify the directory or configuration.
  2. According to the user's request, organize action, shot, duration, and any characters/props to maintain; write the prompt into a UTF-8 file. Use prepare to freeze the prompt, parameters, and input snapshot; this command runs offline and does not generate video.
  3. If local images exist, run host, using the configured private R2, reuse content-hash objects, issue a 24-hour GET and verify the download hash. This operation sends the input to R2 and the video provider; stop on hosting failure, do not automatically switch to a public image host or account. Text-only or existing HTTPS images can skip this step.
  4. Run submit once. It persists an exclusive submission record and idempotency key before the paid POST; then uses a separate status query. Service status: Pending / Running / Success / Failure / Expired. While waiting, use host-interruptible waiting with progress communication, do not poll for minutes in a long shell call.
  5. On Success, use download to download and verify the MP4. Retry only the download on failure; Failure / Expired are terminal states for the task—report the result and do not automatically create a new paid task.
  6. For cross-conversation resumption, use the original job path, first inspect, then status / download. Do not re-POST when a submission record exists, on timeout, disconnection, or missing task ID; if the result is uncertain, check with the provider using private records, do not bypass with a new attempt.

Command examples (PY, CLIENT, JOB, PROMPT_FILE and image variables refer to actual paths; JOB must not already exist):

"$PY" "$CLIENT" doctor --check-api
"$PY" "$CLIENT" prepare --job "$JOB" --prompt-file "$PROMPT_FILE" --first-frame "$FIRST_FRAME" --last-frame "$LAST_FRAME" --duration 4 --resolution 720p --ratio 16:9
"$PY" "$CLIENT" host --job "$JOB"
"$PY" "$CLIENT" submit --job "$JOB"
"$PY" "$CLIENT" status --job "$JOB"
"$PY" "$CLIENT" download --job "$JOB"

Omit --last-frame when only the first frame is provided; use --ref-image instead of both frame parameters for ordinary reference images; omit all image parameters and host for text-to-video. The local NXTPATH_MINIMAX_MODEL or explicit --model can only select supported H3 IDs, and does not fall back to other channels.

Delivery

Deliver a playable local video.mp4 and the task directory, displaying the video with absolute path. State the actual parameters, and whether the original speed, motion, and first/last frames were reviewed; HTTP success does not guarantee visual quality or character consistency. The interface supporting first/last frames does not imply pixel-perfect assurance; the result is subject to the actual video.

The prompt, signed image URLs, task handle, and response are stored in records readable only by the current user; do not paste the entire record into chat or submit to Git. The console shows only the task handle fingerprint. Video bearer tokens are sent only to this gateway's corresponding artifact handle; subsequent HTTPS media downloads use anonymous requests.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Related Skills