Token导航 LogoToken导航

Agent Skill · 前端设计

fish-shell-config(鱼壳配置)

fish-shell-config 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

fish-shell-config 是前端设计类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证信息还不明确,第三方扫描已通过,按安装量在前端设计类的 10,216 个 Skill 里排第 8,797。

总安装 259周安装 11GitHub Stars 353下载 91核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:fish-shell-config(鱼壳配置)
来源仓库:https://github.com/notque/claude-code-toolkit
仓库路径:skills/fish-shell-config
安装命令:
npx skills add https://github.com/notque/claude-code-toolkit --skill fish-shell-config
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/notque/claude-code-toolkit --skill fish-shell-config

这个 Skill 是做什么的

前端设计类 Skill 关注页面结构、视觉规范和组件写法,输出通常是可运行的界面代码。

fish-shell-config 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息。适合在 Codex、Claude、Cursor、Gemini CLI 中围绕仓库状态、代码变更或协作事项进行整理。通过 npx skills add 命令从指定仓库安装,需确认权限与维护状态。

使用前应核实是否会触发联网、命令执行或文件读写操作。建议结合原始 README 进一步核验具体用法和功能边界。

来源仓库内路径:skills/fish-shell-config

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/notque/claude-code-toolkit --skill fish-shell-…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

fish-shell-config 怎么安装?

在终端执行 npx skills add https://github.com/notque/claude-code-toolkit --skill fish-shell-config。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

fish-shell-config 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

fish-shell-config 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

fish-shell-config 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

fish-shell-config 用的人多吗?

公开数据是累计安装 259 次,近一周安装 11 次,下载 91 次,GitHub 353 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

fish-shell-config 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理前端设计类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

前端设计类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
frontend-design

前端设计 · Codex、Claude

8,823,360126,072只读MIT通过
vercel-composition-patterns

Vercel 组合模式 · Codex、Claude

3,858,81625,893需要联网MIT通过
vercel-react-native-skills

Vercel React native skills 前端 · Codex、Claude

2,468,66425,878只读MIT通过
adapt

adapt 搜索 · Codex、Claude

2,027,04023,125操作浏览器未明确通过
bolder

bolder 分析 · Codex、Claude

2,004,28823,130只读未明确通过
fish-shell-config

鱼壳配置 · 本页

259353接触敏感数据未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Fish Shell Configuration Skill

Fish is not POSIX. Every pattern here targets Fish 3.0+ (supports $(), &&, ||). Fish 4.0 (Rust rewrite) has no syntax changes. All generated code must use Fish-native syntax exclusively — never emit Bash constructs (VAR=value, [[]], export, heredocs) in Fish contexts.

Reference Loading Table

SignalLoad These FilesWhy
migrationsbash-migration.mdLoads detailed guidance from bash-migration.md.
implementation patternsfish-preferred-patterns.mdLoads detailed guidance from fish-preferred-patterns.md.
tasks related to this referencefish-quick-reference.mdLoads detailed guidance from fish-quick-reference.md.
tasks related to this referencetool-integrations.mdLoads detailed guidance from tool-integrations.md.

Instructions

Step 1: Confirm Fish Context

Before writing any shell code, confirm the target is Fish:

  • $SHELL contains fish, or
  • Target file has .fish extension, or
  • Target directory is ~/.config/fish/

If none of these hold, stop — this skill does not apply to Bash, Zsh, or POSIX shells.

Step 2: Choose the Correct File Location

Place configuration in conf.d/ modules with numeric prefixes for ordering — keep config.fish minimal. A monolithic config.fish with hundreds of lines is slow to load, hard to maintain, and impossible to selectively disable.

Directory layout:

~/.config/fish/
├── config.fish              # Minimal — interactive-only init
├── fish_variables           # Auto-managed by Fish (never edit)
├── conf.d/                  # Auto-sourced in alphabetical order
│   ├── 00-path.fish
│   ├── 10-env.fish
│   └── 20-abbreviations.fish
├── functions/               # Autoloaded functions (one per file)
│   ├── fish_prompt.fish
│   └── mkcd.fish
└── completions/             # Custom completions
    └── mycommand.fish

