---
title: CLI Reference
---

import { Aside } from '@astrojs/starlight/components';

The `jscodeshift` command-line interface (CLI) allows you to run jscodeshift codemods using a terminal or through an automated system.

## Usage

You can use the `jscodeshift` command to run codemods in 4 different ways

**Option 1: Run from `transform.js` file in current working directory:**

```bash
jscodeshift [OPTION]... PATH...
```

This automatically looks for a `transform.js` file in the current working directory and attempts to run the transform over the specified `PATH`.

**Option 2: Run from specific transform file:**

```bash
jscodeshift [OPTION]... -t TRANSFORM_PATH PATH...
```

This allows you to specify a path to a transform file and run the transform over the specified `PATH`.

**Option 3: Run from specific transform URL:**

```bash
jscodeshift [OPTION]... -t URL PATH...
```

This allows you to specify a URL to a transform file and run the transform over the specified `PATH`.

**Option 4: Apply transform to standard input:**

```bash
jscodeshift [OPTION]... --stdin < file_list.txt
```

Using `--stdin` allows you to run the transform over every line of standard input provided in `file_list.txt`.


## Options

### `--(no-)babel`

`default: true`

This allows you to apply babeljs to the transform file.

### `--cpus=N`

`aliases: -c`

`default: max(all - 1, 1)`

This allows you to start at most N child processes to process source files.

### `--(no-)dry`

`aliases: -d`

`default: false`

This allows you to dry run the codemod. Dry running is useful when you need to see how a codemod will affect your project without making changes to your files.

### `--extensions=[EXT]`

`default: js`

Allows you to specify the extension of the files to be transformed.


### `--help`

`aliases: -h`

Allows you to print the help menu.

### `--ignore-config=[FILE] ...`

Allows you to ignore files if they match patterns sourced from a configuration file (e.g. a .gitignore).

### `--ignore-pattern=[GLOB] ...`

Allows you to ignore files that match a provided glob expression.

### `--(no-)gitignore`

`default: false`

Allows you to add entries to the current directory's .gitignore file.

### `--parser=[PARSER]`

`default: babel`

`available options: babel|babylon|flow|ts|tsx`

Allows you to specify the parser to use for parsing the source files.

### `--parser-config=[FILE]`

Allows you to specify path to a JSON file containing a custom parser configuration for flow or babylon.

### `--(no-)print`

`aliases: -p`

`default: false`

Allows you to print transformed files to stdout, useful for development.

### `--(no-)run-in-band`

`default: false`

Allows `jscodeshift` to run serially in the current process.

### `--(no-)silent`

`aliases: -s`

`default: false`

Allows you to run silently (prevent writing to stdout or stderr).

### `--(no-)stdin`

`default: false`

Allows you to run the transform over every line of standard input.

### `--transform=[FILE]`

`aliases: -t`

`default: ./transform.js`

Allows you to specify a path to the transform file. Can be either a local path or url.

### `--verbose=[MODE]`

`aliases: -v`

`available options: 0|1|2`

`default: 0`

Allows you to show more information about the transform process.

### `--version`

Allows you to print your `jscodeshift` version.

### `--fail-on-error`

Allows you to return a 1 exit code when errors were found during execution of codemods.
