# Install fava with Homebrew, apk, MacPorts, Nix

Web interface for the double-entry bookkeeping software Beancount. Version 1.30.14 via Homebrew; verified 2026-06-17. Also installable with nix: nix profile install nixpkgs#fava.

## Install

```sh
sudo av install brew:fava
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install fava
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install fava
```

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

### Linux

- apk (92%):

```sh
sudo apk add fava
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#fava
```

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

## Package facts

- **Package key:** brew:fava
- **Package manager:** Homebrew
- **Version:** 1.30.14
- **Source summary:** Web interface for the double-entry bookkeeping software Beancount
- **Homepage:** <https://beancount.github.io/fava/>
- **Repository:** <https://github.com/beancount/fava>
- **Last updated:** 2026-06-17T21:36:00Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- fava (alias)

## Install behavior

- Bottle: not available

## Freshness

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

Fava is the web interface for Beancount, the plain-text double-entry accounting system. It turns a Beancount ledger into a local browser application for reports, charts, journals, editing, import workflows, documents, query results, and account navigation.

### Project history

The Fava changelog records the first commit on December 4, 2015, and says early versions could not be installed using only `pip`. Version 0.2.3, released in February 2016, marked the point where `pip install` worked with all requirements included.

Fava reached version 1.0 in October 2016 with a major UI and architecture refresh: improved layout and fonts, better small-screen behavior, asynchronous page loading, and configuration moved into custom entries in the Beancount file rather than a separate Fava config file.

After 1.0, Fava evolved from a reporting UI into a broader personal-finance workbench. Releases added document uploads, transaction entry, translations, a Beancount import interface, entry editing, richer filtering, charts, query visualization, extension points, editor improvements, and frontend-rendered report pages.

Recent releases show Fava tracking both Python/web frontend changes and Beancount compatibility. Version 1.25 moved the editor to a tree-sitter grammar and introduced a Flask application factory; version 1.30 added Beancount 3 support and upgraded the frontend to Svelte 5.

### Adoption history

Fava's adoption is tied to Beancount's plain-text accounting community: it became the default graphical companion for users who keep the ledger as text but want searchable, charted, browser-based views. The official README points users to an online demo, the website, `pip3 install fava`, and the `fava ledger.beancount` workflow.

Packaging followed the same practical path as other Python CLI apps. In this batch input Fava appears in Alpine, Homebrew, MacPorts, and Nix package metadata, which matches its role as a local developer-style tool rather than a hosted SaaS service.

### How it is used

The common usage path is deliberately small: install Fava, run `fava ledger.beancount`, and open the local web interface at `http://localhost:5000`. Users already familiar with Beancount can use Fava as a viewer and editor over their existing ledger file.

Fava stores project options in the Beancount file via custom entries, so Homebrew-style installation does not imply a global Fava configuration file. That design matters for package metadata: the executable is packaged, but the user's accounting state and Fava options live with the ledger.

### Why package nerds care

Fava is a good example of a package-manager friendly personal web app: a CLI command launches a local Flask/Svelte interface over plain text data, without asking the package manager to install a daemon, database, or desktop application.

It also matters because it gives Beancount users a maintained alternative to command-line-only reporting and older web views, while preserving the text-ledger workflow that makes Beancount attractive to developers and accountants who want version-controlled finances.

### Timeline

- 2015: First Fava commit recorded on December 4.
- 2016: Version 0.2.3 makes `pip install` work with requirements included.
- 2016: Version 1.0 ships a major UI refresh and moves configuration into Beancount entries.
- 2017: Version 1.4 adds an interface for Beancount's import system.
- 2018: Version 1.8 ends separate GUI releases because of maintenance burden.
- 2023: Version 1.25 adopts tree-sitter for editor parsing and a Flask application factory.
- 2024: Version 1.30 adds Beancount 3 support and upgrades the frontend to Svelte 5.

### Related projects

- Beancount is Fava's underlying accounting system and data format.
- The changelog references older Beancount web/reporting expectations such as missing Holdings views compared with `bean-web`, and later Beancount-adjacent tools such as beanquery and beangulp.

### Sources

- <https://beancount.github.io/fava>
- <https://beancount.github.io/fava/usage.html>
- <https://github.com/beancount/fava>
- <https://raw.githubusercontent.com/beancount/fava/main/README.rst>
- <https://raw.githubusercontent.com/beancount/fava/main/CHANGES>


## Security Notes

No matching local secret-handling manifest was found for fava. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Other Package-Manager Records

- Nix - fava: normalized package name match | nixpkgs package indexes: pkgs/by-name/fa/fava/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - fava - 1.28-r0: normalized package name match | Alpine Linux edge package indexes: fava from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Web interface for Beancount | https://beancount.github.io/fava/
- apk - fava-pyc - 1.28-r0: normalized package name match | Alpine Linux edge package indexes: fava-pyc from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | Precompiled Python bytecode for fava | https://beancount.github.io/fava/
- MacPorts - fava: normalized package name match | MacPorts ports tree: python/fava/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

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


## Sources

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