Skip to content
ai-automation-workflows logo

AI Automation Workflows

ai-automation-workflows

Build automated AI workflows combining multiple models and services. Patterns: batch processing, scheduled tasks, event-driven pipelines, agent loops. Tools: inference.sh CLI, bash scripting, Python SDK, webhook integration. Use for: content automation, data processing, monitoring, scheduled gene...

SKILL.md

Full skill instructions

AI Automation Workflows

Build automated AI workflows via inference.sh CLI.

AI Automation Workflows

Quick Start

curl -fsSL https://cli.inference.sh | sh && infsh login

# Simple automation: Generate daily image
infsh app run falai/​flux-dev --input '{
  "prompt": "Inspirational quote background, minimalist design, date: '"$(date +%Y-%m-%d)"'"
}'

Install note: The install script only detects your OS/​architecture, downloads the matching binary from dist.inference.sh, and verifies its SHA-256 checksum. No elevated permissions or background processes. Manual install & verification available.

Automation Patterns

Pattern 1: Batch Processing

Process multiple items with the same workflow.

#!/​bin/​bash
# batch_images.sh - Generate images for multiple prompts

PROMPTS=(
  "Mountain landscape at sunrise"
  "Ocean waves at sunset"
  "Forest path in autumn"
  "Desert dunes at night"
)

for prompt in "${PROMPTS[@]}"; do
  echo "Generating: $prompt"
  infsh app run falai/​flux-dev --input "{
    \"prompt\": \"$prompt, professional photography, 4K\"
  }" > "output_${prompt// /​_}.json"
  sleep 2  # Rate limiting
done

Pattern 2: Sequential Pipeline

Chain multiple AI operations.

#!/​bin/​bash
# content_pipeline.sh - Full content creation pipeline

TOPIC="AI in healthcare"

# Step 1: Research
echo "Researching..."
RESEARCH=$(infsh app run tavily/​search-assistant --input "{
  \"query\": \"$TOPIC latest developments\"
}")

# Step 2: Write article
echo "Writing article..."
ARTICLE=$(infsh app run openrouter/​claude-sonnet-45 --input "{
  \"prompt\": \"Write a 500-word blog post about $TOPIC based on: $RESEARCH\"
}")

# Step 3: Generate image
echo "Generating image..."
IMAGE=$(infsh app run falai/​flux-dev --input "{
  \"prompt\": \"Blog header image for article about $TOPIC, modern, professional\"
}")

# Step 4: Generate social post
echo "Creating social post..."
SOCIAL=$(infsh app run openrouter/​claude-haiku-45 --input "{
  \"prompt\": \"Write a Twitter thread (5 tweets) summarizing: $ARTICLE\"
}")

echo "Pipeline complete!"

Pattern 3: Parallel Processing

Run multiple operations simultaneously.

#!/​bin/​bash
# parallel_generation.sh - Generate multiple assets in parallel

# Start all jobs in background
infsh app run falai/​flux-dev --input '{"prompt": "Hero image..."}' > hero.json &
PID1=$!

infsh app run falai/​flux-dev --input '{"prompt": "Feature image 1..."}' > feature1.json &
PID2=$!

infsh app run falai/​flux-dev --input '{"prompt": "Feature image 2..."}' > feature2.json &
PID3=$!

# Wait for all to complete
wait $PID1 $PID2 $PID3
echo "All images generated!"

Pattern 4: Conditional Workflow

Branch based on results.

#!/​bin/​bash
# conditional_workflow.sh - Process based on content analysis

INPUT_TEXT="$1"

# Analyze content
ANALYSIS=$(infsh app run openrouter/​claude-haiku-45 --input "{
  \"prompt\": \"Classify this text as: positive, negative, or neutral. Return only the classification.\n\n$INPUT_TEXT\"
}")

# Branch based on result
case "$ANALYSIS" in
  *positive*)
    echo "Generating celebration image..."
    infsh app run falai/​flux-dev --input '{"prompt": "Celebration, success, happy"}'
    ;;
  *negative*)
    echo "Generating supportive message..."
    infsh app run openrouter/​claude-sonnet-45 --input "{
      \"prompt\": \"Write a supportive, encouraging response to: $INPUT_TEXT\"
    }"
    ;;
  *)
    echo "Generating neutral acknowledgment..."
    ;;
esac

Pattern 5: Retry with Fallback

Handle failures gracefully.

#!/​bin/​bash
# retry_workflow.sh - Retry failed operations

