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

# Batch Command

> CLI reference for the batch command

# Batch Command

Process multiple GitHub issues at once and export results as JSON or CSV. Always runs in dry-run mode — no changes are posted to GitHub.

## Syntax

```bash theme={null}
simili batch [OPTIONS]
```

## Options

| Option                  | Short | Type   | Description                             | Default               |
| ----------------------- | ----- | ------ | --------------------------------------- | --------------------- |
| `--file`                | `-f`  | file   | JSON file containing array of issues    | Required              |
| `--out-file`            | `-o`  | file   | Output file path (stdout if omitted)    | -                     |
| `--format`              |       | string | Output format: `json` or `csv`          | `json`                |
| `--workers`             | `-w`  | number | Concurrent workers                      | 1                     |
| `--workflow`            |       | string | Workflow preset                         | `issue-triage`        |
| `--collection`          |       | string | Override Qdrant collection name         | -                     |
| `--threshold`           |       | number | Override similarity threshold           | -                     |
| `--duplicate-threshold` |       | number | Override duplicate confidence threshold | -                     |
| `--top-k`               |       | number | Override max similar issues to show     | -                     |
| `--config`              | `-c`  | file   | Path to configuration file              | `.github/simili.yaml` |
| `--help`                | `-h`  | bool   | Show help message                       | -                     |

<Note>
  Batch mode always runs in dry-run. No comments, labels, or transfers are posted to GitHub.
</Note>

## Input format

Provide a JSON file containing an array of issue objects:

```json theme={null}
[
  {
    "org": "my-org",
    "repo": "backend",
    "number": 123,
    "title": "Login times out after 30 seconds",
    "body": "Users are getting logged out unexpectedly...",
    "state": "open",
    "labels": ["bug"],
    "author": "johndoe",
    "created_at": "2026-02-10T10:00:00Z"
  },
  {
    "org": "my-org",
    "repo": "frontend",
    "number": 456,
    "title": "Button click does nothing on Safari",
    "body": "The submit button has no effect in Safari 17...",
    "state": "open",
    "labels": [],
    "author": "janedoe",
    "created_at": "2026-02-11T14:30:00Z"
  }
]
```

**Required fields:** `org`, `repo`, `number`, `title`

## Examples

### Basic JSON output

```bash theme={null}
simili batch --file issues.json
```

### CSV export

```bash theme={null}
simili batch --file issues.json --format csv --out-file results.csv
```

### Parallel processing

```bash theme={null}
simili batch --file issues.json --workers 5 --out-file results.json
```

### Override thresholds

```bash theme={null}
simili batch --file issues.json \
  --threshold 0.75 \
  --duplicate-threshold 0.90 \
  --top-k 3
```

### Use a custom collection

```bash theme={null}
simili batch --file issues.json --collection my-staging-collection
```

## Output

### JSON output

```json theme={null}
[
  {
    "issue": {
      "org": "my-org",
      "repo": "backend",
      "number": 123,
      "title": "Login times out after 30 seconds"
    },
    "similar": [
      { "number": 99, "title": "Session expires early", "score": 0.88 }
    ],
    "duplicate_detected": true,
    "duplicate_of": 99,
    "duplicate_confidence": 0.91,
    "quality_score": 0.72,
    "suggested_labels": ["bug", "auth"],
    "transfer_target": null
  }
]
```

### CSV output

The CSV format includes 20+ flattened fields including:

| Field                  | Description                      |
| ---------------------- | -------------------------------- |
| `org`                  | Organization                     |
| `repo`                 | Repository                       |
| `number`               | Issue number                     |
| `title`                | Issue title                      |
| `duplicate_detected`   | `true`/`false`                   |
| `duplicate_of`         | Issue number of duplicate        |
| `duplicate_confidence` | Confidence score (0.0-1.0)       |
| `quality_score`        | Quality score (0.0-1.0)          |
| `suggested_labels`     | Comma-separated labels           |
| `similar_1_number`     | Top similar issue number         |
| `similar_1_score`      | Top similar issue score          |
| `transfer_target`      | Target repo if routing suggested |

## Performance

* Default 1 worker for safe rate-limit behaviour
* Increase workers to speed up large batches
* Each issue takes \~3-8 seconds depending on features enabled

## Next steps

<CardGroup cols={2}>
  <Card title="Process command" href="/reference/cli/process-command">
    Process individual issues
  </Card>

  <Card title="Index command" href="/reference/cli/index-command">
    Index issues before batching
  </Card>
</CardGroup>
