pkg.soopen package index

brew / rank 558

Install shfmt with Homebrew, apk, apt, MacPorts, Nix, pacman, zypper, scoop, winget

Autoformat shell script source code. Version 3.14.1 via Homebrew; verified 2026-09-13. Also installable with debian: sudo apt install shfmt.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install shfmt

local Homebrew formula metadata

MacPortsverified · 94%
sudo port install shfmt

MacPorts ports tree · devel/shfmt/Portfile · source: api.github.com

Linux

Alpine Linux apkverified · 92%
sudo apk add shfmt

Alpine Linux edge package indexes · shfmt · source: dl-cdn.alpinelinux.org

Debian aptverified · 92%
sudo apt install shfmt

Debian stable package indexes · shfmt · source: deb.debian.org

Nixverified · 92%
nix profile install nixpkgs#shfmt

nixpkgs package indexes · pkgs/by-name/sh/shfmt/package.nix · source: api.github.com

Arch Linux pacmanverified · 92%
sudo pacman -S shfmt

Arch Linux sync databases · shfmt · source: geo.mirror.pkgbuild.com

openSUSE zypperverified · 92%
sudo zypper install shfmt

openSUSE Tumbleweed package metadata · shfmt · source: download.opensuse.org

Windows

Scoopverified · 92%
scoop install main/shfmt

Scoop official bucket manifest trees · bucket/shfmt.json · source: api.github.com

Windows Package Managerverified · 92%
winget install --id mvdan.shfmt -e

Windows Package Manager source index · mvdan.shfmt · source: cdn.winget.microsoft.com

overview

Package summary

Autoformat shell script source code

Commands and aliases

  • shfmt

history

Project history and usage

shfmt is the command-line formatter supplied by the mvdan/sh Go project. It parses and rewrites shell source using a consistent style and supports POSIX shell, Bash, mksh, and zsh-oriented syntax.

Project history

shfmt is developed within Daniel Martí's mvdan/sh project, a Go implementation of shell parsing, formatting, and interpretation. Version 3 documentation is published under the mvdan.cc/sh/v3 module path.

The project has also supported JavaScript-facing integrations. Its README records that the older mvdan-sh package was archived in favor of the third-party sh-syntax WASM package.

Adoption history

The official README lists packaging across Alpine, Arch, Debian, Fedora, FreeBSD, Homebrew, MacPorts, NixOS, OpenSUSE, Scoop, Snapcraft, Void, and webi, plus release images on Docker. This unusually broad distribution makes shfmt readily available in developer workstations and CI systems.

How it is used

Typical use is `shfmt -l -w script.sh` to list and rewrite shell files. Formatting behavior can be supplied through a project `.editorconfig`, making the tool suitable for editor hooks, pre-commit checks, and CI formatting gates.

The official project also publishes container images, allowing formatting without installing a host binary.

Why package nerds care

shfmt is the shell ecosystem's prominent opinionated formatter. Package enthusiasts value its broad package-manager coverage, single Go binary, EditorConfig support, and applicability to POSIX shell, Bash, mksh, and related dialects.

Timeline

  • Version 3 era: The project adopted the mvdan.cc/sh/v3 Go module path.
  • 2025: v3.12.0 added EditorConfig control for simplify and minify behavior.

Related projects

  • The mvdan/sh repository also contains the shell syntax, expansion, and interpreter libraries and the gosh proof-of-concept interpreter.
  • The official README lists editor and automation integrations including vscode-shfmt, shfmt.el, neoformat, pre-commit-shfmt, and prettier-plugin-sh.

security posture

Risk level: yellow

generalized runtime or code generation signal.

Risk classifier

yellow risk · medium confidence · runtime

Why

  • generalized runtime or code generation signal

Signals

  • text:shell

Install behavior

  • No Homebrew post-install hook is recorded in formula metadata.
  • Homebrew bottle metadata is available for 5 platform targets.
  • Build metadata lists 2 build dependencies.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

local files

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

Config paths the tool may read or write during local use.

Unix
<project-root>/.editorconfig

executables

Installed executables

CommandKindExposureNote
shfmtcliglobal executable

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-09-19
manager version3.14.1
manager updated2026-09-13
local dataok
upstreamcurrent
latest detectedv3.14.0

https://github.com/mvdan/sh

  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:shfmt
