opencode Skill

muapi-workflow

Build, run, and visualize multi-step AI generation workflows. The AI architect translates natural language descriptions into connected node graphs — chain image generation, video creation, enhancement, and editing into automated pipelines.

LLM Mart · 0 points · 9 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download samuraigpt-generative-media-skills-library_workflow-74df8cb.zip · 4 KB
Part of samuraigpt/generative-media-skills — 72 skills

Install

skills CLI npx skills add https://github.com/SamurAIGPT/Generative-Media-Skills/tree/main/library/workflow
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install samuraigpt-generative-media-skills@llmmart
Git git clone https://github.com/SamurAIGPT/Generative-Media-Skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole samuraigpt/generative-media-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

AI Workflow Builder

Chain any combination of muapi.ai generation steps into automated pipelines. The AI architect converts your plain-language description into a runnable node graph.

Prerequisites

Always ensure the muapi CLI is up-to-date before running any commands. Reinstall from source at the start of every session:

pip install --upgrade /path/to/muapi-cli

Replace /path/to/muapi-cli with the actual path to the muapi-cli directory in the workspace (the directory containing pyproject.toml).

Core Operations

  1. Generate (generate-workflow.sh) — AI architect creates a workflow from a description
  2. Discover (discover-workflow.sh) — Find a relevant existing workflow by natural language
  3. Edit (generate-workflow.sh --workflow-id) — Modify an existing workflow with a prompt
  4. Interactive Run (interactive-run.sh) — Prompt for inputs and execute a workflow
  5. Run (run-workflow.sh) — Execute a workflow, poll node-by-node, collect outputs
  6. CLI (muapi workflow) — Full CRUD + visualization directly from the terminal

Agent Guided Discovery & Selection

As an AI agent, you have the ability to read and understand the purpose of available workflows to select the best one for the user's task (e.g., "create a UGC video").

  1. Discover: Fetch the catalog of available workflows and their descriptions in JSON format.
    muapi workflow discover --output-json
    
  2. Match (Internal Reasoning): Use your LLM capabilities to analyze the name, category, and description fields of the returned workflows. Find the best match for the user's intent.
  3. Analyze: If you find a promising candidate, inspect its structure to ensure it has the necessary nodes and parameters.
    muapi workflow get <workflow_id>
    
    CRITICAL RULE: The output of muapi workflow get will include an "API Inputs" table. You MUST read this table to understand what inputs are required.
  4. Choose & Confirm & Prompt User:
    • If one workflow is a perfect match, you MUST ask the user to provide the exact values for the required API inputs before executing it. Never invent or guess input values (like prompts, URLs, etc.) on your own.
    • If multiple workflows are highly relevant, present the options to the user with their descriptions and ask them to confirm which one to use, and also ask for the required inputs.
    • If no workflow matches the user's complex request, offer to architect a new one using muapi workflow create.

Example Agent Reasoning

"The user wants a product promo video. I fetched the catalog using discover. I see two potential workflows:

  1. wf_123: 'Product promo with background music'
  2. wf_456: 'Simple video gen' I will analyze wf_123 with get. It has the required nodes. I will suggest wf_123 or just run it if the match is precise."

Protocol: Building a Workflow

Step 1 — Describe your pipeline

muapi workflow create "take a text prompt, generate an image with flux-dev, then upscale it to 4K"

The architect returns a workflow with a unique ID and a node graph. Save the ID.

Step 2 — Inspect and visualize

# Rich ASCII node graph in the terminal
muapi workflow get <workflow_id>

# Or raw JSON
muapi workflow get <workflow_id> --output-json

Step 3 — Run it

# Run with specific inputs
muapi workflow execute <workflow_id> \
  --input "node1.prompt=a glowing crystal cave at midnight"

# Use --download to pull results locally
muapi workflow execute <workflow_id> \
  --input "node1.prompt=a sunset" \
  --download ./outputs

Step 4 — Discovery (Optional)

If you want to reuse an existing workflow instead of creating a new one:

# Search by keywords
muapi workflow discover "ugc video"

Step 5 — Interactive Execution

Run a workflow and have the CLI prompt you for each required input:

muapi workflow run-interactive <workflow_id>

Workflow Examples

Image Pipelines

# Text → Image → Upscale
muapi workflow create "take a text prompt, generate with flux-dev, upscale the result"

# Text → Image → Background removal → Product shot
muapi workflow create "generate a product image with hidream, remove background, create professional product shot"

Video Pipelines

# Text → Video
muapi workflow create "generate a 10-second cinematic video from a text prompt using kling-master"

