Meta-repository — the Nix User Repository (qompassai fork of nix-community/NUR): an index (`repos.json`) of community package repositories

NUR

NUR

Version 1.00Source on GitHub

OVERVIEW

NUR is a community-driven meta repository for Nix packages: it provides access to user repositories containing Nix expressions and lets you install packages via attributes such as `nur.repos.<name>.<package>`, with packages built from source and not reviewed by Nixpkgs members. This repo is Qompass AI's fork of `nix-community/NUR`; its `repos.json` indexes 581 repositories, including Qompass AI's own entry `qompassai` → `https://github.com/qompassai/nur-packages`.

HOW IT WORKS

  1. 1Add NUR as a flake input (`nur.url = "github:nix-community/NUR"`, following your nixpkgs), or import it via `packageOverrides` with `builtins.fetchTarball` in `~/.config/nixpkgs/config.nix` / NixOS `configuration.nix`.
  2. 2Use the flake's `overlays.default` or `legacyPackages`, or the NixOS/Home Manager modules (`nur.modules.nixos.default`, `nur.modules.homeManager.default`).
  3. 3Install or reference packages from the namespace, e.g. `nix-shell -p nur.repos.mic92.hello-nur` or `environment.systemPackages = [ nur.repos.mic92.hello-nur ]`.
  4. 4Find packages via the NUR package search at nur.nix-community.org or the nur-combined repository.
  5. 5To contribute a repository: create a repo with a top-level `default.nix` returning a set of derivations, add it to `repos.json`, run `./bin/nur format-manifest`, commit only `repos.json` (not `repos.json.lock`), and open a pull request.
How it works, step by step — each step as the project's own documentation states it.

CONCEPTS

ONE INDEX — 581 COMMUNITY REPOSITORIESrepos.jsoneach entry: a git urlfile · branch · submodulesqompassai → nur-packagesthis fork's own entryEVALUATIONdefault.nix imports each reporepos // repoOverridesnur.repos.<name>.<pkg>repos.json.lock pins revisionsupdated by bin/nur updateYOUR PACKAGE SEToverlay / legacyPackagesNixOS + Home Manager modulesnix-shell -p nur.repos.…find packages atnur.nix-community.orgPACKAGES BUILD FROM SOURCE — NOT REVIEWED BY NIXPKGS MEMBERSQompass AI's fork of nix-community/NUR — the index is upstream's design, the entry above is Qompass's
NUR's index flow: repos.json registers 581 community repositories; evaluating default.nix resolves each into the nur.repos.<name>.<package> namespace, locked to pinned revisions, and packages build from source on the consumer's machine.

CONFIGURATION

OptionDefaultWhat it does
repos.<name>.urlrequired (no default)Git repository URL for the member package repository; each URL must point to a git repository
repos.<name>.file`default.nix` at repo root (evaluator uses `attr.file or ""`)Use a different file as the root expression, relative to the repository root
repos.<name>.github-contact—Maintainer contact recorded for the entry (present on most entries)
repos.<name>.branch—Branch to track, when set (Qompass entry sets `main`)
repos.<name>.submodules—Whether the member repo is fetched with submodules (Qompass entry sets true)
repos.qompassai entryurl `https://github.com/qompassai/nur-packages`, branch `main`, submodules true, github-contact `phaedrusflow`Qompass AI's own registered repository in this index
default.nix argument `repoOverrides`{ }Override or add repositories locally, merged over the manifest (`repos // repoOverrides`)
default.nix arguments `nurpkgs` / `pkgs`import <nixpkgs> { }Package sets NUR itself / member repos are called with
repos.json.lockgeneratedLocked revisions per repository, updated by `bin/nur update` and a daily GitHub Action; contributors must not commit it with a new entry

CONTROLS

ActionControl
Install a package in a shellnix-shell -p nur.repos.mic92.hello-nur
Install a package with nix-envnix-env -f '<nixpkgs>' -iA nur.repos.mic92.hello-nur
Add a package on NixOS`environment.systemPackages = with pkgs; [ nur.repos.mic92.hello-nur ];` (with the overlay/packageOverrides in place)
Build a member repo's package locallynix-build --arg pkgs 'import <nixpkgs> {}' -A hello-nur` / `nix-shell --arg pkgs 'import <nixpkgs> {}' -A hello-nur
Sort/format the manifest before committing./bin/nur format-manifest
Update and test the lock file`bin/nur update` (updates `repos.json.lock` and runs the evaluation check)
Trigger a faster lock update after pushing your repocurl -XPOST https://nur-update.nix-community.org/update?repo=<name>
Local evaluation check for a member reponix-env -f . -qa \* --meta --allowed-uris https://static.rust-lang.org --option restrict-eval true --option allow-import-from-derivation true --drv-path --show-trace -I nixpkgs=$(nix-instantiate --find-file nixpkgs) -I ./ --json

NOT COVERED

- This is a fork: the README, `default.nix`, `flake.nix`, and `bin/nur` are the upstream nix-community/NUR code (maintainer of record in the README is Pandapip1); no Qompass-specific code changes were identified — Qompass's participation is its `repos.json` entry pointing at the separate `qompassai/nur-packages` repo, whose contents are outside this pack's scope. - The README's examples use the upstream `github:nix-community/NUR` URL, not the qompassai fork URL; which remote a user should consume is not stated in the fork. - `ci/` and `lib/` internals (evaluation, repo fetching) were not read beyond `default.nix`/`flake.nix`.

REFERENCES

  1. NUR — the Nix User Repository (upstream)The upstream project this repository forks: its README defines the repos.json manifest, the attribute namespace, and the contribution flow.
  2. Nix Reference ManualThe Nix language and evaluator semantics the index relies on — attribute sets, overrides, and derivation builds from source.