By zaynram
Recalibrates the model toward idiomatic Nushell skills, slash commands, and a soft post-tool-use hook that nudges away from common bash-translation patterns.
Audit a provided Nushell pipeline. Executes `nu-lint` for diagnostics if available, otherwise uses an experimental agent as fallback.
Look up help for a nu command using the `nu_doc_command` MCP tool. This allows the user and Claude to retreive information about a command within the conversation. It also ensures Claude and the user are operating on the same information about the command itself.
Snapshot values from the nushell environment for the provided keys as a record. If no keys are provided, a default set is substituted.
This skill is used to inspect the structure of a nu expression. It surfaces the data's described type, it's length (if applicable), and a sample of the value. The sample will contain the raw value itself for non-enumerable types, otherwise it will contain the first three values of the enumerable.
This skill should be used when writing Nushell iteration, conditionals, or error handling — `for`/`each`/`reduce`/`any`/`all`/`take while`, `if`/`match`, `try/catch`, the `?` postfix operator. Especially relevant when choosing between `for` (env-propagating) and `each` (isolated), or when an error path needs to skip vs surface vs default. Trigger phrases: "iterate", "loop", "filter", "map", "reduce", "for loop", "try catch", "error handling", "match", "conditional".
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
A plugin that helps Claude (and humans) write Nushell idiomatically — not "bash with weird syntax."
The training distribution heavily over-represents bash and POSIX shell, so the default reach when writing nu is to translate bash patterns instead of using nu's own structural-data-first primitives.
This plugin counteracts that bias by combining authoritative tooling (nu-lint) with educational scaffolding (skills, slash commands, an experimental fallback agent).
This plugin consumes an MCP server named nushell-mcp, which was authored in-tandem and provides a curated set of Nushell utilities to Claude. See the package listing for more information.
The commands packaged in this plugin prefer to delegate diagnostics to nu-lint — a deterministic community linter for Nushell with ~150 rules across idioms, posix-replacement, parsing, dead-code, runtime-errors, and more.
Most rules have auto-fixes, and the rules themselves respect the nuance of diverging from the status quo in the age of LLM.
Install it:
cargo install nu-lint
On Windows with WSL, installing nu-lint inside your WSL distribution is supported.
The plugin's hook auto-detects wsl.exe and routes through it.
The hook is silent when nu-lint is unavailable, so the plugin won't error if you skip this step; you'll just lose out on that deterministic diagnostic surface.
.lsp.json at the plugin root registers nu --lsp as Claude Code's language server for .nu files.
Once the plugin is installed and the language server connects, Claude sees inline diagnostics, hover info, and auto-fixes any time it edits a Nushell file.
No editor configuration needed — Claude Code handles the LSP protocol end-to-end.
For users editing .nu files outside Claude Code, the same nu --lsp can be configured to work with most of the common LSP-aware editors.
It may be of interest to know that, nu-lint also has a language server; see the upstream nu-lint README for editor-specific wiring.
| Type | Count | Purpose |
|---|---|---|
| Skill | 6 | 5 model-only siblings. Pull-on-demand reference. |
| Commands | 4 | /nushell-idioms (entry point), /inspect-shape (type information), /env-snapshot (read environment variables), /audit-pipeline (run diagnostics), /command-help (search documentation). |
| Agents | 1 | experimental fallback reviewer for /nu-audit when nu-lint isn't installed |
| Hooks | 1 | Post-nu_exec hook that runs nu-lint on the executed pipeline |
| LSP | 1 | nu --lsp via .lsp.json |
| Configs | 2 | configs/hook.nu-lint.toml, configs/strict.nu-lint.toml |
Only nushell-idioms shows up as an invocable command (/nu-fluency:nushell-idioms). The five focused siblings are model-only — they auto-load when their topic comes up, without cluttering your slash menu.
nushell-records (model-only) — records, tables, cell paths, items | where | into record.nushell-env-scoping (model-only) — $env, do --env, with-env, for vs each propagation, automatic env vars.nushell-strings (model-only) — parse templates, str namespace, interpolation, from <format>.nushell-control-flow (model-only) — for/each/reduce/any/all/take while, conditionals, try/catch vs ?.nushell-modules (model-only) — module/use/export def/export-env/main.Note: The original
commandsare deprecated in favor ofskillswithuser-invocable: true; the distinction is preserved in this document for clarity of usage.
/nushell-idioms — entry point. Cheat sheet + bash→nu equivalents + pointers to nu-lint. Carries the cheat-sheet reference for deep syntax lookup./inspect-shape <expr> — runs <expr> | describe + a sample row through nu_run. Structural intuition./env-snapshot [keys...] — $env | select --optional <keys> with sensible defaults./audit-pipeline <pipeline> — runs nu-lint (or falls back to the experimental agent if nu-lint isn't installed)./command-help <name> — inline help lookup via nu_doc_command.Post-tool-use hook on MCP nu_run calls. Reads the tool's pipeline argument from stdin (JSON), pipes it through nu-lint --stdin --format compact using the narrow configs/hook.nu-lint.toml, and surfaces findings as a block reason if (and only if) there are any. Silent on clean code, silent when nu-lint isn't installed.
The hook config is intentionally conservative — posix, idioms, parsing groups only — so it fires on bash-translation patterns and skips stylistic noise. For broader analysis, use /nu-audit (which uses the strict.nu-lint.toml config).
npx claudepluginhub zaynram/nu-fluency --plugin nu-fluencyFive structured reasoning protocols: adversarial stress-testing, impact forecasting, tradeoff analysis, assumption surfacing, and plan review.
Literature review workspace. Multi-corpus reading, annotation, semantic search, Ollama-powered syntheses, and a vendored pdf MCP. Inspired by but independent of the Daisy Lit Review artifact.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.