generate_with_retry() {
  local prompt="$1"
  local max_attempts=3
  local attempt=1

  while [ $attempt -le $max_attempts ]; do
    echo "Attempt $attempt..."

    result=$(infsh app run falai/​flux-dev --input "{\"prompt\": \"$prompt\"}" 2>&1)

    if [ $? -eq 0 ]; then
      echo "$result"
      return 0
    fi

    echo "Failed, retrying..."
    ((attempt++))
    sleep $((attempt * 2))  # Exponential backoff
  done

  # Fallback to different model
  echo "Falling back to alternative model..."
  infsh app run google/​imagen-3 --input "{\"prompt\": \"$prompt\"}"
}

generate_with_retry "A beautiful sunset over mountains"

Scheduled Automation

Cron Job Setup

# Edit crontab
crontab -e

# Daily content generation at 9 AM
0 9 * * * /​path/​to/​daily_content.sh >> /​var/​log/​ai-automation.log 2>&1

# Weekly report every Monday at 8 AM
0 8 * * 1 /​path/​to/​weekly_report.sh >> /​var/​log/​ai-automation.log 2>&1

# Every 6 hours: social media content
0 */​6 * * * /​path/​to/​social_content.sh >> /​var/​log/​ai-automation.log 2>&1

Daily Content Script

#!/​bin/​bash
# daily_content.sh - Run daily at 9 AM

DATE=$(date +%Y-%m-%d)
OUTPUT_DIR="/​output/​$DATE"
mkdir -p "$OUTPUT_DIR"

# Generate daily quote image
infsh app run falai/​flux-dev --input '{
  "prompt": "Motivational quote background, minimalist, morning vibes"
}' > "$OUTPUT_DIR/​quote_image.json"

# Generate daily tip
infsh app run openrouter/​claude-haiku-45 --input '{
  "prompt": "Give me one actionable productivity tip for today. Be concise."
}' > "$OUTPUT_DIR/​daily_tip.json"

# Post to social (optional)
# infsh app run twitter/​post-tweet --input "{...}"

echo "Daily content generated: $DATE"

Monitoring and Logging

Logging Wrapper

#!/​bin/​bash
# logged_workflow.sh - With comprehensive logging

LOG_FILE="/​var/​log/​ai-workflow-$(date +%Y%m%d).log"

log() {
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}

log "Starting workflow"

# Track execution time
START_TIME=$(date +%s)

# Run workflow
log "Generating image..."
RESULT=$(infsh app run falai/​flux-dev --input '{"prompt": "test"}' 2>&1)
STATUS=$?

if [ $STATUS -eq 0 ]; then
  log "Success: Image generated"
else
  log "Error: $RESULT"
fi

END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
log "Completed in ${DURATION}s"

Error Alerting

#!/​bin/​bash
# monitored_workflow.sh - With error alerts

run_with_alert() {
  local result
  result=$("$@" 2>&1)
  local status=$?

  if [ $status -ne 0 ]; then
    # Send alert (webhook, email, etc.)
    curl -X POST "https://your-webhook.com/​alert" \
      -H "Content-Type: application/​json" \
      -d "{\"error\": \"$result\", \"command\": \"$*\"}"
  fi

  echo "$result"
  return $status
}

run_with_alert infsh app run falai/​flux-dev --input '{"prompt": "test"}'

Python SDK Automation

#!/​usr/​bin/​env python3
# automation.py - Python-based workflow

import subprocess
import json
from datetime import datetime
from pathlib import Path

def run_infsh(app_id: str, input_data: dict) -> dict:
    """Run inference.sh app and return result."""
    result = subprocess.run(
        ["infsh", "app", "run", app_id, "--input", json.dumps(input_data)],
        capture_output=True,
        text=True
    )
    return json.loads(result.stdout) if result.returncode == 0 else None

def daily_content_pipeline():
    """Generate daily content."""
    date_str = datetime.now().strftime("%Y-%m-%d")
    output_dir = Path(f"output/​{date_str}")
    output_dir.mkdir(parents=True, exist_ok=True)

    # Generate image
    image = run_infsh("falai/​flux-dev", {
        "prompt": f"Daily inspiration for {date_str}, beautiful, uplifting"
    })
    (output_dir / "image.json").write_text(json.dumps(image))

    # Generate caption
    caption = run_infsh("openrouter/​claude-haiku-45", {
        "prompt": "Write an inspiring caption for a daily motivation post. 2-3 sentences."
    })
    (output_dir / "caption.json").write_text(json.dumps(caption))

    print(f"Generated content for {date_str}")

