# Install golangci-lint with Homebrew, apk, chocolatey, dnf, MacPorts, Nix, pacman, scoop, winget, zypper

Fast linters runner for Go. Version 2.12.2 via Homebrew; verified 2026-05-06.

## Install

```sh
sudo av install brew:golangci-lint
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install golangci-lint
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install golangci-lint
```

  Evidence: MacPorts ports tree: devel/golangci-lint/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add golangci-lint
```

  Evidence: Alpine Linux edge package indexes: golangci-lint from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- dnf (92%):

```sh
sudo dnf install golangci-lint
```

  Evidence: Fedora Rawhide package metadata: golangci-lint from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#golangci-lint
```

  Evidence: nixpkgs package indexes: pkgs/by-name/go/golangci-lint/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S golangci-lint
```

  Evidence: Arch Linux sync databases: golangci-lint from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install golangci-lint
```

  Evidence: openSUSE Tumbleweed package metadata: golangci-lint from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Chocolatey (92%):

```sh
choco install golangci-lint
```

  Evidence: Chocolatey community package catalog: golangci-lint from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','glab'

- Scoop (92%):

```sh
scoop install main/golangci-lint
```

  Evidence: Scoop official bucket manifest trees: bucket/golangci-lint.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id GolangCI.golangci-lint -e
