Search for .NET Tools with ToolGet
- 3 minutes read - 562 wordsPlease note: ToolGet has been shutdown in favour of the official .NET Tool search experiences from NuGet and .NET CLI.
.NET Tools is a feature that was released with .NET Core 2.1 and provides the following functionality according to the docs:
A .NET Tool is a special NuGet package that contains a console application. A Tool can be installed on your machine on a default location that is included in the PATH environment variable or on a custom location.
For instance, you can install the dotnetsay
tool globally with the following command:
$ dotnet tool install -g dotnetsay
You can invoke the tool using the following command: dotnetsay
Tool 'dotnetsay' (version '2.1.4') was successfully installed.
and then you can run it like this:
$ dotnetsay
Welcome to using a .NET Core global tool!
__________________
\
\
....
....'
....
..........
.............'..'..
................'..'.....
.......'..........'..'..'....
........'..........'..'..'.....
.'....'..'..........'..'.......'.
.'..................'... ......
. ......'......... .....
. ......
.. . .. ......
.... . .......
...... ....... ............
................ ......................
........................'................
......................'..'...... .......
.........................'..'..... .......
........ ..'.............'..'.... ..........
..'..'... ...............'....... ..........
...'...... ...... .......... ...... .......
........... ....... ........ ......
....... '...'.'. '.'.'.' ....
....... .....'.. ..'.....
.. .......... ..'........
............ ..............
............. '..............
...........'.. .'.'............
............... .'.'.............
.............'.. ..'..'...........
............... .'..............
......... ..............
.....
If you work from the command line, or work on CI/CD pipelines, .NET Tools can be really useful for you since they automate many tasks, can be installed with a simple one line command and you can create them yourself. But how do I know what tools are already available and how can I search for them?
The .NET docs have the following to say regarding finding of tools:
Currently, there isn’t a Tool search feature in the .NET Core CLI. The following are some recommendations on how to find tools:
- You can find .NET Tools on NuGet. However, NuGet doesn’t yet allow you to search specifically for .NET Tools.
- You may find tool recommendations in blog posts or in the natemcmaster/dotnet-tools GitHub repository.
- You can see the source code for the Tools created by the ASP.NET team at the dotnet/aspnetcore GitHub repository.
- You can learn about diagnostic tools at .NET Core dotnet diagnostic Tools.
Although these resources are good, wouldn’t it be nice to be able to search for tools directly?
Introducing ToolGet
Although NuGet Gallery doesn’t provide a way to search for .NET tools, the NuGet Search API does allow querying of tools. So, I took it upon myself to make a simple website that utilises this API to search for only .NET Tools, and I call it ToolGet:
Search
Simply provide your search query in the text box and hit enter or the search button:
Load more results
ToolGet displays 20 items at a time, and you can load more with the load more button:
Link to NuGet
Each tool result provides a link to NuGet so you can find out more information about the tool; versions, authours, project site etc:
Summary
ToolGet is a simple OSS website to allow searching of .NET Tools from NuGet and provides links to NuGet for each tool to access more information.
But… I am keen to see what you think of it. Is it useful? Did you find a bug? Could it be improved? What is it missing?
Let me know what you think !!
Resources: