# Install empty with Homebrew, Nix

Lightweight Expect-like PTY tool for shell scripts. Version 0.6.23d via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:empty
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install empty
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#empty
```

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

## Package facts

- **Package key:** brew:empty
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/empty>
- **Version:** 0.6.23d
- **Source summary:** Lightweight Expect-like PTY tool for shell scripts
- **Homepage:** <https://empty.sourceforge.net/>
- **Repository:** <https://sourceforge.net/p/empty/code>
- **Upstream docs:** <https://empty.sourceforge.net/>
- **License:** BSD-3-Clause
- **Source archive:** <https://downloads.sourceforge.net/project/empty/empty/empty-0.6.23d/empty-0.6.23d.tgz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- empty (cli)
- empty (alias)

## Install behavior

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

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.6.23d
- Local data: ok
- Upstream repository: https://empty.sourceforge.net/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

`empty` is a lightweight Unix PTY automation tool meant to let shell scripts drive interactive programs without pulling in Tcl/Expect, Perl, Python, or a larger scripting runtime.

### Project history

The official site says `empty` was written by Mikhail E. Zakharov, based on the idea of Daniel J. Bernstein's pty-4.0 but without porting pty-4.0 code. Its copyright notice spans 2005 to 2020.

### Adoption history

The project page lists successful compilation and testing on a broad set of Unix-like systems, including BSDs, macOS, Linux, Solaris, AIX, HP-UX, OSF1, and Cygwin. That portability is the main adoption story rather than a large ecosystem.

### How it is used

`empty` runs a process under a pseudo-terminal and then sends or waits for text through named input and output files. The homepage compares a short telnet login sequence against Tcl/Expect, Perl Expect, and Python Pexpect examples.

### Why package nerds care

The package is interesting because it keeps the old Unix promise small: PTY scripting from plain shell, entirely in C, with minimal dependencies. It is the sort of utility that survives in package managers because it solves one awkward automation job without dragging in a language stack.

### Related projects

- The homepage compares `empty` directly with Tcl/Expect, Perl Expect, and Python Pexpect, and notes the conceptual link to pty-4.0.

### Sources

- <https://empty.sourceforge.net/>
- <https://sourceforge.net/p/empty/code>


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal

## Source Database Details

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

## Other Package-Manager Records

- Nix - empty: normalized package name match | nixpkgs package indexes: pkgs/by-name/em/empty/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [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.
- [sexpect](https://www.automicvault.com/pkg/brew/sexpect/) - Shares av.db curated category or tags: automation, cli, developer-tools, expect, pty.
- [ahoy](https://www.automicvault.com/pkg/brew/ahoy/) - Shares av.db curated category or tags: automation, cli, developer-tools.
- [clive](https://www.automicvault.com/pkg/brew/clive/) - Shares av.db curated category or tags: automation, cli, developer-tools.
- [cmdshelf](https://www.automicvault.com/pkg/brew/cmdshelf/) - Shares av.db curated category or tags: automation, cli, developer-tools.
- [docker-gen](https://www.automicvault.com/pkg/brew/docker-gen/) - Shares av.db curated category or tags: automation, cli, developer-tools.
- [entr](https://www.automicvault.com/pkg/brew/entr/) - Shares av.db curated category or tags: automation, cli, developer-tools.
- [expect](https://www.automicvault.com/pkg/brew/expect/) - Shares av.db curated category or tags: automation, cli, developer-tools.
- [gaze](https://www.automicvault.com/pkg/brew/gaze/) - Shares av.db curated category or tags: automation, cli, developer-tools.
- [sshpass](https://www.automicvault.com/pkg/brew/sshpass/) - Local package facts share a topical domain. Shared terms: automation, cli, developer, developer-tools.
- [zsh](https://www.automicvault.com/pkg/brew/zsh/) - Local package facts share a topical domain. Shared terms: cli, developer, developer-tools, scripting, shell.

## Combined YAML source

View the package source record on GitHub. [combined/empty.yml](https://github.com/automic-vault/db/blob/main/combined/empty.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