```

  Evidence: Windows Package Manager source index: GolangCI.golangci-lint from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:golangci-lint
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/golangci-lint>
- **Version:** 2.12.2
- **Source summary:** Fast linters runner for Go
- **Homepage:** <https://golangci-lint.run/>
- **Repository:** <https://github.com/golangci/golangci-lint>
- **Upstream docs:** <https://golangci-lint.run/>
- **License:** GPL-3.0-only
- **Source archive:** <https://github.com/golangci/golangci-lint.git>
- **Last updated:** 2026-05-06T12:03:02Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- golangci-lint (cli)
- golangci-lint (alias)

## Dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2.12.2
- Package-manager updated: 2026-05-06
- Local data: ok
- Upstream repository: https://github.com/golangci/golangci-lint
- info: No cached GitHub release or tag data was available.
## Project history and usage

golangci-lint is a fast Go linters runner. The project presents itself as a parallel, cached runner with YAML configuration, major IDE integration, and more than one hundred included linters.

### Project history

The GitHub repository was created in May 2018. The project grew around a simple premise: run many Go linters together, make the result fast enough for local and CI use, and centralize configuration in `.golangci` files.

By 2019 and 2020 the changelog shows the project adding Go version support, more linters, GitHub Actions output, bash completions, junit-xml output, auto-fixing improvements, and a dedicated website. The May 2020 changelog entry records the launch of `golangci-lint.run`.

The v1 line accumulated a long compatibility history and ended with the project documenting v1.64.2 as the last minor v1 release before v2. The v2 changelog begins in 2025 and introduced product-level changes such as a new `golangci-lint fmt` command and separated v1/v2 changelog documentation.

### Adoption history

golangci-lint became a default Go quality gate because it packaged many independent analyzers behind one binary and one config file. Its README advertises installation for local machines and CI/CD systems, and the batch input records packages across apk, Homebrew, Chocolatey, dnf, MacPorts, Nix, pacman, Scoop, winget, and zypper.

The project also maintains an official GitHub Action, listed in GitHub Marketplace, for running golangci-lint and reporting issues in GitHub workflows. The repository had over 19,000 stars and more than 1,500 forks in the 2026 GitHub API snapshot used for this batch.

### How it is used

The normal package-manager workflow is to install `golangci-lint`, add a `.golangci.yml` or equivalent config to the repository, and run `golangci-lint run` locally or in CI. The project documents integrations for editors and shells as well as CI installation paths.

Its value comes from combining speed and policy. Teams can enable a curated set of linters, cache work between runs, use generated output formats for CI annotations, and keep Go lint rules close to the source tree in a checked-in config file.

### Why package nerds care

For package nerds, golangci-lint is one of the canonical Go toolbox binaries: version-sensitive, CI-facing, heavily bottled, and commonly pinned in development environments. It is also a stress test for package ecosystems because it embeds many analyzers whose compatibility tracks Go releases.

It matters culturally because it made Go linting feel like installing one dependable command instead of assembling a personal pile of analyzer binaries. That is exactly the kind of tool Homebrew, Nix, Arch, and CI images tend to converge on.

### Timeline

- 2018: GitHub repository created for a fast Go linters runner.
- 2019: Changelog records Go 1.12 and Go 1.13 support, new linters, junit-xml output, bash completions, and improved auto-fixing.
- 2020: Dedicated website launched at `golangci-lint.run`; GitHub Actions output and additional linters added.
- 2025: v1.64.2 documented as the last minor v1 release before v2.
- 2025: v2 changelog begins with product changes including formatting support and separated v1/v2 documentation.

### Related projects

- The official `golangci-lint-action` runs golangci-lint in GitHub Actions.
- golangci-lint wraps and coordinates many Go analyzers, including tools from the Staticcheck and go/analysis ecosystem.
- golangci-lint-langserver and editor integrations adapt the CLI's diagnostics for local development.

### Sources

- <https://github.com/golangci/golangci-lint>
- <https://github.com/marketplace/actions/golangci-lint>
- <https://golangci-lint.run/docs/product/changelog-v1/>
- <https://golangci-lint.run/docs/product/changelog/>
- <https://golangci-lint.run/docs/welcome/install/>
- <https://golangci-lint.run/docs/welcome/integrations/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: ./.golangci.yml, ./.golangci.yaml, ./.golangci.toml, ./.golangci.json, ~/.golangci.yml, ~/.golangci.yaml, ~/.golangci.toml, ~/.golangci.json
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** golangci-lint
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - golangci-lint: normalized package name match | nixpkgs package indexes: pkgs/by-name/go/golangci-lint/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - golangci-lint - 2.5.0-r7: normalized package name match | Alpine Linux edge package indexes: golangci-lint from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Fast linters runner for Go | https://golangci-lint.run/
- apk - golangci-lint-bash-completion - 2.5.0-r7: normalized package name match | Alpine Linux edge package indexes: golangci-lint-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Bash completions for golangci-lint | https://golangci-lint.run/
- apk - golangci-lint-fish-completion - 2.5.0-r7: normalized package name match | Alpine Linux edge package indexes: golangci-lint-fish-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Fish completions for golangci-lint | https://golangci-lint.run/
- apk - golangci-lint-zsh-completion - 2.5.0-r7: normalized package name match | Alpine Linux edge package indexes: golangci-lint-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Zsh completions for golangci-lint | https://golangci-lint.run/
- dnf - golangci-lint - 2.11.4-1.fc45: normalized package name match | Fedora Rawhide package metadata: golangci-lint from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Fast linters runner for Go | https://github.com/golangci/golangci-lint
- pacman - golangci-lint - 2.12.2-1: normalized package name match | Arch Linux sync databases: golangci-lint from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Fast linters runner for Go | https://github.com/golangci/golangci-lint
- zypper - golangci-lint - 2.12.2-1.1: normalized package name match | openSUSE Tumbleweed package metadata: golangci-lint from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | A fast Go linters runner | https://golangci-lint.run
- MacPorts - golangci-lint: normalized package name match | MacPorts ports tree: devel/golangci-lint/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - golangci-lint: normalized package name match | Chocolatey community package catalog: golangci-lint from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','glab'
- Scoop - main/golangci-lint: normalized package name match | Scoop official bucket manifest trees: bucket/golangci-lint.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - GolangCI.golangci-lint: normalized package name match | Windows Package Manager source index: GolangCI.golangci-lint from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Runtime dependency declared by Homebrew.
- [actionlint](https://www.automicvault.com/pkg/brew/actionlint/) - Shares av.db curated category or tags: ci, cli, developer-tools, linting, static-analysis.
- [checkmake](https://www.automicvault.com/pkg/brew/checkmake/) - Shares av.db curated category or tags: cli, developer-tools, go, linting, static-analysis.
- [staticcheck](https://www.automicvault.com/pkg/brew/staticcheck/) - Shares av.db curated category or tags: ci, cli, developer-tools, go, static-analysis.
- [editorconfig-checker](https://www.automicvault.com/pkg/brew/editorconfig-checker/) - Shares av.db curated category or tags: ci, cli, developer-tools, linting.
- [flake8](https://www.automicvault.com/pkg/brew/flake8/) - Shares av.db curated category or tags: cli, developer-tools, linting, static-analysis.
- [go-critic](https://www.automicvault.com/pkg/brew/go-critic/) - Shares av.db curated category or tags: cli, developer-tools, go, static-analysis.
- [hadolint](https://www.automicvault.com/pkg/brew/hadolint/) - Shares av.db curated category or tags: cli, developer-tools, linting, static-analysis.
- [ls-lint](https://www.automicvault.com/pkg/brew/ls-lint/) - Shares av.db curated category or tags: ci, cli, developer-tools, linting.
- [golangci-lint-langserver](https://www.automicvault.com/pkg/brew/golangci-lint-langserver/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, developer, developer-tools, go, golangci.

## Combined YAML source

View the package source record on GitHub. [combined/golangci-lint.yml](https://github.com/automic-vault/db/blob/main/combined/golangci-lint.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
