nushell について
このスキルは、構造化データを扱うシェルNushellの構文やよくある問題、参照ファイルを説明します。Bashとの使い分けや、状態を保持するMCP REPLの利用方法も案内します。
主な機能
- 01構造化データのパイプライン
- 02構文とよくあるエラーの説明
- 03データ形式の検索と変換
- 04NushellとBashの使い分け
- 05状態を保持するMCP REPLの利用
活用シーン
- 01CLIツールが出力するJSONの検索
- 02表形式または構造化データの調査
- 03MCP経由で状態を保ったNushellコードの実行
MCP 対応
このスキルは、`evaluate`、`list_commands`、`command_help`を備えたNushell MCPサーバーを説明します。`evaluate`は永続REPLでコードを実行し、変数や履歴を呼び出し間で保持します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nushell/ nu_scripts --skill nushellインストール後、Claude Code で/nushellを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/advanced.mdbash-equivalents.mdcommands.mddata-analysis.mdhttp-transport.mdtypes-and-syntax.md詳細
Nushell の使用
Nushell は構造化データを扱うシェルです。コマンドはテキストではなく、パイプラインを通じてテーブル、レコード、リストを渡します。
2 つの実行方法:
- MCP サーバー:
mcp__nushell__evaluate- 永続的な REPL(変数は呼び出し間で保持されます) - Bash ツール:
nu -c '<code>'- 1 回限りの実行(外側のラッパーにはシングルクォートを使用します)
重要なルール
MCP の stdio モードでは、裸の print を絶対に使用しないでください。 出力が失われ(空の [] が返され)ます。標準エラーには print -e "msg" を使用するか、値をそのまま返してください(暗黙の戻り値)。
文字列補間では波括弧ではなく、丸括弧を使用します:
# WRONG: $"hello {$name}"
# CORRECT: $"hello ($name)"
$"($env.HOME)/docs" $"2 + 2 = (2 + 2)" $"files: (ls | length)"
注意点:$"(some text)" はエラーになります。丸括弧はコードとして評価されます。丸括弧を文字として使う場合はエスケープします:\(text\)。
Bash 構文は使えません: && ではなく cmd1; cmd2、2>&1 ではなく o+e>|、$VAR ではなく $env.VAR、$(cmd) ではなく (cmd) を使用します。
よくある間違い
| 間違い | 修正方法 |
|---|---|
$"hello {$name}" | $"hello ($name)" |
MCP で print "msg" | print -e "msg" または値を返す |
command 2>&1 | command o+e>| ... |
$HOME/path | $env.HOME または $"($env.HOME)/path" |
export FOO=bar | $env.FOO = "bar" |
| クロージャー内での変更 | reduce、generate、または each を使用する |
ANSI に \u001b を使用 | 削除するには ansi strip、ESC には char --unicode '1b' を使用する |
where ($in.a > 1) and ($in.b > 2) | 2 つ目の $in が bool に再バインドされます。裸の列名を使用します:where a > 1 and b > 2 |
where not ($in.col | cmd) | not によって $in が壊れます。where ($in.col | cmd) == false を使用します |
where col | cmd(丸括弧なし) | 2 つのパイプラインステージとして解析されます。where ($in.col | cmd) を使用します |
Nushell を使用する場面
次の場合は常に Nushell を優先してください:
- あらゆる構造化データ(JSON、YAML、TOML、CSV、Parquet、SQLite) - すべての形式を統一して扱えます
--jsonフラグを持つ CLI ツール - 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 | stdio の代わりに HTTP トランスポートを使用する場合の違い |
MCP サーバーの簡単なメモ
mcp__nushell__evaluate- コードを実行、mcp__nushell__list_commands- コマンドを検索、mcp__nushell__command_help- ヘルプ- 状態は呼び出し間で保持されます。
$historyに以前の結果が保存されます($history.0などでアクセスできます) - 出力が大きい場合は
| to textまたは| to jsonを使用します。色を除去するにはansi stripを使用します。