mcpField
N
nushell

nushell

github.com/nushell开发1.3k77 次安装4 天前更新
代码仓库

关于 nushell

这项技能介绍结构化数据 Shell Nushell 的用法,包括语法、常见问题和参考文件。它还说明何时选择 Nushell 而非 Bash,以及如何使用持久化的 MCP REPL。

主要功能

  1. 01结构化数据管道
  2. 02语法与常见错误指南
  3. 03数据格式查询与转换
  4. 04Nushell 与 Bash 的使用建议
  5. 05持久化 MCP REPL 用法

适用场景

  1. 01查询 CLI 工具输出的 JSON
  2. 02探索表格或结构化数据
  3. 03通过 MCP 运行有状态的 Nushell 代码

MCP 相关

该技能介绍 Nushell MCP 服务,提供 `evaluate`、`list_commands` 和 `command_help` 操作。`evaluate` 在持久化 REPL 中运行代码,变量和历史记录可跨调用保留。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nushell/nu_scripts --skill nushell

安装后在 Claude Code 中输入/nushell确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced.md
bash-equivalents.md
commands.md
data-analysis.md
http-transport.md
types-and-syntax.md

详细介绍

使用 Nushell

Nushell 是一种结构化数据 Shell。命令会在管道中传递表、记录和列表,而不是文本。

两种执行路径:

  • MCP 服务:mcp__nushell__evaluate——持久 REPL(变量会在多次调用之间保留)
  • Bash 工具:nu -c '<code>'——单次执行(外层封装请使用单引号)

关键规则

**在 MCP stdio 模式下,绝不要直接使用 print。**输出会丢失(返回空的 [])。使用 print -e "msg" 将内容输出到 stderr,或直接返回值(隐式返回)。

字符串插值使用圆括号,而不是花括号:

# WRONG:  $"hello {$name}"
# CORRECT: $"hello ($name)"
$"($env.HOME)/docs"    $"2 + 2 = (2 + 2)"    $"files: (ls | length)"

注意:$"(some text)" 会报错——圆括号会被当作代码求值。要表示字面圆括号,请转义:\(text\)。

**不支持 Bash 语法:**使用 cmd1; cmd2,而不是 &&;使用 o+e>|,而不是 2>&1;使用 $env.VAR,而不是 $VAR;使用 (cmd),而不是 $(cmd)。

常见错误

错误修正方式
$"hello {$name}"$"hello ($name)"
MCP 中的 print "msg"print -e "msg" 或返回值
command 2>&1command o+e>| ...
$HOME/path$env.HOME 或 $"($env.HOME)/path"
export FOO=bar$env.FOO = "bar"
在闭包中修改变量使用 reduce、generate 或 each
用 \u001b 表示 ANSI用 ansi strip 移除,用 char --unicode '1b' 表示 ESC
where ($in.a > 1) and ($in.b > 2)第二个 $in 会重新绑定为布尔值。使用不带 $in 的列名:where a > 1 and b > 2
where not ($in.col | cmd)not 会破坏 $in。使用 where ($in.col | cmd) == false
where col | cmd(无圆括号)会被解析为两个管道阶段。使用 where ($in.col | cmd)

何时使用 Nushell

以下情况始终优先使用 Nushell:

  • 任何结构化数据(JSON、YAML、TOML、CSV、Parquet、SQLite)——统一处理所有格式
  • 带有 --json 标志的命令行工具——将 JSON 输出直接通过管道传入 Nushell 以进行查询(例如 ^gh pr list --json title,state | from json)
  • 临时数据分析和探索——比配置 Python 环境更快
  • 初步数据科学/分析——直方图、表格输出、基础聚合
  • 大型数据集的 Polars 插件——无需 Python 开销即可使用 DataFrame

**仅在以下情况使用 Bash:**需要 Bash 专用工具、MCP 不可用,或集成依赖 Bash 语法。

参考文件

根据需要阅读相关文件:

文件适用场景……
commands.md命令参考表(筛选器、字符串、转换、文件系统、数学、日期)
types-and-syntax.md类型系统、字符串类型、运算符、变量、控制流、单元格路径
data-analysis.md格式转换、HTTP、Polars、SQLite、聚合模式
advanced.md自定义命令、模块、错误处理、作业、外部命令、环境配置
bash-equivalents.md完整的 Bash 到 Nushell 翻译对照表
http-transport.md使用 HTTP 传输而非 stdio 时的差异

MCP 服务快速提示

  • mcp__nushell__evaluate——运行代码;mcp__nushell__list_commands——发现命令;mcp__nushell__command_help——查看帮助
  • 状态会在多次调用之间保留。$history 保存之前的结果(访问 $history.0 等)
  • 对于较大的输出,使用 | to text 或 | to json。使用 ansi strip 移除颜色

评论

支持 Markdown