# Install mask with Homebrew, MacPorts, Nix, scoop

CLI task runner defined by a simple markdown file. Version 0.11.7 via Homebrew; verified from local package data. Also installable with nix: nix profile install nixpkgs#mask.

## Install

```sh
sudo av install brew:mask
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install mask
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install mask
```

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

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#mask
```

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

### Windows

- Scoop (92%):

```sh
scoop install main/mask
```

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

## Package facts

- **Package key:** brew:mask
- **Package manager:** Homebrew
- **Version:** 0.11.7
- **Source summary:** CLI task runner defined by a simple markdown file
- **Homepage:** <https://github.com/jacobdeichert/mask/>
- **Repository:** <https://github.com/jacobdeichert/mask>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- mask (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.11.7
## Project history and usage

mask is a Rust CLI task runner whose commands are defined in a Markdown file. It treats `maskfile.md` as both human-readable project documentation and executable command metadata.

### Project history

The mask repository was created in July 2019, and the earliest GitHub releases followed within the same month. Its initial release introduced the core Markdown-driven task-runner idea; later early releases added shell executors and adjusted argument syntax so required arguments would not conflict with Markdown rendering.

The README explains the author's motivation: mask grew from frustration with Makefile syntax, interest in `just`, and inspiration from `maid`, while choosing a single Rust binary instead of an npm package with many dependencies. That origin is central to its package identity: a lightweight executable with docs-as-commands semantics.

### Adoption history

mask has modest but real adoption for a specialized developer tool, with GitHub showing around 1.6k stars and packaging in Homebrew, MacPorts, Nix, and Scoop according to the supplied package metadata.

Its adoption is concentrated among users who prefer checked-in project task files that read like documentation, especially where a `Makefile` or ad hoc scripts feel too terse for onboarding.

### How it is used

A project defines headings, blockquotes, options, and code blocks in `maskfile.md`; running `mask build` or another subcommand executes the associated script. The README documents support for positional arguments, named flags, multiple runtimes, nested commands, and injected helper variables.

By default mask searches the current directory for `maskfile.md`, but `--maskfile <path_to_maskfile>` lets users run a project or global task file from another location.

### Why package nerds care

mask is interesting to package users because it competes in the same ergonomic space as `make`, `just`, and npm scripts while using Markdown as the configuration language.

The single-binary Rust distribution model makes it easy to install through general package managers, which fits its pitch as a low-friction project automation tool.

### Timeline

- 2019: GitHub repository created.
- 2019: v0.2.0 initial public release.
- 2019: v0.2.1 adds bash, zsh, and fish executors.
- 2026: GitHub lists mask v0.11.7 as the latest release in January 2026.

### Related projects

- mask is conceptually related to `make`, `just`, and `maid`.
- Its parser is also exposed as the `mask-parser` crate, though the README says it is not yet documented or stable.

### Sources

- <https://api.github.com/repos/jacobdeichert/mask>
- <https://github.com/jacobdeichert/mask>
- <https://github.com/jacobdeichert/mask/releases?page=3>
- source_facts.package-manager-url


## 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: maskfile.md, file supplied with --maskfile
## Other Package-Manager Records

- Nix - mask: normalized package name match | nixpkgs package indexes: pkgs/by-name/ma/mask/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- MacPorts - mask: normalized package name match | MacPorts ports tree: sysutils/mask/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/mask: normalized package name match | Scoop official bucket manifest trees: bucket/mask.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/mask.yml](https://github.com/mxcl/pkgdb/blob/main/combined/mask.yml)


## Sources

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