# Install ly with Homebrew, apk, dnf, Nix, pacman

Parse, manipulate or create documents in LilyPond format. Version 0.9.10 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:ly
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install ly
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add ly
```

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

- dnf (92%):

```sh
sudo dnf install ly
```

  Evidence: Fedora Rawhide package metadata: ly 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#ly
```

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

- pacman (92%):

```sh
sudo pacman -S ly
```

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

## Package facts

- **Package key:** brew:ly
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/ly>
- **Version:** 0.9.10
- **Source summary:** Parse, manipulate or create documents in LilyPond format
- **Homepage:** <https://github.com/frescobaldi/python-ly>
- **Repository:** <https://github.com/frescobaldi/python-ly>
- **Upstream docs:** <https://github.com/frescobaldi/python-ly#readme>
- **License:** GPL-2.0-or-later
- **Source archive:** <https://files.pythonhosted.org/packages/94/a2/c21c90a3790612521feca435e1019eae6edc6a15084aab91b13b47a7486c/python_ly-0.9.10.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- ly (cli)
- ly-server (cli)
- ly (alias)
- ly-server (alias)

## Dependencies

- python@3.14

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.9.10
- Local data: ok
- Upstream repository: https://github.com/frescobaldi/python-ly
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

python-ly is a Python library and command-line tool for parsing, manipulating, formatting, and creating documents in LilyPond notation format. The packaged executable is named `ly`.

### Project history

The project is written by the Frescobaldi developers, with Wilbert Berendsen named as the main author, and is used extensively by the Frescobaldi music-notation editor. Its Git history starts in December 2010 with tokenizer and highlighter work, while the public tag history includes v0.7 in January 2015 and later v0.9.x releases.

The documentation was built with Sphinx and published on Read the Docs. It describes both the `ly` command and the `ly` Python module, which includes lexers, document/token structures, pitch and indentation helpers, LilyPond data extraction, and related tooling for music-notation processing.

### Adoption history

python-ly has adoption through its role in Frescobaldi and through packaging as the `ly` CLI in multiple package managers. The batch metadata lists Alpine, Homebrew, Fedora/DNF, Nix, and Arch packages, giving it a broader footprint than a one-project helper library would normally have.

### How it is used

The README documents `ly` for reformatting or reindenting LilyPond files, transposing music, translating pitch names, converting LilyPond to syntax-colored HTML, and experimentally converting LilyPond to MusicXML. A representative use is `ly "indent; transpose c d" -o output.ly file.ly`.

### Why package nerds care

For package nerds, `ly` is a good example of a domain-specific CLI that ships from a Python library but matters in desktop publishing and music-engraving workflows. It connects command-line pipelines, Python APIs, Frescobaldi, and GNU LilyPond's plain-text score format.

### Timeline

- 2010: Public Git history begins with tokenizer/highlighter work.
- 2015: Sphinx documentation is initialized and early v0.7-v0.9 tags are published.
- 2020: v0.9.6 and v0.9.7 are tagged after a long-running 0.9 series.
- 2026: v0.9.10 appears in the official tag history.

### Related projects

- Frescobaldi uses python-ly extensively.
- GNU LilyPond is the plain-text music typesetter whose document format python-ly parses and manipulates.

### Sources

- <https://github.com/frescobaldi/python-ly>
- <https://python-ly.readthedocs.io/>
- <https://raw.githubusercontent.com/frescobaldi/python-ly/master/README.rst>
- <https://raw.githubusercontent.com/frescobaldi/python-ly/master/doc/index.rst>
- source_facts.package-manager


## Security Notes

broad file, network, media, or database tool signal.

- **Geiger risk:** blue / medium
- broad file, network, media, or database tool signal

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** ly
- **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 - ly: normalized package name match | nixpkgs package indexes: pkgs/by-name/ly/ly/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - ly - 1.4.1-r0: normalized package name match | Alpine Linux edge package indexes: ly from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Lightweight TUI (ncurses-like) display manager | https://codeberg.org/fairyglade/ly
- apk - ly-doc - 1.4.1-r0: normalized package name match | Alpine Linux edge package indexes: ly-doc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Lightweight TUI (ncurses-like) display manager (documentation) | https://codeberg.org/fairyglade/ly
- apk - ly-lang - 1.4.1-r0: normalized package name match | Alpine Linux edge package indexes: ly-lang from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Languages for package ly | https://codeberg.org/fairyglade/ly
- apk - ly-openrc - 1.4.1-r0: normalized package name match | Alpine Linux edge package indexes: ly-openrc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Lightweight TUI (ncurses-like) display manager (OpenRC init scripts) | https://codeberg.org/fairyglade/ly
- dnf - ly - 1.4.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ly from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Lightweight TUI display manager | https://codeberg.org/fairyglade/ly
- pacman - ly - 1.4.1-1: normalized package name match | Arch Linux sync databases: ly from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | TUI display manager | https://codeberg.org/fairyglade/ly


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [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.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [abcm2ps](https://www.automicvault.com/pkg/brew/abcm2ps/) - Shares av.db curated category or tags: cli, media, music-notation.
- [lilypond](https://www.automicvault.com/pkg/brew/lilypond/) - Shares av.db curated category or tags: cli, media, music-notation.
- [verovio](https://www.automicvault.com/pkg/brew/verovio/) - Shares av.db curated category or tags: cli, media, music-notation.
- [ocrmypdf](https://www.automicvault.com/pkg/brew/ocrmypdf/) - Shares av.db curated category or tags: cli, document-processing, media, python.
- [abcmidi](https://www.automicvault.com/pkg/brew/abcmidi/) - Shares av.db curated category or tags: cli, media, music-notation.
- [bandcamp-dl](https://www.automicvault.com/pkg/brew/bandcamp-dl/) - Shares av.db curated category or tags: cli, media, python.
- [ebook-tools](https://www.automicvault.com/pkg/brew/ebook-tools/) - Shares av.db curated category or tags: cli, media, python.
- [epr](https://www.automicvault.com/pkg/brew/epr/) - Shares av.db curated category or tags: cli, media, python.
- [psutils](https://www.automicvault.com/pkg/brew/psutils/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, document, document-processing, documents, media.
- [ccm](https://www.automicvault.com/pkg/brew/ccm/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, create, media, music, python.

## Combined YAML source

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