# Install idris2 with Homebrew, apk, dnf, MacPorts, Nix

Pure functional programming language with dependent types. Version 0.8.0 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:idris2
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install idris2
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install idris2
```

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

### Linux

- apk (92%):

```sh
sudo apk add idris2
```

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

- dnf (92%):

```sh
sudo dnf install idris2
```

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

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

## Package facts

- **Package key:** brew:idris2
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/idris2>
- **Version:** 0.8.0
- **Source summary:** Pure functional programming language with dependent types
- **Homepage:** <https://www.idris-lang.org/>
- **Repository:** <https://github.com/idris-lang/Idris2>
- **Upstream docs:** <https://idris2.readthedocs.io/en/latest>
- **License:** BSD-3-Clause
- **Source archive:** <https://github.com/idris-lang/Idris2/archive/refs/tags/v0.8.0.tar.gz>
- **Last updated:** 2026-06-22T14:03:45-07:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- idris2 (cli)
- idris2 (alias)

## Dependencies

- chezscheme

## Build dependencies

- gmp

## 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.8.0
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/idris-lang/Idris2
- Upstream latest detected: v0.8.0 (current)
## Project history and usage

Idris 2 is the second major implementation of the Idris dependently typed programming language. It keeps the type-driven programming culture of Idris while changing the core language around Quantitative Type Theory, giving the compiler explicit information about erased, linear, and unrestricted values.

For package users, Idris 2 matters less as a conventional scripting tool and more as a research-grade language runtime that became packaged enough for everyday experimentation: a compiler, REPL, standard libraries, package metadata through .ipkg files, editor integrations, and a small but unusually technical ecosystem.

### Project history

Idris development is led by Edwin Brady at the University of St Andrews, and the Idris site presents the language as a vehicle for type-driven development: types are treated as plans that guide construction of programs. Idris 2 grew out of that project as a new version of the dependently typed language rather than a small revision of Idris 1.

The Idris 2 paper submitted in 2021 describes the language as a new version of Idris with a core based on Quantitative Type Theory. The official migration documentation emphasizes the practical consequence: every variable has a quantity, so the compiler can distinguish erased values, exactly-once values, and ordinary unrestricted values.

The public Idris2 repository records release tags beginning with v0.2.0 in 2020 and continuing through later 0.x releases. The README also points users to Idris 2 talks from the late 2010s, the official documentation, the Pack package manager, curated community libraries, and idris2-lsp.

### Adoption history

Adoption has centered on the functional programming, dependent-types, theorem-proving, and programming-language-research communities. The project deliberately preserves a path for Idris 1 users through documentation about language differences and book updates, while also advertising Idris 2 specific learning material and talks.

Package-manager adoption reflects that Idris 2 became installable outside its research niche. The supplied package metadata lists Homebrew, Alpine, Fedora, MacPorts, and Nix package names, giving users a route to the compiler without building the full language stack manually.

### How it is used

Users run the idris2 compiler and REPL to write dependently typed programs, explore holes interactively, compile programs, and build packages described by .ipkg files. The README describes Pack as the common way to install Idris packages and work with compatible package collections.

The language is commonly used for examples where types express program invariants: length-indexed data, proof-carrying code, safe protocols, and resource-aware APIs. Idris 2's QTT-based quantities make erasure and linear usage visible to programmers instead of leaving them as compiler-only implementation details.

### Why package nerds care

Idris 2 is a package-nerd marker for the point where dependently typed programming moved from papers and conference demos into reproducible command-line tooling. Installing it from Homebrew or Nix pulls a language whose central design is tied directly to contemporary type theory.

It is also interesting because its ecosystem has package metadata of its own. The README's .ipkg and Pack discussion makes Idris 2 both a package in Unix package managers and a language with a nested package culture.

### Timeline

- 2018: Public Idris 2 talks appear in the official README resource list.
- 2020: Public Idris2 release tags begin with v0.2.0.
- 2021: Edwin Brady's Idris 2: Quantitative Type Theory in Practice paper is submitted and appears at ECOOP 2021.
- 2022: v0.6.0 release tag marks another packaged compiler milestone.
- 2023: v0.7.0 release tag is recorded in the upstream repository.
- 2025: v0.8.0 release tag is recorded in the upstream repository.

### Related projects

- Idris 1 is the direct predecessor and remains the context for much of the teaching material, including Type-Driven Development with Idris and the official migration notes.
- Pack, idris2-pack-db, idris2-lsp, the idris-community organization, and the Idris Zulip form much of the surrounding tooling and community infrastructure.

### Sources

- <https://arxiv.org/abs/2104.00480>
- <https://formulae.brew.sh/formula/idris2>
- <https://github.com/idris-lang/Idris2>
- <https://idris2.readthedocs.io/en/latest/updates/updates.html>
- <https://www.idris-lang.org/>


## 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:** idris2
- **Version Scheme:** 0
- **Revision:** 2
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - idris2: normalized package name match | nixpkgs package indexes: pkgs/by-name/id/idris2/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - idris2 - 0.8.0-r2: normalized package name match | Alpine Linux edge package indexes: idris2 from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Purely functional programming language with first class types | https://www.idris-lang.org
- apk - idris2-api - 0.8.0-r2: normalized package name match | Alpine Linux edge package indexes: idris2-api from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Idris API for developing support tools (e.g. external code generator) | https://www.idris-lang.org
- apk - idris2-doc - 0.8.0-r2: normalized package name match | Alpine Linux edge package indexes: idris2-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Purely functional programming language with first class types (documentation) | https://www.idris-lang.org
- dnf - idris2 - 0.8.0-5.fc45: normalized package name match | Fedora Rawhide package metadata: idris2 from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Purely functional programming language with first class types | https://www.idris-lang.org
- dnf - idris2-doc - 0.8.0-5.fc45: normalized package name match | Fedora Rawhide package metadata: idris2-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Idris2 documentation | https://www.idris-lang.org
- dnf - idris2-libs - 0.8.0-5.fc45: normalized package name match | Fedora Rawhide package metadata: idris2-libs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | idris2 runtime support library | https://www.idris-lang.org
- MacPorts - idris2: normalized package name match | MacPorts ports tree: lang/idris2/Portfile from https://api.github.com/repos/macports/macports-ports/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.
- [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.
- [chezscheme](https://www.automicvault.com/pkg/brew/chezscheme/) - Runtime dependency declared by Homebrew.
- [lisette](https://www.automicvault.com/pkg/brew/lisette/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [nesc](https://www.automicvault.com/pkg/brew/nesc/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [vala](https://www.automicvault.com/pkg/brew/vala/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [agda](https://www.automicvault.com/pkg/brew/agda/) - Shares av.db curated category or tags: cli, dependent-types, functional-programming, language-runtime, programming-language.
- [ats2-postiats](https://www.automicvault.com/pkg/brew/ats2-postiats/) - Shares av.db curated category or tags: cli, compiler, dependent-types, language-runtime, programming-language.
- [coconut](https://www.automicvault.com/pkg/brew/coconut/) - Shares av.db curated category or tags: cli, compiler, functional-programming, language-runtime, programming-language.
- [frege](https://www.automicvault.com/pkg/brew/frege/) - Shares av.db curated category or tags: cli, compiler, functional-programming, language-runtime, programming-language.
- [halide](https://www.automicvault.com/pkg/brew/halide/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [urweb](https://www.automicvault.com/pkg/brew/urweb/) - Local package facts share a topical domain. Shared terms: cli, compiler, development, functional, functional-programming.

## Combined YAML source

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