Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Nix
  3. nixpkgs-hammering

nixpkgs-hammering

MITNix

A linter for Nix package expressions that identifies common mistakes and provides explanations for Nixpkgs contributors.

GitHubGitHub
333 stars19 forks0 contributors

What is nixpkgs-hammering?

nixpkgs-hammering is a specialized linter tool for Nix package expressions that identifies common mistakes and anti-patterns in Nixpkgs. It provides detailed explanations for warnings to help package maintainers improve code quality and adhere to Nix packaging conventions.

Target Audience

Nix package maintainers, especially those reviewing pull requests or learning Nix packaging best practices, and developers contributing packages to Nixpkgs.

Value Proposition

It offers targeted, educational feedback that catches subtle packaging errors while teaching Nix idioms, helping maintainers ensure package quality and consistency across the Nixpkgs repository.

Overview

Beat your package expressions into a shape

Use Cases

Best For

  • Reviewing Nix package pull requests for common mistakes
  • Learning Nix packaging conventions and best practices
  • Automating quality checks in Nix package development workflows
  • Identifying anti-patterns in existing Nix package expressions
  • Ensuring consistency across packages in Nixpkgs
  • Catching subtle errors that might cause build or runtime issues

Not Ideal For

  • Projects that do not use Nix or Nixpkgs for package management
  • Teams requiring automated code fixes or real-time linting in IDEs
  • Large-scale CI pipelines where minimal evaluation overhead is critical due to performance impacts

Pros & Cons

Pros

Comprehensive Rule Coverage

Combines Nix-based overlays and Rust-based checks to catch a wide range of packaging mistakes, from simple errors to complex anti-patterns via AST parsing.

Educational Explanations

Provides detailed feedback for each warning, helping users learn Nix idioms and best practices, as emphasized in the project's philosophy.

Targeted Evaluation

Uses overlays to apply checks only to specified package attributes, avoiding unnecessary dependency evaluation and improving efficiency.

Multi-Platform Support

Offers commands for classic Nix, Flakes, and unstable Nix, making it accessible across different Nix setups as shown in the usage instructions.

Cons

Potential False Positives

The README notes that rules almost always apply but have exceptions, requiring users to manually review warnings to avoid incorrect changes.

Development Friction

New checks must be added to the Git index for discovery, adding an extra step in the development workflow and potentially slowing contributions.

No Auto-fix Capability

The tool only identifies issues without providing automated fixes, necessitating manual corrections and increasing maintenance effort.

Frequently Asked Questions

Quick Stats

Stars333
Forks19
Contributors0
Open Issues47
Last commit5 days ago
CreatedSince 2020

Tags

#developer-tools#code-quality#nix#nixpkgs#rust#static-analysis

Built With

N
Nix
R
Rust

Included in

Nix5.0k
Auto-fetched 12 hours ago

Related Projects

devenvdevenv

Fast, Declarative, Reproducible, and Composable Developer Environments using Nix

Stars7,173
Forks529
Last commit23 hours ago
nhnh

Yet another Nix CLI helper. [Maintainers=@NotAShelf, @faukah]

Stars3,035
Forks122
Last commit1 day ago
commacomma

Comma runs software without installing it. [maintainers=@Artturin,@burke,@DavHau]

Stars1,725
Forks62
Last commit29 days ago
nix-output-monitornix-output-monitor

Pipe your nix-build output through the nix-output-monitor a.k.a nom to get additional information while building.

Stars1,597
Forks52
Last commit11 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub