A DevToys extension is distributed as aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/DevToys-app/DevToys/llms.txt
Use this file to discover all available pages before exploring further.
.devtoys file — which is simply a standard NuGet package (.nupkg) renamed with the .devtoys extension. You build it with the regular dotnet pack command, rename the output, and either install it locally by dropping it onto the DevToys window or publish it to NuGet.org so anyone can find and install it from within the Extensions Manager.
What is a .devtoys File?
A.devtoys file is a .nupkg archive renamed to .devtoys. DevToys extracts it at installation time exactly as NuGet would — reading the .nuspec manifest, placing assemblies in the plugins folder, and recording the version for update checking. Because it is a valid NuGet package underneath, you can also distribute it directly on NuGet.org and users can search for it by the devtoys-app tag from within the Extensions Manager.
Add the required NuGet metadata to your class library’s project file. At minimum you need
Version, Authors, Description, and the devtoys-app package tag. The tag is what the Extensions Manager uses when it queries NuGet.org for available extensions.<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<!-- NuGet package metadata -->
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
<Authors>YourName</Authors>
<Description>A DevToys extension that does something awesome.</Description>
<PackageTags>devtoys-app</PackageTags>
<!-- Optional but recommended -->
<PackageProjectUrl>https://github.com/yourname/your-extension</PackageProjectUrl>
<RepositoryUrl>https://github.com/yourname/your-extension</RepositoryUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>icon.png</PackageIcon>
<Copyright>Copyright © 2024 YourName</Copyright>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DevToys.Api" Version="*" />
</ItemGroup>
<!-- Include optional assets in the package -->
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\" />
<None Include="icon.png" Pack="true" PackagePath="" />
</ItemGroup>
</Project>
Use semantic versioning (
MAJOR.MINOR.PATCH). The Extensions Manager compares version numbers to detect available updates and shows a notification badge when a newer version is published to NuGet.org.Run
dotnet pack with the Release configuration. The output .nupkg is placed in bin/Release/ by default.If you set
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> (recommended), the package is also produced automatically by dotnet build -c Release.# Linux / macOS
mv bin/Release/MyExtension.1.0.0.nupkg bin/Release/MyExtension.1.0.0.devtoys
# Windows (PowerShell)
Rename-Item bin\Release\MyExtension.1.0.0.nupkg MyExtension.1.0.0.devtoys
Drag and drop
Drag the
.devtoys file from Explorer / Finder directly onto the DevToys window. DevToys will display a third-party extension warning dialog, then install the extension. Extensions Manager
- Open DevToys and click the wrench icon (Extensions Manager) in the footer of the left sidebar.
- Click Install Extension.
- Browse to your
.devtoysfile and confirm.
You must restart DevToys after installing an extension. The Extensions Manager will display a “Restart required” info bar as a reminder.
Publishing your extension to NuGet.org makes it discoverable from the Extensions Manager’s Find more extensions online button, which opens
https://www.nuget.org/packages?q=Tags%3A%22devtoys-app%22.# Push the .nupkg (not the .devtoys) to NuGet.org
dotnet nuget push bin/Release/MyExtension.1.0.0.nupkg \
--api-key YOUR_NUGET_API_KEY \
--source https://api.nuget.org/v3/index.json
Once the package is indexed (usually within minutes), users can find your extension by searching for it inside the Extensions Manager without leaving DevToys.
Extensions Manager Overview
The Extensions Manager is a built-in DevToys GUI tool ([MenuPlacement(MenuPlacement.Footer)]) that shows all installed extensions with their version, description, and installation size. From it you can:
- Install a
.devtoysfile from disk. - Uninstall any installed extension (takes effect after restart).
- Update an extension — clicking the update button navigates to the extension’s NuGet.org page so you can download the new
.devtoysfile. - Find more extensions online — opens NuGet.org filtered to the
devtoys-apptag.
Terms and Conditions
Before the Extensions Manager installs any extension, it displays a warning dialog that links to the DevToys Extensions Terms and Conditions. By publishing an extension, you agree that it complies with those terms. Key points:- Extensions must not be malicious or deceptive.
- Extensions must not harvest or transmit user data without explicit consent.
- Extensions that violate the terms may be removed from the NuGet.org feed featured by the Extensions Manager.