dotnet-new-search(1)

πŸ“¦
version 11.0.0~rc3 Β· 6 versions
, in alpine 3.24, centos-stream 10, centos-stream 9, fedora 43, fedora 44, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ dotnet-new-search(1) ✨

okay bestie, welcome to the dotnet-new-search manual page πŸ’– (that's the manual name btw, and it lives in the .NET Documentation section β€” the whole manual page is literally called dotnet-new-search(1) and yes we're doing this).

This article applies to: βœ”οΈ .NET 6 SDK and later versions

🌸 NAME 🌸

dotnet-new-search β€” searches for the templates supported by dotnet-new on NuGet.org. that's it, that's the job, and it does it flawlessly πŸ’…


✨ SYNOPSIS ✨

dotnet new search <TEMPLATE_NAME>

dotnet new search [<TEMPLATE_NAME>] [--author <AUTHOR>] [-lang|--language <language>]
    [--package <PACKAGE>] [--tag <TAG>] [--type <TYPE>]
    [--columns <author|language|tags|type>] [--columns-all]
    [-d|--diagnostics] [--verbosity <LEVEL>] [-h|--help]

πŸ¦‹ DESCRIPTION πŸ¦‹

So the dotnet new search command goes hunting for templates that dotnet new supports over on NuGet.org. And when the argument is specified, it searches for templates containing that specified name. simple as that 🫢

Starting with the .NET 7 SDK, the dotnet new syntax has changed: and bestie, this is a big glow-up:

  • The --list, --search, --install, and --uninstall options became list, search, install, and uninstall subcommands. iconic behavior honestly πŸ‘‘
  • The --update-apply option became the update subcommand.
  • To use --update-check, use the update subcommand with the --check-only option.

All the other options that were available before are still available to use with their respective subcommands. no one got left behind, periodt πŸ’œ And there's separate help for each subcommand via the -h or --help option β€” so dotnet new <subcommand> --help lists all supported options for that subcommand. chef's kiss.

Additionally, tab completion is now available for dotnet new. it supports completion for installed template names and for the options a selected template provides. To activate tab completion for the .NET SDK, see Enable tab completion. πŸ’…

And then there's examples of the old syntax (the docs label that snippet dotnetcli, fyi):

  • Search for all templates available on NuGet.org matching the "we" substring and supporting the F# language:
dotnet new we --search --language "F#"

πŸŽ€ ARGUMENTS πŸŽ€

  • TEMPLATE_NAME

If the argument is specified, only templates containing <TEMPLATE_NAME> in the template name or short name will be shown. And heads up β€” the argument is mandatory when --author, --language, --package, --tag, or --type options are not specified. so like, you gotta give it something 🫠

Starting with .NET SDK 6.0.100, you can put the <TEMPLATE_NAME> argument after the --search option. For example, dotnet new --search web provides the same result as dotnet new web --search. Using more than one argument is not allowed β€” one (1) argument only, we don't do greedy here πŸ™ˆ


πŸ’– OPTIONS πŸ’–

  • --author <AUTHOR> β€” Filters templates based on template author. A partial match is supported. so you don't need the whole name, a lil hint is enough ✨
  • --columns <COLUMNS> β€” The list of columns to display in the output. The supported columns are:
    • author β€” The template author.
    • language β€” The template language.
    • tags β€” The list of template tags.
    • type β€” The template type.

The template name, short name, package name, an indication if it's a trusted source, and total downloads count are always shown β€” those are the ride-or-dies, they never leave 🌈 The default list of columns is template name, short name, language, package, an indication if it's a trusted source, and total downloads. To specify multiple columns, use the --columns option multiple times. stack 'em up πŸ’…

  • --columns-all β€” Displays all columns in the output. yes, all of them, the whole fit, no skimping πŸ‘‘
  • -d|--diagnostics β€” Enables diagnostic output. Available since .NET SDK 7.0.100. 🩺
  • -h|--help β€” Prints out help for the search command. Available since .NET SDK 7.0.100. your bestie when you're lost 🫢
  • -lang|--language <language> β€” Filters templates based on language supported by the template. The language accepted varies by the template β€” possible languages are C#, F#, VB, SQL, JSON, TypeScript, and more. Not valid for some templates, so vibe check first πŸ’€
Some shells interpret # as a special character. In those cases, enclose the language parameter value in quotes. For example, dotnet new --search --language "F#". don't get caught lacking by your own shell bestie 😭
  • --package <PACKAGE> β€” Filters templates based on NuGet package ID. A partial match is supported. πŸ“
  • --tag <TAG> β€” Filters templates based on template tags. To be selected, a template must have at least one tag that exactly matches the criteria. exact match only, no partial-credit energy here βœ‹
  • --type <TYPE> β€” Filters templates based on template type. Predefined values are project, item, and solution. three options, choose your fighter 🧚
  • -v|--verbosity <LEVEL> β€” Sets the verbosity level of the command. Allowed values are q[uiet], m[inimal], n[ormal], and diag[nostic]. Available since .NET SDK 7.0.100. πŸ—£οΈ
To ensure that the template package appears in dotnet new --search result, set the NuGet package type to Template. literally do this or you will simply not be found, and that's a tragedy πŸ’”

⭐ EXAMPLES ⭐

  • Search for all templates available on NuGet.org matching the spa substring.
dotnet new search spa
  • Search for all templates available on NuGet.org matching the we substring and supporting the F# language.
dotnet new search we --language "F#"
  • Search for item templates.
dotnet new search --type item
  • Search for all C# templates, showing the type and tags in the output.
dotnet new search --language "C#" --columns "type" --columns "tags"

πŸ”₯ SEE ALSO πŸ”₯

  • dotnet new command
  • dotnet new list command
  • Custom templates for dotnet new

okay that's the whole page, you ate it, go search some templates πŸ’…βœ¨

source/version + date check: this was served up on 2025-10-30 and it's the dotnet-new-search(1) page β€” mwah, no cap πŸŽ€πŸ’–πŸ¦‹

πŸ“¦ where this page comes from