# Install smlfmt with Homebrew, Nix

Custom parser and code formatter for Standard ML. Version 1.3.0 via Homebrew; verified 2026-06-14.

## Install

```sh
sudo av install brew:smlfmt
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install smlfmt
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#smlfmt
```

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

## Package facts

- **Package key:** brew:smlfmt
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/smlfmt>
- **Version:** 1.3.0
- **Source summary:** Custom parser and code formatter for Standard ML
- **Homepage:** <https://github.com/shwestrick/smlfmt>
- **Repository:** <https://github.com/shwestrick/smlfmt>
- **Upstream docs:** <https://github.com/shwestrick/smlfmt#readme>
- **License:** MIT
- **Source archive:** <https://github.com/shwestrick/smlfmt/archive/refs/tags/v1.3.0.tar.gz>
- **Last updated:** 2026-06-14T15:13:50+02:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- smlfmt (cli)
- smlfmt (alias)

## Dependencies

- gmp

## Build dependencies

- mlton

## 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: 1.3.0
- Package-manager updated: 2026-06-14
- Local data: ok
- Upstream repository: https://github.com/shwestrick/smlfmt
- Upstream latest detected: v1.3.0 (current)
## Project history and usage

smlfmt is a command-line parser and formatter for Standard ML. It is a niche but package-manager-relevant developer tool because it brings modern formatter workflows, including check mode and whole-project formatting, to an older ML-family language ecosystem.

### Project history

The official README describes smlfmt as a custom parser and code formatter for Standard ML, fast enough for large projects and used to format its own source tree. The repository release list and README record v1.0.0 in January 2023, v1.2.0 in May 2025, and v1.3.0 in January 2026.

### Adoption history

The supplied package metadata shows smlfmt packaged in Homebrew and Nix, a typical adoption path for smaller language tooling. Its README targets command-line workflows rather than editor-only integration, including stdin/stdout use, CI-friendly checking, and `.mlb` whole-project formatting.

### How it is used

Users build it with MLton, format `.sml` files in place, pipe code through stdin/stdout, or pass an `.mlb` file to format many files. Options include `--preview`, `--preview-only`, `--read-only`, `--check`, width and indentation controls, and SuccessorML syntax toggles.

### Why package nerds care

Package maintainers care because smlfmt packages a language-specific formatter with MLton build requirements, command-line formatting semantics, and CI use through `--check`. It fills the same ergonomic role for Standard ML that formatter packages do for larger language ecosystems.

### Timeline

- 2023: v1.0.0 release published on GitHub.
- 2025: README records v1.2.0 release on May 2, 2025.
- 2026: README and release list record v1.3.0 on January 1, 2026.

### Related projects

- The README references MLton, MLBasis path maps, Emacs integration through `smlfmt.el`, SuccessorML syntax extensions, and hyperfine for timing measurements.

### Sources

- GitHub releases API for shwestrick/smlfmt: first listed release v1.0.0 on 2023-01-10.
- <https://github.com/shwestrick/smlfmt README: formatter purpose, features, release notes, build/run examples, options, performance notes.>
- input source_facts.package-manager: Homebrew and Nix package names.


## Security Notes

narrow executable package without higher-risk signals.

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

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** smlfmt
- **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 - smlfmt: normalized package name match | nixpkgs package indexes: pkgs/by-name/sm/smlfmt/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [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.
- [mlton](https://www.automicvault.com/pkg/brew/mlton/) - Build dependency declared by Homebrew.
- [smlpkg](https://www.automicvault.com/pkg/brew/smlpkg/) - Shares av.db curated category or tags: cli, developer-tools, sml, standard-ml.
- [gofumpt](https://www.automicvault.com/pkg/brew/gofumpt/) - Shares av.db curated category or tags: cli, developer-tools, formatter.
- [goimports](https://www.automicvault.com/pkg/brew/goimports/) - Shares av.db curated category or tags: cli, developer-tools, formatter.
- [jsonfmt](https://www.automicvault.com/pkg/brew/jsonfmt/) - Shares av.db curated category or tags: cli, developer-tools, formatter.
- [jsonpp](https://www.automicvault.com/pkg/brew/jsonpp/) - Shares av.db curated category or tags: cli, developer-tools, formatter.
- [odinfmt](https://www.automicvault.com/pkg/brew/odinfmt/) - Shares av.db curated category or tags: cli, developer-tools, formatter.
- [pgformatter](https://www.automicvault.com/pkg/brew/pgformatter/) - Shares av.db curated category or tags: cli, developer-tools, formatter.
- [elm-format](https://www.automicvault.com/pkg/brew/elm-format/) - Local package facts share a topical domain. Shared terms: cli, code, developer, developer-tools, formatter.
- [lunarml](https://www.automicvault.com/pkg/brew/lunarml/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, gmp, ml.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- 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
