🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Async Task

by @enderfga

Run and manage long tasks exceeding HTTP timeouts by starting, updating, and completing them asynchronously with immediate responses.

Versionv0.1.0
Downloads4,131
Stars⭐ 1
TERMINAL
clawhub install async-task

πŸ“– About This Skill

OpenClaw Async Task

Description

Execute long-running tasks without HTTP timeouts. Use when you need to:

  • Run commands that may take more than 5 seconds
  • Analyze large files or codebases
  • Perform multi-step operations
  • Call external APIs with unpredictable latency
  • IMPORTANT: When a task might timeout, you MUST use this skill to avoid empty response from server errors.

    Triggers: "async task", "long running", "timeout", "background task", "push result"

    Installation

    # Clone and link globally
    git clone https://github.com/Enderfga/openclaw-async-task.git
    cd openclaw-async-task
    npm link

    Or just copy async-task.js to your PATH

    chmod +x async-task.js cp async-task.js /usr/local/bin/async-task

    Commands

    async-task start ""  # Start task, returns immediately
    async-task done ""        # Complete task, push result to user
    async-task fail ""         # Task failed, push error message
    async-task push ""       # Push message directly (no start needed)
    async-task status                 # Show current task status
    

    Usage Flow (MUST follow strictly)

    1. Start: async-task start "Scanning files..." 2. Execute: Run your actual commands 3. Push result: async-task done "Found 42 files"

    Example

    User asks: "Count all TypeScript files in this project"

    # Step 1: Acknowledge immediately
    async-task start "Counting TypeScript files..."

    Step 2: Do the actual work

    count=$(find . -name "*.ts" | wc -l)

    Step 3: Push the result

    async-task done "Found $count TypeScript files"

    How It Works

    1. start saves task state and returns confirmation immediately 2. You execute whatever commands needed 3. done/fail uses OpenClaw/Clawdbot CLI to push result to the active session

    Zero configuration required - automatically detects active session via openclaw sessions or clawdbot sessions.

    Advanced: Custom Push Endpoint

    For custom webchat or notification systems:

    export ASYNC_TASK_PUSH_URL="https://your-server.com/api/push"
    export ASYNC_TASK_AUTH_TOKEN="your-token"
    

    The endpoint receives:

    {
      "sessionId": "session-id",
      "content": "message",
      "role": "assistant"
    }
    

    Environment Variables

    | Variable | Required | Description | |----------|----------|-------------| | OPENCLAW_SESSION | No | Target session (auto-detected) | | ASYNC_TASK_PUSH_URL | No | Custom HTTP push endpoint | | ASYNC_TASK_AUTH_TOKEN | No | Auth token for custom endpoint |

    Requirements

  • Node.js 16+
  • OpenClaw or Clawdbot CLI installed
  • Critical Rules

  • MUST pair start with done or fail
  • NEVER start without completing
  • NEVER say "will push later" then forget
  • Links

  • GitHub
  • OpenClaw
  • πŸ’‘ Examples

    User asks: "Count all TypeScript files in this project"

    # Step 1: Acknowledge immediately
    async-task start "Counting TypeScript files..."

    Step 2: Do the actual work

    count=$(find . -name "*.ts" | wc -l)

    Step 3: Push the result

    async-task done "Found $count TypeScript files"