ð Trunk is in beta. We'd appreciate your feedback - stop by the Trunk Community Slack and let us know what you think. Thanks!
Trunk is a blazingly fast meta code checker and formatter with extraordinary features like caching, preexisting issue detection, a daemon, and a language server. It's managed completely via config-as-code, so you can easily pin your repo to specific versions of your linters, formatters, and static analyzers.
Don't install a dozen different linter and formatting plugins, just use Trunk. Level up your code quality and consistency today.
npm install @trunkio/launcher
(docs)npm exec trunk init
(docs)npm exec trunk check --sample
That's it!
None! Trunk manages linters and formatters for you via pinned versions in your repo's .trunk/trunk.yaml
file. You don't need to install any linters or configure the extension in any way. We cache linters, formatters, and runtimes in ~/.cache/trunk
. Using a linter distributed as a go module but you're not a go user? Don't worry about it, we handle it all ð.
We integrate new linters every release. Stop by on slack and let us know what you'd like next!
Language Linters Allgitleaks
Ansible ansible-lint
Bash shellcheck
, shfmt
Bazel, Starlark buildifier
C/C++ clang-format
, clang-tidy
Cloudformation cfnlint
Docker hadolint
GitHub actionlint
Go gofmt
, golangci-lint
, semgrep
HAML haml-lint
Java semgrep
JS/TS eslint
, prettier
, semgrep
Kotlin detekt
, detekt-explicit
, ktlint
Markdown markdownlint
Protobuf buf-breaking
, buf-lint
Python autopep8
, bandit
, black
, flake8
, isort
, pylint
, semgrep
, yapf
Ruby brakeman
, rubocop
, rufo
, semgrep
, standardrb
Rust clippy
, rustfmt
SQL sql-formatter
Terraform terraform
, tflint
TOML taplo
Linting and formatting principles
Trunk manages all configuration as code in your repo's .trunk/trunk.yaml
file. When you first trunk init
, we scan your repo for which linters and formatters are applicable to you and set up an initial .trunk/trunk.yaml
file for you to use. See the docs for more details.
Ever hit one of these problems?
That's what formatting via Trunk solves. Everyone on your team is guaranteed to get the same results, because we always run the same version of each formatter/linter on everyone's machine, including in your CI lint job.
Extras: VSCode Extension & GitHub ActionAfter you trunk init
, trunk.yaml
will contain a pinned version of Trunk to use for your repo. When you run trunk, it will automatically detect which version you should be running for a particular repo and, if needed, download it, then run it. The trunk VSCode extension works the same way: regardless of what repo you're in, the underlying version of trunk it runs is based on the pinned version in your trunk.yaml
file. Config-as-code ð.
This means that everyone working in a repo, using the trunk
cli, the VSCode extension, or when running on CI, all get the same results because they're running the same version of trunk and the same versions of all the linters/formatters. No more "doesn't happen on my machine". When you want to upgrade to a newer version, just run trunk upgrade
and commit the updated trunk.yaml
.
We release new versions about every other week.
For support and feedback, reach out on our Trunk Community slack. Thanks! â¤ï¸
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4