Decision tree:

What you're writingWhere it goes
PATH additionsconf.d/00-path.fish
Environment variablesconf.d/10-env.fish
Abbreviationsconf.d/20-abbreviations.fish
Tool integrationsconf.d/30-tools.fish
Named functionfunctions/<name>.fish
Custom promptfunctions/fish_prompt.fish
Completionscompletions/<command>.fish
One-time interactive initconfig.fish (inside status is-interactive)

Step 3: Write Variables

Variable assignment is always set VAR value — never VAR=value (syntax error in Fish) or export VAR=value.

set -l VAR value    # Local — current block only
set -f VAR value    # Function — entire function scope
set -g VAR value    # Global — current session
set -U VAR value    # Universal — persists across sessions (use sparingly)
set -x VAR value    # Export — visible to child processes
set -gx VAR value   # Global + Export (typical for env vars)
set -e VAR          # Erase variable
set -q VAR          # Test if set (silent, for conditionals)

Every Fish variable is a list. Never use colon-separated strings for PATH or similar variables — set PATH "$PATH:/new/path" creates a single malformed element because Fish PATH is a list, not a colon-delimited string.

Step 4: Manage PATH

Use fish_add_path for PATH manipulation — it handles deduplication and persistence automatically. Manual set PATH only for session-scoped overrides.

# CORRECT: fish_add_path handles deduplication and persistence
fish_add_path ~/.local/bin
fish_add_path ~/.cargo/bin
fish_add_path -P ~/go/bin     # -P = session only, no persist

# CORRECT: Direct manipulation when needed (session only)
set -gx PATH ~/custom/bin $PATH

# WRONG: Colon-separated string — Fish PATH is a list
# set PATH "$PATH:/new/path"

Step 5: Write Functions

The autoloaded function filename must match the function name exactly — functions/foo.fish must contain function foo. A mismatch causes "Unknown command" errors.

# ~/.config/fish/functions/mkcd.fish
function mkcd --description "Create directory and cd into it"
    mkdir -p $argv[1]
    and cd $argv[1]
end

Functions with argument parsing:

function backup --description "Create timestamped backup"
    argparse 'd/dest=' 'h/help' -- $argv
    or return

    if set -q _flag_help
        echo "Usage: backup [-d destination] file..."
        return 0
    end

    set -l dest (set -q _flag_dest; and echo $_flag_dest; or echo ".")
    for file in $argv
        set -l ts (date +%Y%m%d_%H%M%S)
        cp $file $dest/(basename $file).$ts.bak
    end
end

Step 6: Choose Between Abbreviations, Functions, and Aliases

Use CaseMechanismWhy
Simple shortcutabbr -a g gitExpands in-place, visible in history
Needs arguments/logicfunction in functions/Full programming, works in scripts
Wrapping a commandalias ll "ls -la"Convenience; creates function internally

Abbreviations are interactive-only — they do not work in scripts. Always wrap them in an interactive guard because they have no effect during non-interactive sourcing:

# Always guard abbreviations
if status is-interactive
    abbr -a g git
    abbr -a ga "git add"
    abbr -a gc "git commit"
    abbr -a gst "git status"
    abbr -a dc "docker compose"
end

Step 7: Write Conditionals and Control Flow