# Image → Video → Lipsync
muapi workflow create "animate an input image with seedance, then apply lipsync from an audio file"

Editing an Existing Workflow

# Add a step
muapi workflow edit <id> --prompt "add a face-swap step after the image generation"

# Swap a model
muapi workflow edit <id> --prompt "change the video model from kling to veo3"

CLI Reference

# List all your workflows
muapi workflow list

# Browse templates
muapi workflow templates

# Generate new workflow
muapi workflow create "text → flux image → upscale → face swap"

# Visualize a workflow
muapi workflow get <id>

# Execute with inputs
muapi workflow execute <id> --input "node1.prompt=a sunset"

# Monitor a run
muapi workflow status <run_id>

# Get outputs
muapi workflow outputs <run_id> --download ./results

# Edit with AI
muapi workflow edit <id> --prompt "add lipsync at the end"

# Rename / delete
muapi workflow rename <id> --name "Product Pipeline v2"
muapi workflow delete <id>

MCP Tools (for AI agents)

Tool Description
muapi_workflow_list List user's workflows
muapi_workflow_create AI architect: prompt → workflow
muapi_workflow_get Get workflow definition + node graph
muapi_workflow_execute Run with specific inputs
muapi_workflow_status Node-by-node run status
muapi_workflow_outputs Final output URLs

Constraints

  • Workflows can contain any combination of muapi.ai nodes (image, video, audio, enhance, edit)
  • Node outputs are automatically wired as inputs to downstream nodes
  • --sync mode waits up to 120s for generation; use --async for complex workflows and poll separately
  • Run timeouts: 10 minutes maximum per workflow execution
