Fish Shell, how to remove the welcome message
By Flavio Copes
Learn how to remove the Welcome to fish greeting in Fish Shell by setting fish_greeting to an empty string in your config.fish so new shells open clean.
To remove the Fish Shell welcome message, set the fish_greeting variable to an empty string in your config.fish file.
I had this “problem”.
When I opened my shells, I had these 3 lines show up every time.
It’s a Fish Shell default.
I wanted to remove them.

Fish stores that message in a variable called fish_greeting. Every time an interactive shell starts, Fish prints whatever that variable contains. Set it to an empty string and there’s nothing to print.
Here’s how I did it.
I opened ~/.config/fish/config.fish
code ~/.config/fish/config.fish
Where I had this content:
if status is-interactive
# Commands to run in interactive sessions can go here
end
fish_add_path /opt/homebrew/opt/node@16/bin
And I added set fish_greeting "" at the bottom:
if status is-interactive
# Commands to run in interactive sessions can go here
end
fish_add_path /opt/homebrew/opt/node@16/bin
set fish_greeting ""
Here’s my prompt now:

Why is the message still there?
One thing to be careful with: the change only applies to new shells. config.fish runs when a shell starts, so the terminal window you edited the file in still shows the old greeting in its scrollback, and nothing changes until you open a new tab.
If you want to reload the current shell instead, run:
exec fish
That replaces the running shell with a fresh one that reads the updated config.
An alternative: a universal variable
You don’t have to edit config.fish at all. Fish has universal variables, which persist across sessions and reboots on their own. Run this once in any Fish shell:
set -U fish_greeting ""
The -U flag makes the variable universal, so Fish remembers it without any config file changes. Both approaches work, pick one. I prefer the config.fish route because all my shell setup lives in one file I can put under version control.
And if you’d rather replace the message than remove it, set the variable to your own text:
set fish_greeting "Ready to work."
New shells will greet you with that line instead.
Related posts about cli: