# CLI usage
The `convolvers` binary is the command-line interface, a port of `beamcon_2D`
and `beamcon_3D` from
[RACS-tools](https://github.com/alecthomson/RACS-tools). Install it with:
```sh
cargo install convolve-rs
```
```{note}
The help text on this page is generated by running the binary at docs build
time, so it always matches the documented version.
```
```{command-output} cargo run -q --bin convolvers -- --help
:cwd: ..
```
## Common workflows
Smooth a set of images to their common beam:
```sh
convolvers 2d *.fits
```
Smooth to an explicit target beam (all three of `--bmaj`, `--bmin`, `--bpa`
required):
```sh
convolvers 2d --bmaj 20 --bmin 20 --bpa 0 image.fits
```
Report the common beam without writing anything:
```sh
convolvers 2d --dryrun *.fits
```
Smooth cubes channel-by-channel (`natural`, the default) or to one beam across
all channels and cubes (`total`):
```sh
convolvers 3d --mode total cube1.fits cube2.fits
```
## `convolvers 2d`
```{command-output} cargo run -q --bin convolvers -- 2d --help
:cwd: ..
```
## `convolvers 3d`
```{command-output} cargo run -q --bin convolvers -- 3d -h
:cwd: ..
```
Per-channel beams are read from, in priority order:
1. CASA `BEAMS` binary-table extension (`CASAMBM=T` in the header)
2. A co-located beamlog text file: `{dir}/beamlog.{stem}.txt`
3. Single `BMAJ`/`BMIN`/`BPA` from the primary header (broadcast to all
channels)