> ## Documentation Index
> Fetch the complete documentation index at: https://docs.praison.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Async Jobs CLI

> CLI commands for managing async jobs in TypeScript

# Async Jobs CLI (TypeScript)

Manage async jobs using the praisonai-ts CLI.

## Installation

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
npm install -g praisonai-ts
```

## Commands Overview

| Command                        | Description         |
| ------------------------------ | ------------------- |
| `praisonai-ts run submit`      | Submit a new job    |
| `praisonai-ts run status <id>` | Get job status      |
| `praisonai-ts run result <id>` | Get job result      |
| `praisonai-ts run stream <id>` | Stream job progress |
| `praisonai-ts run list`        | List all jobs       |
| `praisonai-ts run cancel <id>` | Cancel a job        |

## Submit a Job

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# Basic submission
praisonai-ts run submit "Analyze this data"

# With recipe
praisonai-ts run submit "Analyze AI trends" --recipe news-analyzer

# With recipe config
praisonai-ts run submit "Analyze" --recipe analyzer --recipe-config '{"format": "json"}'

# Wait for completion
praisonai-ts run submit "Quick task" --wait

# Stream progress
praisonai-ts run submit "Long task" --stream

# With timeout
praisonai-ts run submit "Complex task" --timeout 7200

# With webhook
praisonai-ts run submit "Task" --webhook-url https://example.com/callback

# With idempotency
praisonai-ts run submit "Task" --idempotency-key order-123

# JSON output
praisonai-ts run submit "Task" --json

# Custom API URL
praisonai-ts run submit "Task" --api-url http://localhost:8080
```

### Submit Options

| Option              | Description                        |
| ------------------- | ---------------------------------- |
| `--recipe`          | Recipe name to execute             |
| `--recipe-config`   | Recipe config as JSON              |
| `--timeout`         | Timeout in seconds (default: 3600) |
| `--wait`            | Wait for completion                |
| `--stream`          | Stream progress                    |
| `--idempotency-key` | Key to prevent duplicates          |
| `--webhook-url`     | Webhook URL for completion         |
| `--session-id`      | Session ID for grouping            |
| `--json`            | Output JSON                        |
| `--api-url`         | Jobs API URL                       |

## Check Status

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts run status run_abc123
praisonai-ts run status run_abc123 --json
```

## Get Result

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts run result run_abc123
praisonai-ts run result run_abc123 --json
```

## Stream Progress

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts run stream run_abc123
praisonai-ts run stream run_abc123 --json
```

## List Jobs

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts run list
praisonai-ts run list --status running
praisonai-ts run list --json
```

## Cancel Job

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
praisonai-ts run cancel run_abc123
```

## Examples

### Complete Workflow

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
# 1. Submit job with recipe
praisonai-ts run submit "Analyze news" --recipe news-analyzer --json

# 2. Check status
praisonai-ts run status run_abc123

# 3. Stream progress
praisonai-ts run stream run_abc123

# 4. Get result
praisonai-ts run result run_abc123
```

### Scripting

```bash theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
#!/bin/bash

RESULT=$(praisonai-ts run submit "Analyze" --recipe analyzer --json)
JOB_ID=$(echo $RESULT | jq -r '.jobId')

while true; do
    STATUS=$(praisonai-ts run status $JOB_ID --json | jq -r '.status')
    if [ "$STATUS" = "succeeded" ] || [ "$STATUS" = "failed" ]; then
        break
    fi
    sleep 5
done

praisonai-ts run result $JOB_ID --json
```

## See Also

* [Async Jobs SDK](/docs/js/async-jobs) - TypeScript API
* [Background Tasks CLI](/docs/js/background-tasks-cli) - Background tasks
* [Scheduler CLI](/docs/js/scheduler-cli) - Periodic scheduling