Use the test builtin for conditionals — never [[]] (syntax error in Fish) or [] (calls external /bin/[, slower than the builtin). Fish has no word splitting, so $var and "$var" behave identically — quote only when you need to prevent list expansion or preserve empty strings.

# Conditionals — use 'test', not [[ ]]
if test -f config.json
    echo "exists"
else if test -d config
    echo "is directory"
end

# Command chaining (both styles work in Fish 3.0+)
mkdir build && cd build && cmake ..
mkdir build; and cd build; and cmake ..

# Loops
for file in *.fish
    echo "Processing $file"
end

# Switch
switch $argv[1]
    case start
        echo "Starting..."
    case stop
        echo "Stopping..."
    case "*"
        echo "Unknown: $argv[1]"
        return 1
end

Step 8: Integrate External Tools

Guard every tool integration with type -q so the config works on machines where the tool is not installed:

# ~/.config/fish/conf.d/30-tools.fish
if type -q starship
    starship init fish | source
end

if type -q direnv
    direnv hook fish | source
end

if type -q fzf
    fzf --fish | source
end

# Homebrew (macOS)
if test -x /opt/homebrew/bin/brew
    eval (/opt/homebrew/bin/brew shellenv)
end

# Nix
if test -e /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish
    source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish
end

Step 9: Verify

  1. Syntax check — run fish -n <file> (parse without executing)
  2. Function name match — verify filename matches function name for every file in functions/
  3. Interactive guards — verify status is-interactive guards on abbreviations and key bindings in conf.d/
  4. Clean environment test — run fish --no-config then source <file> to confirm isolated correctness

Reference Material

Example: Setting Up a New Fish Config

User says: "Set up my Fish shell config"

  1. Confirm Fish context
  2. Create modular structure in ~/.config/fish/
  3. Write conf.d/00-path.fish, conf.d/10-env.fish, conf.d/20-abbreviations.fish
  4. Syntax-check all files

Example: Migrating a Bash Alias File

User says: "Convert my.bash_aliases to Fish"

  1. Read .bash_aliases, confirm Fish target
  2. Determine which become abbreviations vs functions
  3. Write abbreviations to conf.d/, functions to functions/
  4. Syntax-check, test in clean shell

Error Handling

Error: "Unknown command" for new function

Cause: Filename does not match function name Solution: Ensure functions/foo.fish contains exactly function foo. Check for typos in both the filename and the function declaration.

Error: PATH changes not persisting across sessions

Cause: Used set -gx PATH (session-only) instead of fish_add_path (writes to universal fish_user_paths) Solution: Use fish_add_path /new/path which persists by default, or use set -U fish_user_paths /path $fish_user_paths explicitly.

Error: Abbreviations not expanding in scripts

Cause: Abbreviations are interactive-only by design Solution: Use a function instead. Move the logic from abbr to a file in functions/.

Error: Variable not visible to child process

Cause: Missing -x (export) flag on set Solution: Use set -gx VAR value to make variable visible to subprocesses. Check with set --show VAR to inspect current scope and export status.


References

Task SignalLoadWhy
Migrating from Bash, converting .bashrc/.bash_aliases, source, export, [[ in Fish filebash-migration.mdFull Bash-to-Fish syntax translation table
Variable scoping, PATH management, fish_add_path, set flags, abbr, completionsfish-quick-reference.mdVariable scope guide, special variables, control flow cheatsheet
Error audit, "unknown command", PATH not persisting, abbreviation not working, syntax error, broken conf.dfish-preferred-patterns.mdAnti-patterns with grep detection commands and error-fix mappings
Go, Rust, Docker, Node.js, Python, pyenv, fnm, starship, direnv, fzf, zoxide, mise, tool setuptool-integrations.mdConcrete integration patterns for common dev tools
  • ${CLAUDE_SKILL_DIR}/references/bash-migration.md: Complete Bash-to-Fish syntax translation table
  • ${CLAUDE_SKILL_DIR}/references/fish-quick-reference.md: Variable scoping, special variables, and command cheatsheet
  • ${CLAUDE_SKILL_DIR}/references/fish-preferred-patterns.md: Anti-pattern catalog with grep detection commands and error-fix mappings
  • ${CLAUDE_SKILL_DIR}/references/tool-integrations.md: Concrete integration patterns for Go, Rust, Docker, Node.js, Python, and shell enhancers

平台分布

Codex

34.86%
按下载量换算32

Claude

32.87%
按下载量换算30

Cursor

19.35%
按下载量换算18

Gemini CLI

9.12%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills