---
title: Scanners
llms-description: "Basics of using scanners"
---

## Overview

Scanners are the main unit of processing in Inspect Scout and can target a wide variety of content types. In this article we'll cover using the high-level scanners provided with Scout ([LLM Scanner](#llm-scanner) and [Grep Scanner](#grep-scanner)) as well as the basics of creating custom scanners.

## Using Scanners

We'll cover defining various types of scanners below—first though let's describe how scanners are used in Scout.

Scanners are defined either in Python source file or Python package, and are passed as the first argument to `scout scan`. For example:

``` bash
scout scan scanner.py -T ./logs --model openai/gpt-5
```

Or from Python:

``` python
from inspect_scout import scan
from scanner import my_scanner

results = scan(
    scanners=[my_scanner()],
    transcripts="./logs",
    model="openai/gpt-5" 
)
```

Once a scan is complete you can view its results by running `scout view` or by computing on the data frame(s) returned in `results`.

Note that if you want run multiple scanners at once you can either pass a list of scanners to the `scan()` function or define a scan job (see [Scan Jobs](#scan-jobs) below for details).

## LLM Scanner

{{< include _llm_scanner.md >}}


## Grep Scanner

{{< include _grep_scanner.md >}}


## Custom Scanners

{{< include _custom_scanner.md >}}

## Scan Jobs

{{< include _scan_jobs.md >}}

## Learning More

To learn more about using and developing scanners, see the following articles:

- [LLM Scanner](llm_scanner.qmd): High level scanner for using models to read transcripts.

- [Grep Scanner](grep_scanner.qmd): High level scanner for pattern matching in transcripts.

- [Custom Scanners](custom_scanner.qmd): Comprehensive documentation on creating custom scanners.

- [Scanner Tools](scanner_tools.qmd): Create custom scanners with the same tools used under the hood by `llm_scanner()`.
