Repository navigation
-nologo should be the default #15644
Description
Steps to reproduce
Launch PowerShell in your favorite terminal.
Expected behavior
The prompt I've set up in my PowerShell profile.
Actual behavior
I get the following boilerplate:
PowerShell 7.1.3
Copyright (c) Microsoft Corporation.
https://aka.ms/powershell
Type 'help' to get help.
"But Immo, you can turn this off by using -nologo". Yes. But I have to do this in every single one of the places that launches the shell: shortcuts in the start menu, pinned task bar entries, the Windows Terminal commands, the VS Code integrated terminal, the Visual Studio terminal, Git GUI clients etc. It's tiring. If there would be a user wide setting, that might be an OK workaround, but every time I set up a new machine I have to add these extra arguments -- just to get a shell that is ready for use.
The year is 2021. We're embracing command line stuff and simple text files for the modern dev environment (really, we're just rediscovering Unix philosophy, but that's a different rant 😄). It seems the default shell behavior should optimize for this kind of user, rather than forcing this boilerplate on everyone that arguably adds zero value to their experience.
Activity
bergmeister commentedon Jun 22, 2021
The point around configuration in multiple places is a good one. Being able to override the default (whatever it is now or will be) via an environment variable seems like a good addition.
kilasuit commentedon Jun 22, 2021
I do like this idea but don't think this should be an environmental variable but should be instead added as a configurable option (defaulted as on) in the powershell.config.json file as documented at https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_powershell_config?view=powershell-7.1
This would then tooling like choco/winget/etc to turn it off as part of their installation & tooling like just MSI/MSIX install leave it for those that are coming to PowerShell 7 for the first time
warrenrumak commentedon Jun 23, 2021
I'm generally in favour of this but the question must be asked -- without any kind of heading, how would a user know whether they're in the CMD or PowerShell environment? (The existence of a space between the > and the cursor is not a satisfactory answer.)
terrajobst commentedon Jun 23, 2021
I don’t believe this to be a general concern as virtually all places show this information contextually (title bar, tab icon etc). In the rare cases where a user might not know, entering commands will make it quite obvious.
rkeithhill commentedon Jun 23, 2021
I'm not a big fan of all the text but it's not completely without precedent:
At least the above is only two lines of extra text. :-) I wouldn't mind seeing just:
Or if your legal team absolutely requires the copyright:
rkeithhill commentedon Jun 23, 2021
Argh GH!! There is some keyboard shortcut I keep hitting that presses the
Close with commentbutton. Sorry guys.Nirmal4G commentedon Jun 23, 2021
Maybe, if there's a way to check the launch context of the console, we could detect whether it's lauched by the user (interactive) or via script (non-interactive).
This way we can display the header for the first-time the user launches the console and have a setting that suppress the header afterwards, while suppressing the header in the context of a script launch.
iSazonov commentedon Jun 23, 2021
More than once we have received requests to change default options. We already have several new environment variables (update notifications, telemetry). This is a good way, we just have to be more consistent to have support for these options in all kind of configurations (environment variables, config files, Registry)
SteveL-MSFT commentedon Jun 23, 2021
I think having some cmdlets making it easy to configure powershell.config.json might be the way to do this (since this file is already being read at startup). I'd hate to add more env vars.
60 remaining items
terrajobst commentedon Jan 11, 2022
Agreed. Until there is a user wide setting to disable the logo entirely I personally don’t think my issue was addressed.
rkitover commentedon Jan 12, 2022
What about my idea of having an environment variable for this?
There is already
$env:POWERSHELL_UPDATECHECKwhich is definitely nice to have.Maybe we don't want to have 20 environment variables, and maybe we don't want to have
$env:POWERSHELL_OPTIONSfor security reasons, but this seems like a good solution for this particular problem.On Linux this would allow putting this environment variable in pam or systemd environment definitions and use pwsh as a login shell with no options and no startup banner.
On Windows it would allow setting one machine env var and not have to tweak a bunch of different things to pass
-nologo.kilasuit commentedon Jan 13, 2022
Kenny (@dancojocaru2000) / Immo Landwerth (@terrajobst) - I didn't say I agreed with the close resolution (as I don't) but thoufht it worth mentioning incase it was lost in the midst
Rafael Kitover (@rkitover) - whilst env vars can work, personally I dislike them and I'd like to see them and this implemented too
m1karii commentedon Jan 16, 2022
Rafael Kitover (@rkitover) agreed. At least something like
$env:POWERSHELL_DISPLAYLOGOwould be nice, if nothing else.SeeminglyScience commentedon Jun 7, 2023
Re-opening as I believe this was closed by mistake.
jeremyj563 commentedon Jul 10, 2023
I don't really care that much about which is the default behavior but I definitely agree there should be a global flag of some sort for this. I'd prefer the environment variable approach as I would always know exactly where to look/set the config regardless of host OS.
SteveL-MSFT commentedon Oct 11, 2023
The default logo has been minimized to just show the version now. I don't think additional work here is needed.
microsoft-github-policy-service commentedon Oct 12, 2023
This issue has been marked as won't fix and has not had any activity for 1 day. It has been closed for housekeeping purposes.
JustinGrote commentedon Jan 20, 2024
Sorry to necro this but if you really want a minimal terminal if you are setting PowerShell as your default linux login, you can do these steps:
chmod +x /usr/local/bin/pwshlogin), and add the following content:usermod -s /usr/local/bin/pwshlogin YOURUSERNAMEBEFORE YOU CLOSE THE WINDOW, Test with a new ssh login or otherwise to make sure it works.
Voila, clean login:

rdebath commentedon Jun 7, 2024
Justin Grote (@JustinGrote)
m1karii commentedon Aug 25, 2026
still waiting