Files (generative-media-skills)
  • scripts
    • discover-workflow.sh 397 B
      #!/bin/bash
      # Assistant Skill: Discover Relevant Workflow
      # Thin wrapper around muapi CLI.
      
      QUERY=""
      LIMIT=5
      
      while [[ $# -gt 0 ]]; do
          case $1 in
              --query|-q) QUERY="$2"; shift 2 ;;
              --limit)    LIMIT="$2"; shift 2 ;;
              *) shift ;;
          esac
      done
      
      if [ -z "$QUERY" ]; then echo "Error: --query is required" >&2; exit 1; fi
      
      muapi workflow discover "$QUERY" --limit "$LIMIT"
      
    • generate-workflow.sh 892 B
      #!/bin/bash
      # Expert Skill: AI Workflow Architect
      # Thin wrapper around muapi CLI.
      
      PROMPT=""
      WORKFLOW_ID=""   # Set to edit an existing workflow
      ASYNC=false
      VIEW=false
      JSON_ONLY=false
      
      while [[ $# -gt 0 ]]; do
          case $1 in
              --prompt|-p)       PROMPT="$2"; shift 2 ;;
              --workflow-id|-w)  WORKFLOW_ID="$2"; shift 2 ;;
              --async)           ASYNC=true; shift ;;
              --view)            VIEW=true; shift ;;
              --json)            JSON_ONLY=true; shift ;;
              *) shift ;;
          esac
      done
      
      if [ -z "$PROMPT" ]; then echo "Error: --prompt is required" >&2; exit 1; fi
      
      ARGS=()
      [ "$ASYNC" = true ] && ARGS+=("--async")
      [ "$VIEW" = true ] && ARGS+=("--view")
      [ "$JSON_ONLY" = true ] && ARGS+=("--output-json")
      
      if [ -n "$WORKFLOW_ID" ]; then
          muapi workflow edit "$WORKFLOW_ID" --prompt "$PROMPT" "${ARGS[@]}"
      else
          muapi workflow create "$PROMPT" "${ARGS[@]}"
      fi
      
    • interactive-run.sh 373 B
      #!/bin/bash
      # Assistant Skill: Interactive Workflow Runner
      # Thin wrapper around muapi CLI.
      
      WORKFLOW_ID=""
      
      while [[ $# -gt 0 ]]; do
          case $1 in
              --workflow-id|-w) WORKFLOW_ID="$2"; shift 2 ;;
              *) shift ;;
          esac
      done
      
      if [ -z "$WORKFLOW_ID" ]; then echo "Error: --workflow-id is required" >&2; exit 1; fi
      
      muapi workflow run-interactive "$WORKFLOW_ID"
      
    • list-workflows.sh 390 B
      #!/bin/bash
      # Assistant Skill: List Workflows
      # Thin wrapper around muapi CLI.
      
      JSON_ONLY=false
      LIMIT=20
      
      while [[ $# -gt 0 ]]; do
          case $1 in
              --json) JSON_ONLY=true; shift ;;
              --limit) LIMIT="$2"; shift 2 ;;
              *) shift ;;
          esac
      done
      
      if [ "$JSON_ONLY" = true ]; then
          muapi workflow list --output-json
      else
          muapi workflow list | head -n $((LIMIT + 5))
      fi
      
    • run-workflow.sh 981 B
      #!/bin/bash
      # Expert Skill: Run & Visualize an AI Workflow
      # Thin wrapper around muapi CLI.
      
      WORKFLOW_ID=""
      INPUT_ARGS=()
      WEBHOOK=""
      ASYNC=false
      DOWNLOAD_DIR=""
      
      while [[ $# -gt 0 ]]; do
          case $1 in
              --workflow-id|-w)  WORKFLOW_ID="$2"; shift 2 ;;
              --input|-i)        INPUT_ARGS+=("$2"); shift 2 ;;
              --webhook)         WEBHOOK="$2"; shift 2 ;;
              --async)           ASYNC=true; shift ;;
              --download|-d)     DOWNLOAD_DIR="$2"; shift 2 ;;
              *) shift ;;
          esac
      done
      
      if [ -z "$WORKFLOW_ID" ]; then echo "Error: --workflow-id is required" >&2; exit 1; fi
      
      ARGS=()
      for ITEM in "${INPUT_ARGS[@]}"; do ARGS+=("--input" "$ITEM"); done
      [ -n "$WEBHOOK" ] && ARGS+=("--webhook" "$WEBHOOK")
      [ "$ASYNC" = true ] && ARGS+=("--no-wait")
      [ -n "$DOWNLOAD_DIR" ] && ARGS+=("--download" "$DOWNLOAD_DIR")
      
      if [ ${#INPUT_ARGS[@]} -gt 0 ]; then
          muapi workflow execute "$WORKFLOW_ID" "${ARGS[@]}"
      else
          muapi workflow run "$WORKFLOW_ID" "${ARGS[@]}"
      fi
      
  • SKILL.md 6.5 KB
    ---
    name: muapi-workflow
    version: 0.1.0
    description: Build, run, and visualize multi-step AI generation workflows. The AI architect translates natural language descriptions into connected node graphs — chain image generation, video creation, enhancement, and editing into automated pipelines.
    ---
    
    # AI Workflow Builder
    
    Chain any combination of muapi.ai generation steps into automated pipelines. The AI architect converts your plain-language description into a runnable node graph.
    
    ## Prerequisites
    
    Always ensure the `muapi` CLI is up-to-date before running any commands. Reinstall from source at the start of every session:
    
    ```bash
    pip install --upgrade /path/to/muapi-cli
    ```
    
    Replace `/path/to/muapi-cli` with the actual path to the `muapi-cli` directory in the workspace (the directory containing `pyproject.toml`).
    
    ## Core Operations
    
    1. **Generate** (`generate-workflow.sh`) — AI architect creates a workflow from a description
    2. **Discover** (`discover-workflow.sh`) — Find a relevant existing workflow by natural language
    3. **Edit** (`generate-workflow.sh --workflow-id`) — Modify an existing workflow with a prompt
    4. **Interactive Run** (`interactive-run.sh`) — Prompt for inputs and execute a workflow
    5. **Run** (`run-workflow.sh`) — Execute a workflow, poll node-by-node, collect outputs
    6. **CLI** (`muapi workflow`) — Full CRUD + visualization directly from the terminal
    
    ---
    
    ## Agent Guided Discovery & Selection
    
    As an AI agent, you have the ability to read and understand the purpose of available workflows to select the best one for the user's task (e.g., "create a UGC video").
    
    1. **Discover**: Fetch the catalog of available workflows and their descriptions in JSON format.
       ```bash
       muapi workflow discover --output-json
       ```
    2. **Match (Internal Reasoning)**: Use your LLM capabilities to analyze the `name`, `category`, and `description` fields of the returned workflows. Find the best match for the user's intent.
    3. **Analyze**: If you find a promising candidate, inspect its structure to ensure it has the necessary nodes and parameters.
       ```bash
       muapi workflow get <workflow_id>
       ```
       **CRITICAL RULE**: The output of `muapi workflow get` will include an "API Inputs" table. You MUST read this table to understand what inputs are required.
    4. **Choose & Confirm & Prompt User**:
       - If one workflow is a perfect match, you MUST ask the user to provide the exact values for the required API inputs before executing it. **Never invent or guess input values (like prompts, URLs, etc.) on your own.**
       - If multiple workflows are highly relevant, present the options to the user with their descriptions and ask them to confirm which one to use, and also ask for the required inputs.
       - If no workflow matches the user's complex request, offer to **architect** a new one using `muapi workflow create`.
    
    ### Example Agent Reasoning
    > "The user wants a product promo video. I fetched the catalog using `discover`. I see two potential workflows:
    > 1. `wf_123`: 'Product promo with background music'
    > 2. `wf_456`: 'Simple video gen'
    > I will analyze `wf_123` with `get`. It has the required nodes. I will suggest `wf_123` or just run it if the match is precise."
    
    ---
    
    ## Protocol: Building a Workflow
    
    ### Step 1 — Describe your pipeline
    
    ```bash
    muapi workflow create "take a text prompt, generate an image with flux-dev, then upscale it to 4K"
    ```
    
    The architect returns a workflow with a unique ID and a node graph. Save the ID.
    
    ### Step 2 — Inspect and visualize
    
    ```bash
    # Rich ASCII node graph in the terminal
    muapi workflow get <workflow_id>
    
    # Or raw JSON
    muapi workflow get <workflow_id> --output-json
    ```
    
    ### Step 3 — Run it
    
    ```bash
    # Run with specific inputs
    muapi workflow execute <workflow_id> \
      --input "node1.prompt=a glowing crystal cave at midnight"
    
    # Use --download to pull results locally
    muapi workflow execute <workflow_id> \
      --input "node1.prompt=a sunset" \
      --download ./outputs
    ```
    
    ### Step 4 — Discovery (Optional)
    If you want to reuse an existing workflow instead of creating a new one:
    
    ```bash
    # Search by keywords
    muapi workflow discover "ugc video"
    ```
    
    ### Step 5 — Interactive Execution
    Run a workflow and have the CLI prompt you for each required input:
    
    ```bash
    muapi workflow run-interactive <workflow_id>
    ```
    
    ---
    
    ## Workflow Examples
    
    ### Image Pipelines
    
    ```bash
    # Text → Image → Upscale
    muapi workflow create "take a text prompt, generate with flux-dev, upscale the result"
    
    # Text → Image → Background removal → Product shot
    muapi workflow create "generate a product image with hidream, remove background, create professional product shot"
    ```
    
    ### Video Pipelines
    
    ```bash
    # Text → Video
    muapi workflow create "generate a 10-second cinematic video from a text prompt using kling-master"
    
    # Image → Video → Lipsync
    muapi workflow create "animate an input image with seedance, then apply lipsync from an audio file"
    ```
    
    ---
    
    ## Editing an Existing Workflow
    
    ```bash
    # Add a step
    muapi workflow edit <id> --prompt "add a face-swap step after the image generation"
    
    # Swap a model
    muapi workflow edit <id> --prompt "change the video model from kling to veo3"
    ```
    
    ---
    
    ## CLI Reference
    
    ```bash
    # List all your workflows
    muapi workflow list
    
    # Browse templates
    muapi workflow templates
    
    # Generate new workflow
    muapi workflow create "text → flux image → upscale → face swap"
    
    # Visualize a workflow
    muapi workflow get <id>
    
    # Execute with inputs
    muapi workflow execute <id> --input "node1.prompt=a sunset"
    
    # Monitor a run
    muapi workflow status <run_id>
    
    # Get outputs
    muapi workflow outputs <run_id> --download ./results
    
    # Edit with AI
    muapi workflow edit <id> --prompt "add lipsync at the end"
    
    # Rename / delete
    muapi workflow rename <id> --name "Product Pipeline v2"
    muapi workflow delete <id>
    ```
    
    ---
    
    ## MCP Tools (for AI agents)
    
    | Tool | Description |
    |------|-------------|
    | `muapi_workflow_list` | List user's workflows |
    | `muapi_workflow_create` | AI architect: prompt → workflow |
    | `muapi_workflow_get` | Get workflow definition + node graph |
    | `muapi_workflow_execute` | Run with specific inputs |
    | `muapi_workflow_status` | Node-by-node run status |
    | `muapi_workflow_outputs` | Final output URLs |
    
    ---
    
    ## Constraints
    
    - Workflows can contain any combination of muapi.ai nodes (image, video, audio, enhance, edit)
    - Node outputs are automatically wired as inputs to downstream nodes
    - `--sync` mode waits up to 120s for generation; use `--async` for complex workflows and poll separately
    - Run timeouts: 10 minutes maximum per workflow execution
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related