smithery/nix-community

Nix Packaging

Package new software or update existing packages using Nix

Installation

$ npx skills add smithery/nix-community --skill nix-packaging

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 1,640 B
  • docs SUMMARY.md 79 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Overview

Create new Nix packages or update existing ones, with language-specific examples and guidance.

Workflow: Creating a New Package

  1. Identify the software source: internal to this repo or external (e.g., a GitHub repository).
  2. Determine the programming language(s) used.
  3. Analyze the software structure (build system, dependencies, configuration files).
  4. Create the package following language-specific guidance below.
  5. Optionally, integrate the package into the current project (e.g., add to overlay and expose via packages in flake.nix).
  6. Test iteratively: run nix build .#<package-name>, read errors, fix issues, and rebuild until successful.

Workflow: Updating an Existing Package

Typically, update the version and source fetching attributes (e.g., fetchFromGitHub). The hash field must also be updated using one of these methods:

Method 1: Calculate the new hash directly

# Get the hash
nix-prefetch-url --type sha256 --unpack https://github.com/owner/repo/archive/refs/tags/v<NEW_VERSION>.tar.gz
# Convert to SRI format
nix hash convert --hash-algo sha256 <old-hash>

Method 2: Let Nix tell you the hash Set hash = ""; and run the build. The error message will display the correct hash.

For language-specific update steps, see the references below.

Language-Specific Packaging Skills

  • [Python](./python/python.md) - Packaging Python modules
  • [Rust](./rust/rust.md) - Packaging Rust applications
  • [JavaScript/TypeScript](./js/js.md) - Packaging npm applications