Command Line
The following commands are available when using
trunk
from the command line$ trunk check # runs the universal linter on all applicable files
$ trunk fmt # runs all the enabled formatters and auto-applies changes
You can always find this list using
trunk check --help
.trunk check
runs linters & formatters on your changed files, prompting you to apply fixes. Without additional args, trunk check
will run all applicable linters on all files changed in the current branch.Run all applicable formatters as configured in
trunk.yaml
. trunk fmt
is short-hand for running
trunk check
with a --fix --filter
set to all formatters enabled in your repository.options | Text |
---|---|
--all | Run on all the files in the repository. Useful if trying to assess a new linter in the system, or to find and fix pre-existing issues |
--fix | Auto-apply all suggested fixes |
--no-fix | Surface, but do not prompt for autofixes |
--filter | List of comma-separated linters to run. Specify --filter=-linter to disable a linter. |
--sample=N | |
--ci | Run in Continuous Integration mode |
--no-progress | Do not show progress while running |
--ci-progress | Only show progress every 30s while running (useful for CI jobs). Implied by --ci . |
--output | Output results in specified format: text (default) or json |
--output-file=FILE | Write json results to specified file |
--show-fixed | Include fixed issues in the output |
--jobs | number of concurrent jobs (does not affect background linting) |
--help | Output help information |
Check | Command |
---|---|
all files | trunk check --all --no-fix |
a specific file | trunk check some/file.py |
all applicable files with flake8 | trunk check --all --no-fix --filter=flake8 |
the behavior of all linters | trunk check --sample 5 |
the behavior of a specific linter | trunk check --sample 5 --filter=flake8 |
the formatting of the whole repo | trunk fmt --all |
the formatting of a specific file | trunk fmt some/file.py |
the formatting of all python code with black | trunk fmt --all --filter=black |
--filter
argument allows you to restrict trunk check
to a subset of the linters enabled in your repository.For example, to run
eslint
and isort
on the entire repo:trunk check --all --filter=eslint,isort
Alternatively, to run every linter except
clang-tidy
and shellcheck
:trunk check --all --filter=-clang-tidy,-shellcheck
--sample=N
will attempt to run every enabled linter against the requested number of files. The goal of the sample
flag is to test the setup of the linters in your repository as well as any specific configuration they might honor.The sample command will attempt to run each linter N times, but may run fewer if not enough applicable files exist in your set of files to lint.
--sample=N
can be combined with any other set of options for trunk check
.For example, to run
prettier
against 10 different prettier supported files:trunk check --sample=10 --filter=prettier
Alternatively, to run every linter at most 5 times against its supported files:
trunk check --sample=5
trunk upgrade
will upgrade the Trunk CLI, along with all plugins and linters in your trunk.yaml. We highly recommend running on the latest validated versions of tools as updates will frequently include important security fixes and additional valuable checks. Trunk only auto-suggests linter upgrades to versions that we support, so you may see a slight lag time when a new linter version is released.Upgrade will also recommend new tools that have become applicable since the last time your repository was scanned. This can be a result of using new technologies in your repository or trunk itself increasing support for more tools. If you don't like a particular recommendation you can run
trunk check disable {tool-name}
to teach trunk not to recommend it.When you enable a packaged or downloaded linter in your
trunk.yaml
and don't specify a version, trunk will attempt to use the version of that tool installed on your system. Trunk will not automatically suggest upgrades for this tool. If you wish to upgrade to the latest version, you will first have to specify a base version in your trunk.yaml
.Options & Flags | Explanation |
---|---|
--root | Explicitly set the root of the repository to run against |
--upstream | Specify the upstream branch used to calculate new vs existing issued. |
--trigger | Supports running trunk check from inside a git hook. Options are manual (default), git-push, git-commit. Controls whether the check returns early and its interactivity. |
Last modified 1mo ago