# Install cfr-decompiler with Homebrew

Yet Another Java Decompiler. Version 0.152 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:cfr-decompiler
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install cfr-decompiler
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:cfr-decompiler
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/cfr-decompiler>
- **Version:** 0.152
- **Source summary:** Yet Another Java Decompiler
- **Homepage:** <https://www.benf.org/other/cfr/>
- **Repository:** <https://github.com/leibnitz27/cfr>
- **Upstream docs:** <https://github.com/leibnitz27/cfr#readme>
- **License:** MIT
- **Source archive:** <https://github.com/leibnitz27/cfr.git>
- **Last updated:** 2026-06-22T14:03:00-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- cfr-decompiler (cli)
- cfr-decompiler (alias)

## Dependencies

- openjdk@21

## Build dependencies

- maven

## 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: 0.152
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/leibnitz27/cfr
- info: No cached GitHub release or tag data was available.
## Project history and usage

CFR is a Java bytecode decompiler distributed as the `cfr-decompiler` Homebrew formula. Its official site describes it as another Java decompiler that can handle modern Java features while being written in Java 6 for broad runtime compatibility.

### Project history

The official GitHub repository was created in May 2014 and points users to benf.org as the main CFR site. The README says CFR can decompile modern Java features, including Java 9, 12, and 14 features, and can make a reasonable attempt at JVM languages such as Kotlin, Scala, and Groovy.

The benf.org project page records a long release history, including 0.146 in July 2019, 0.147 in October 2019, 0.150 in May 2020, 0.151 in February 2021, and 0.152 in December 2021. The README notes that since 0.145, binaries have also been published on GitHub releases.

### Adoption history

CFR's adoption comes from the Java reverse-engineering and debugging niche: developers use it when they need readable Java-like output from class files or jars, especially for newer language features that older decompilers may not handle cleanly.

Official distribution includes the benf.org jar downloads, GitHub release artifacts, and Maven Central. The Homebrew package wraps that Java tool in a package-manager-friendly executable for macOS users.

### How it is used

The documented use is to run the versioned jar against class names or class files, or pass an entire jar and an `--outputdir` when emitting files. The README also documents `--help` for arguments.

CFR supports an options file for decompilation tests, but the official user docs do not document a persistent application config path or credential file for normal CLI use, so both locations are null.

### Why package nerds care

CFR matters to package people because decompilers are operational tools as much as developer tools: they are installed when source is missing, artifacts are suspicious, or bytecode behavior needs inspection.

It is also a classic example of a small Java jar that package managers wrap into a named executable. The package value is not dependency complexity; it is putting a known decompiler on PATH.

### Timeline

- 2014: The leibnitz27/cfr public repository is created on GitHub.
- 2019: CFR 0.146 and 0.147 add support and fixes for Java and Kotlin bytecode patterns.
- 2021: CFR 0.152 is published on benf.org with support and fixes for newer Java features including sealed classes.
- 2026: The official site notes renewed tinkering and points users to the GitHub repository for a modern version.

### Related projects

- The Java compiler and JVM class-file format are the direct targets CFR decompiles.
- Kotlin, Scala, and Groovy are named in the README as JVM languages whose class files CFR may attempt to turn back into Java.
- Maven Central is an official distribution channel for CFR artifacts.

### Sources

- <https://api.github.com/repos/leibnitz27/cfr>
- <https://github.com/leibnitz27/cfr>
- <https://www.benf.org/other/cfr/>
- <https://github.com/leibnitz27/cfr#readme>
- <https://www.benf.org/other/cfr>
- <https://formulae.brew.sh/api/formula/cfr-decompiler.json>


## 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:** cfr-decompiler
- **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


## Related links

- [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.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [openjdk@21](https://www.automicvault.com/pkg/brew/openjdk-21/) - Runtime dependency declared by Homebrew.
- [maven](https://www.automicvault.com/pkg/brew/maven/) - Build dependency declared by Homebrew.
- [byteman](https://www.automicvault.com/pkg/brew/byteman/) - Shares av.db curated category or tags: bytecode, cli, developer-tools, java.
- [fernflower](https://www.automicvault.com/pkg/brew/fernflower/) - Shares av.db curated category or tags: bytecode, cli, decompiler, developer-tools, java.
- [procyon-decompiler](https://www.automicvault.com/pkg/brew/procyon-decompiler/) - Shares av.db curated category or tags: bytecode, cli, decompiler, developer-tools, java.
- [proguard](https://www.automicvault.com/pkg/brew/proguard/) - Shares av.db curated category or tags: bytecode, cli, developer-tools, java.
- [tiny-remapper](https://www.automicvault.com/pkg/brew/tiny-remapper/) - Shares av.db curated category or tags: bytecode, cli, developer-tools, java.
- [vineflower](https://www.automicvault.com/pkg/brew/vineflower/) - Shares av.db curated category or tags: cli, decompiler, decompilers, developer-tools, java.
- [bnd](https://www.automicvault.com/pkg/brew/bnd/) - Shares av.db curated category or tags: cli, developer-tools, java.
- [checkstyle](https://www.automicvault.com/pkg/brew/checkstyle/) - Shares av.db curated category or tags: cli, developer-tools, java.
- [dex2jar](https://www.automicvault.com/pkg/brew/dex2jar/) - Both packages touch the same language runtime or ecosystem. Shared terms: bytecode, cli, developer, developer-tools, engineering.

## Combined YAML source

View the package source record on GitHub. [combined/cfr-decompiler.yml](https://github.com/automic-vault/db/blob/main/combined/cfr-decompiler.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
- cross-ecosystem install command graph