if __name__ == "__main__":
    daily_content_pipeline()

Workflow Templates

Content Calendar Automation

#!/​bin/​bash
# content_calendar.sh - Generate week of content

TOPICS=("productivity" "wellness" "technology" "creativity" "leadership")
DAYS=("Monday" "Tuesday" "Wednesday" "Thursday" "Friday")

for i in "${!DAYS[@]}"; do
  DAY=${DAYS[$i]}
  TOPIC=${TOPICS[$i]}

  echo "Generating $DAY content about $TOPIC..."

  # Image
  infsh app run falai/​flux-dev --input "{
    \"prompt\": \"$TOPIC theme, $DAY motivation, social media style\"
  }" > "content/​${DAY}_image.json"

  # Caption
  infsh app run openrouter/​claude-haiku-45 --input "{
    \"prompt\": \"Write a $DAY motivation post about $TOPIC. Include hashtags.\"
  }" > "content/​${DAY}_caption.json"
done

Data Processing Pipeline

#!/​bin/​bash
# data_processing.sh - Process and analyze data files

INPUT_DIR="./​data/​raw"
OUTPUT_DIR="./​data/​processed"

for file in "$INPUT_DIR"/​*.txt; do
  filename=$(basename "$file" .txt)

  # Analyze content
  infsh app run openrouter/​claude-haiku-45 --input "{
    \"prompt\": \"Analyze this data and provide key insights in JSON format: $(cat $file)\"
  }" > "$OUTPUT_DIR/​${filename}_analysis.json"

done

Best Practices

  1. Rate limiting - Add delays between API calls
  2. Error handling - Always check return codes
  3. Logging - Track all operations
  4. Idempotency - Design for safe re-runs
  5. Monitoring - Alert on failures
  6. Backups - Save intermediate results
  7. Timeouts - Set reasonable limits

Related Skills

# Content pipelines
npx skills add inference-sh/​skills@ai-content-pipeline

# RAG pipelines
npx skills add inference-sh/​skills@ai-rag-pipeline

# Social media automation
npx skills add inference-sh/​skills@ai-social-media-content

# Full platform skill
npx skills add inference-sh/​skills@inference-sh

Browse all apps: infsh app list

More Productivity & Planning skills

brainstorming logo
Productivity & Planning

brainstorming

Structured design dialogue that validates ideas before implementation begins.

295.4K 385.7K
View
ui-ux-pro-max logo
Productivity & Planning

ui-ux-pro-max

Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.

133.1K 383.9K
View
writing-plans logo
Productivity & Planning

writing-plans

Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.

295.4K 268K
View
using-superpowers logo
Productivity & Planning

using-superpowers

Introduction to the obra skills system with mandatory skill invocation rules and best practices.

295.4K 259.8K
View
executing-plans logo
Productivity & Planning

executing-plans

Execute a written implementation plan with critical review and task checkpoints.

295.4K 229.1K
View
dispatching-parallel-agents logo
Productivity & Planning

dispatching-parallel-agents

Delegate independent tasks to specialized agents working concurrently with isolated context.

295.4K 206.3K
View
using-git-worktrees logo
Productivity & Planning

using-git-worktrees

Isolated git worktrees with smart directory selection and safety verification.

295.4K 205.2K
View
webapp-testing logo
Productivity & Planning

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

179.7K 170.6K
View
content-strategy logo
Productivity & Planning

content-strategy

Plan searchable and shareable content that drives traffic, builds authority, and generates leads.

53.3K 150.9K
View
repo-intake-and-plan logo
Productivity & Planning

repo-intake-and-plan

README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.

497 139.6K
View
marketing-ideas logo
Productivity & Planning

marketing-ideas

Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.

53.3K 137.2K
View
site-architecture logo
Productivity & Planning

site-architecture

Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.

53.3K 112.8K
View

Productivity AI tools

Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View
SaveDay logo
Productivity

SaveDay

Capture, organize, and utilize your knowledge effortlessly.

Free
View
A
Productivity

Any Summary

Instant Summaries of Audio & Video Interviews with AnySummary

Freemium
View
M
Productivity

Map This

Transform PDFs into engaging mind maps.

Freemium
View
ChatPDF logo
Productivity

ChatPDF

Chat with any PDF instantly

Free
View
I
Productivity

intellisay

Create an optimal daily plan using your voice

Paid
View
A
Productivity

Aurora AI

A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.

Paid
View
AskYourPDF logo
Productivity

AskYourPDF

AskYourPDF Pricing Plans: Tailored to Your Needs

Free
View