# fish

> Guides using the Fish interactive shell, covering autosuggestions, universal variables, web configuration, and best practices for interactive use.

- Skill: `majiayu000/fish` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/fish`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/fish/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools, Dev Tooling
- Tags: Autosuggestions, Fish, Fish Config, Interactive Shell, Shell, Terminal, Universal Variables
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-08-22
- Page: https://skillmd.com/skills/majiayu000/fish

---


# Fish (Friendly Interactive Shell)

Fish v4.0 (2025) is rewritten in **Rust**. It is famous for "It just works" – 90% of what you need (autosuggestions, coloring) is enabled by default.

## When to Use

- **Interactive Use**: It is arguably the best shell for _typing_ commands manually.
- **Discoverability**: Man page completions are generated automatically.

## Core Concepts

### Autosuggestions

Fish suggests commands as you type based on history and completions. Right arrow accepts.

### Universal Variables

`set -U my_var value` sets a variable across _all_ current and future shell instances instantly.

### Web Config

`fish_config` launches a browser UI to change colors and prompt.

## Best Practices (2025)

**Do**:

- **Use it as Interactive Shell**: Set it as your login shell.
- **Don't write scripts in Fish**: Write scripts in `bash` or `sh` for portability. Run them _from_ Fish.
- **Use "Fisher"**: The plugin manager for themes.

**Don't**:

- **Don't copy-paste Bash**: Fish syntax is different (`env var=val` -> `set -x var val`).

## References

- [Fish Shell Documentation](https://fishshell.com/docs/current/index.html)

