Nix expressions for AI agent skills from skills.sh and skillsdirectory.com. A GitHub Action updates the skills every 3 hours.
As of March 2026, this flake provides Nix derivations for over 480,000 skills sourced from nearly 13,000 GitHub repositories. Each skill is individually packaged, pinned to a specific revision, and made available through a nixpkgs overlay.
Read about Nix flakes and set them up.
Read about Overlays.
Add nix-skills to your flake inputs:
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nix-skills.url = "github:sudosubin/nix-skills";
};
outputs = { nixpkgs, nix-skills, ... }:
let
pkgs = import nixpkgs {
system = "aarch64-darwin"; # or "x86_64-linux", etc.
overlays = [ nix-skills.overlays.default ];
};
in
{
# pkgs.skills.<owner>.<repo>.<skill-name>
};
}let
nix-skills = import (builtins.fetchGit {
url = "https://github.com/sudosubin/nix-skills";
ref = "refs/heads/main";
});
pkgs = import <nixpkgs> {
overlays = [ nix-skills.overlays.default ];
};
in
# pkgs.skills.<owner>.<repo>.<skill-name>After applying the overlay (see Overlay), skills are available under pkgs.skills:
pkgs.skills.<owner>.<repo>.<skill-name>Without the overlay, you can access skills from the flake outputs:
nix-skills.skills.${system}.<owner>.<repo>.<skill-name>Skills are organized in a three-level hierarchy: <owner>.<repo>.<skill-name>.
owner— GitHub repository owner (e.g.,vercel-labs)repo— GitHub repository name (e.g.,skills)skill-name— skill directory name (e.g.,find-skills)
For example, a skill from the repository vercel-labs/skills would be accessed as:
pkgs.skills.vercel-labs.skills.find-skillsNote
If a skill identifier contains characters that aren't valid Nix identifiers, quote them like pkgs.skills."01000001-01001110"."agent-jira-skills"."jira-issues".
# home-manager configuration
{ pkgs, ... }:
{
programs.claude-code = {
enable = true;
skills = {
find-skills = pkgs.skills.vercel-labs.skills.find-skills;
};
};
}# home-manager configuration
{ pkgs, ... }:
{
home.file.".pi/agent/skills/find-skills" = {
source = pkgs.skills.vercel-labs.skills.find-skills;
recursive = true;
};
}$ nix repl
nix-repl> :lf github:sudosubin/nix-skills
nix-repl> skills = outputs.skills.${builtins.currentSystem}
nix-repl> skills.vercel-labs.skills
{ find-skills = «derivation ...»; ... }
nix-repl> skills.vercel-labs.skills.find-skills
«derivation /nix/store/...-find-skills-4f1d38e.drv»nix build github:sudosubin/nix-skills#skills.aarch64-darwin.vercel-labs.skills.find-skills- A GitHub Actions workflow runs every 3 hours.
- It fetches the latest skill listings from skills.sh and skillsdirectory.com.
- For each source repository, it resolves the latest commit, prefetches the tarball via
nix-prefetch-url, and discovers allSKILL.mdfiles. - The results are stored in
data/by-name/as JSON files. - At evaluation time, Nix reads these JSON files and builds each skill using
fetchFromGitHubwith the pinned revision and hash.