Version3.14.1
Package managerHomebrew
Package manager pagehttps://formulae.brew.sh/formula/shfmt
Homepagehttps://github.com/mvdan/sh
Repositoryhttps://github.com/mvdan/sh
LicenseBSD-3-Clause
Source archivehttps://github.com/mvdan/sh/archive/refs/tags/v3.14.0.tar.gz
Last updated2026-09-13T13:33:22+02:00
Pulseupdated
Build dependenciesgo, scdoc
Bottleavailable (on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, x86_64_linux)
Homebrew post-installnot defined
Servicenone declared

registry facts

Source database details

Source DatabaseHomebrew formula API
Taphomebrew/core
Full Nameshfmt
Version Scheme0
Revision0
Head VersionHEAD
Bottle Stable Root URLhttps://ghcr.io/v2/homebrew/core
Deprecatedno
Disabledno
Keg Onlyno
URL Keys
  • head
  • stable

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Debian apt95%

shfmt 3.8.0-1+b8

format shell programs

https://github.com/mvdan/sh

sudo apt install shfmt
  • Section: utils
  • Architecture: amd64
  • Source Package: golang-mvdan-sh
  • normalized package name match
  • Matched by: Shfmt
Debian stable package indexes · deb.debian.org · Debian stable package indexes: shfmt from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz
Nix95%

shfmt

nix profile install nixpkgs#shfmt
  • normalized package name match
  • Matched by: Shfmt
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/sh/shfmt/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
Ubuntu apt95%

shfmt 3.8.0-1

format shell programs

https://github.com/mvdan/sh

sudo apt install shfmt
  • Section: universe/utils
  • Architecture: amd64
  • Source Package: golang-mvdan-sh
  • normalized package name match
  • Matched by: Shfmt
Ubuntu 24.04 LTS package indexes · archive.ubuntu.com · Ubuntu 24.04 LTS package indexes: shfmt from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz
apk95%

shfmt 3.13.1-r2

A shell parser, formatter, and interpreter (sh/bash/mksh)

https://mvdan.cc/sh

sudo apk add shfmt
  • License: BSD-3-Clause
  • Architecture: x86_64
  • Source Package: shfmt
  • 1 provides
  • normalized package name match
  • Matched by: Shfmt
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: shfmt from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
apk95%

shfmt-doc 3.13.1-r2

A shell parser, formatter, and interpreter (sh/bash/mksh) (documentation)

https://mvdan.cc/sh

sudo apk add shfmt-doc
  • License: BSD-3-Clause
  • Architecture: x86_64
  • Source Package: shfmt
  • normalized package name match
  • Matched by: Shfmt
Alpine Linux edge package indexes · dl-cdn.alpinelinux.org · Alpine Linux edge package indexes: shfmt-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
pacman95%

shfmt 3.13.1-1

Format shell programs

https://github.com/mvdan/sh

sudo pacman -S shfmt
  • License: BSD-3-Clause
  • Architecture: x86_64
  • 1 dependencies
  • normalized package name match
  • Matched by: Shfmt
Arch Linux sync databases · geo.mirror.pkgbuild.com · Arch Linux sync databases: shfmt from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz
zypper95%

shfmt 3.12.0-1.7

A shell formatter with bash support

https://github.com/mvdan/sh

sudo zypper install shfmt
  • License: BSD-3-Clause
  • Category: Unspecified
  • Architecture: x86_64
  • Source Package: shfmt
  • 1 provides
  • normalized package name match
  • Matched by: Shfmt
openSUSE Tumbleweed package metadata · download.opensuse.org · openSUSE Tumbleweed package metadata: shfmt from https://download.opensuse.org/tumbleweed/repo/oss/repodata/d310d5a96106e1e8872a385adf98aaa23be9db5d80937a6717314e7e7f37715065c6c748ab7ccee6475d620b46979c0fe64235fc0c46988e17edf659578fcf31-primary.xml.zst
MacPorts95%

shfmt

sudo port install shfmt
  • normalized package name match
  • Matched by: Shfmt
MacPorts ports tree · api.github.com · MacPorts ports tree: devel/shfmt/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
Scoop95%

main/shfmt

scoop install main/shfmt
  • normalized package name match
  • Matched by: Shfmt
Scoop official bucket manifest trees · api.github.com · Scoop official bucket manifest trees: bucket/shfmt.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
winget95%

mvdan.shfmt

winget install --id mvdan.shfmt -e
  • normalized package name match
  • Matched by: Shfmt
Windows Package Manager source index · cdn.winget.microsoft.com · Windows Package Manager source index: mvdan.shfmt from https://cdn.winget.microsoft.com/cache/source.msix

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

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