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

# Premove ITN command-line interface

> Normalize direct text and newline-delimited transcripts with the Premove ITN CLI.

The CLI uses the same `PremoveITN.normalize()` implementation as the Python API.

## Normalize one transcript

```bash theme={null}
premove-itn "call me at four thirty"
```

```text theme={null}
call me at 04:30
```

Select a device with `--device`:

```bash theme={null}
premove-itn --device cpu "the total is twenty dollars"
```

Valid values are `auto`, `cpu`, `mps`, and `cuda`.

## Process stdin

When the text argument is omitted, the CLI reads newline-delimited transcripts
from stdin:

```bash theme={null}
printf 'call me at four thirty\nthe total is twenty dollars\n' | premove-itn
```

```text theme={null}
call me at 04:30
the total is $20
```

Stdin mode loads the model once and processes each line in order. Use this mode
instead of starting a new process for every transcript.

Run `premove-itn --help` for command help or `premove-itn --version` for the
installed package version. Normal output uses stdout. Diagnostics use stderr.

The command requires a text argument or piped stdin. A model-load or
normalization error stops processing and returns a non-zero exit status. For
startup and device limits, see [Deployment](/itn/docs/deployment).
