返回顶部
n

nix-runNix命令执行

Execute **ANY** command via Nix, regardless of whether it is installed or the local version is outdated. Access 100,000+ packages from nixpkgs-unstable with zero installation. Supports multi-package environments via --shell for tasks requiring multiple tools simultaneously. Use proactively before running CLI tools, or reactively when commands fail with "command not found" or produce wrong results due to version issues.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
110
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

nix-run

nix-run — 通过 Nix 实现通用 CLI 工具运行器

自动查找并通过 Nix 运行任何 CLI 工具,零配置。如果工具已在本地安装,则直接运行,无额外开销。如果未安装,则自动从 nixpkgs(超过 100,000 个包)实时获取。

关键规则

  1. 1. 始终通过 scripts/nix-run.sh 运行 CLI 工具 — 即使你认为工具可能已安装。脚本会先检查本地(零开销),仅在缺失时通过 nix 自动获取。
  2. 绝不通过 apt、brew、pip install、npm install -g、cargo install 或任何其他包管理器安装包。本系统仅使用 nix。
  3. 绝不建议用户安装任何东西。 直接通过 nix-run 运行。
  4. 绝不直接使用 nix shell 或 nix run。 始终通过 scripts/nix-run.sh,它会自动处理包检测。对于多包环境,使用 --shell。
  5. 遇到命令未找到:不要建议安装。立即通过 scripts/nix-run.sh 重试。
  6. 不确定使用哪个工具时:使用 --search 发现正确的包,然后运行。

快速开始

bash

运行任何命令 — 自动检测包,零配置


scripts/nix-run.sh <命令> [参数...]

多包环境 — 在多个工具可用时运行命令

scripts/nix-run.sh --shell <包1,包2,...> -- <命令> [参数...]

不知道命令名称?按关键词搜索

scripts/nix-run.sh --search <关键词>

更新 nix-locate 数据库以获取最新包信息

scripts/nix-run.sh --update

工作流程

工作流程 1:从命令未找到自动恢复

当 bash 命令因命令未找到失败时,立即通过 nix-run 重试 — 不要建议安装:

bash

错误:你需要先安装 jq:apt install jq


错误:brew install jq


错误:nix shell nixpkgs#jq -c jq ...


正确:


scripts/nix-run.sh jq .name data.json

工作流程 2:主动使用 — 始终优先使用 nix-run

对于任何 CLI 工具,始终先通过 nix-run:

bash
scripts/nix-run.sh pandoc README.md -o README.pdf
scripts/nix-run.sh fd \.rs$ src/
scripts/nix-run.sh rg TODO .
scripts/nix-run.sh ffmpeg -i input.mp4 output.gif
scripts/nix-run.sh htop
scripts/nix-run.sh tree -L 2
scripts/nix-run.sh imagemagick convert input.png output.jpg
scripts/nix-run.sh shellcheck script.sh

工作流程 3:按关键词发现工具

当你需要 CLI 工具但不知道名称时,搜索 nixpkgs:

bash
scripts/nix-run.sh --search json 处理器

jq (1.8.1) - 轻量级且灵活的 JSON 命令行处理器


njq (...) - 使用 nix 作为查询语言的 JSON 命令行处理器

然后运行发现的工具:

scripts/nix-run.sh jq .name data.json

工作流程 4:处理多个候选包

当多个包提供相同命令时,nix-run 列出候选包并退出。使用 --pkg 重新运行:

bash
scripts/nix-run.sh --pkg ffmpeg-headless ffmpeg -version

工作流程 5:使用 --shell 的多包环境

当任务需要同时使用多个工具时(例如,调用 node 的 Python 脚本,或需要多个编译器的构建步骤):

bash

运行一个也需要 node 可用的 Python 脚本


scripts/nix-run.sh --shell python3,nodejs -- python3 script.py

在组合环境中运行多个命令

scripts/nix-run.sh --shell python3,nodejs -- bash -c python3 --version && node --version

使用 jq 和 curl 的数据管道

scripts/nix-run.sh --shell jq,curl -- bash -c curl -s https://api.example.com | jq .data

选项

标志描述
--pkg <名称>跳过自动检测,使用指定的 nix 包
--shell <包1,...>
多包环境(逗号分隔),在命令前使用 -- | | --search <关键词> | 按关键词搜索 nixpkgs(返回包名称 + 描述) | | --limit | 最大搜索结果数(默认:20) | | --update | 更新 nix-locate 数据库(nix-index)至最新 nixpkgs |

工作原理

  1. 1. 命令本地存在 → 直接执行(零开销)
  2. 指定 --pkg → nix shell github:NixOS/nixpkgs/nixpkgs-unstable#<包> -c <命令> <参数>
  3. 指定 --shell → nix shell nixpkgs#包1 nixpkgs#包2 ... -c <命令> <参数>
  4. 否则 → nix-locate 查找提供 /bin/<命令> 的包
  5. 单个候选包或精确匹配 → 自动运行
  6. 多个候选包 → 列出并退出(使用 --pkg 重新运行)

注意: 所有命令使用 nixpkgs-unstable flake 引用以确保最新包版本。

边界情况

  • - 命令不在 nixpkgs 中:退出并报错。使用 --search 查找替代方案。
  • nix-locate 未安装:退出并提示安装 nix-index。
  • nix-locate 数据库过时:运行 scripts/nix-run.sh --update 刷新。
  • 软件版本过旧:脚本默认使用 nixpkgs-unstable,确保最新版本。如果版本仍显陈旧,运行 --update 刷新 nix-locate 索引。
  • 首次运行可能较慢:nix shell 首次使用会下载;后续运行使用缓存。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 nix-run-1776122192 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 nix-run-1776122192 技能

通过命令行安装

skillhub install nix-run-1776122192

下载

⬇ 下载 nix-run v1.0.0(免费)

文件大小: 5.69 KB | 发布时间: 2026-4-14 09:50

v1.0.0 最新 2026-4-14 09:50
- Initial release of nix-run (v1.0.0): Universal CLI tool runner via Nix with zero configuration.
- Automatically runs any command through Nix if not found locally, accessing 100,000+ packages from nixpkgs-unstable.
- Supports multi-package environments with --shell for complex tasks.
- Includes auto-detection, tool discovery via --search, and package pinning with --pkg.
- Provides rules for exclusive Nix usage—no manual installs or direct nix CLI calls.
- Handles automatic recovery from "command not found" errors and offers workflows for proactive, multi-tool, and discovery use cases.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部