Claude Code Plugins

Community-maintained marketplace

Feedback

add-fish-alias

@avegancafe/Juliet
5
0

Use when creating a new fish shell alias, function, or command shortcut, or when user asks to "add an alias for X

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name add-fish-alias
description Use when creating a new fish shell alias, function, or command shortcut, or when user asks to "add an alias for X"

Add Fish Alias

Create a new fish shell function/alias in Juliet dotfiles.

Process

  1. Create function file

    symlinked/config/fish/functions/aliases/<name>.fish
    
  2. Write the function

    function <name> --wraps "<wrapped-command>"
        <wrapped-command> $argv
    end
    
  3. Reload fish (or open new terminal)

    source ~/.config/fish/config.fish
    

File Naming

  • Filename = function name (e.g., g.fish defines g function)
  • Use lowercase, hyphens for multi-word names
  • Files are auto-loaded alphabetically

Patterns

Simple Wrapper

function g --wraps "git"
    git $argv
end

Wrapper with Auto-Install

function nv --wraps "neovide"
    if ! command -v neovide 2&> /dev/null
        gum confirm "Neovide not installed. Install?" && brew install --cask neovide
    end
    neovide $argv
end

Function with Subcommand Aliases

function pv --wraps "pipenv"
    switch $argv[1]
        case "i"
            set argv[1] install
    end
    pipenv $argv
end

Interactive Function (using gum)

function clone
    set -l provider (gum choose --header "Source?" github gitlab)
    # ... rest of logic
end

Multiple Functions in One File

Group related functions (e.g., git.fish contains ga, gl, gm, commit, etc.)

Conventions

  • Use --wraps for tab completion inheritance
  • Use $argv to pass all arguments
  • Use gum for interactive prompts (confirm, choose, input, spin)
  • Helper functions: log, error, debuglog (defined in fish config)

Common Mistakes

  • Forgetting --wraps (loses tab completion)
  • Using $@ instead of $argv (bash syntax, not fish)
  • Creating in wrong directory (must be in symlinked/config/fish/functions/aliases/)