Skip to main content

Documentation 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 is a free, open-source desktop application that bundles over 30 developer utilities into a single, offline-capable app. Instead of opening a dozen browser tabs to decode a JWT, format a JSON blob, or generate a UUID, DevToys puts every common micro-task one click away — with no data leaving your machine. Its Smart Detection system watches the clipboard and automatically routes whatever you copied to the most relevant tool, so the right tool is already pre-filled before you even switch windows.

Usage Modes

DevToys ships in two complementary forms that share the same underlying tool ecosystem.

Desktop GUI

The primary experience. A native desktop app for Windows, macOS, and Linux with a searchable sidebar, compact overlay mode, and full mouse/keyboard navigation.

DevToys CLI

A standalone command-line executable for the same three platforms. Each tool that implements ICommandLineTool is exposed as a sub-command, making DevToys scriptable in CI pipelines and shell workflows.

Desktop GUI

The GUI app is built on a platform-native shell that embeds a Blazor WebView for the tool canvas:
  • Windows 10/11 — WinUI / WPF host with Microsoft WebView2 (Chromium-based)
  • macOS 12+ — AppKit host with WebKit (Safari engine)
  • Linux — GTK4 host with WebKitGTK
All three platforms render the same Blazor component tree, so tools look and behave identically across operating systems.

DevToys CLI

The CLI binary (DevToys.CLI) is a self-contained executable that requires no GUI runtime. Tools opt in to CLI support by exporting a class that implements ICommandLineTool:
[Export(typeof(ICommandLineTool))]
[Name("Base64 Encode / Decoder")]
[CommandName(
    Name = "base64",
    Alias = "b64",
    DescriptionResourceName = nameof(Strings.Base64Description),
    ResourceManagerBaseName = "MyProject.Strings")]
internal sealed class Base64CommandLineTool : ICommandLineTool
{
    [CommandLineOption(Name = "file", Alias = "f", IsRequired = true,
        DescriptionResourceName = nameof(Strings.Base64FileOptionDescription))]
    internal FileInfo? File { get; set; }

    public ValueTask<int> InvokeAsync(ILogger logger, CancellationToken cancellationToken)
    {
        // tool logic here
        return ValueTask.FromResult(0);
    }
}

Smart Detection

Smart Detection is DevToys’s signature quality-of-life feature. Whenever you copy something to your clipboard, the app silently runs a chain of lightweight detectors in the background. Each detector implements IDataTypeDetector and reports whether the clipboard content matches its expected format within a 2-second timeout. The first tool whose accepted data types match the detected type is highlighted in the sidebar and pre-populated with your data. The following data type names are built in to the detection pipeline (defined in PredefinedCommonDataTypeNames):
ConstantValueWhat triggers it
TexttextAny plain text
JsonjsonValid JSON object
JsonArrayjsonArrayValid JSON array
XmlxmlValid XML document
XsdxsdXML Schema Definition
Base64Textbase64TextBase64-encoded text
Base64Imagebase64ImageBase64-encoded image data
ImageimageRaw image data
ImageFileimageFileImage file path
FilefileSingle file path
FilesfilesMultiple file paths
GZipgzipGZip-compressed data
DatedateParseable date/timestamp
Extensions can register their own detectors and inherit from a base type (for example, a jwt-header detector can declare json as its base, so the JWT detector only runs when the JSON detector already succeeded).

Tool Categories

All built-in tools (and most extension tools) are organized into seven categories, matching the constants in PredefinedCommonToolGroupNames:
CategoryConstantDescription
ConvertersConvertersTransform data between formats (JSON ↔ YAML, number bases, dates)
Encoders / DecodersEncodersDecodersEncode and decode data (Base64, URL, HTML, JWT, QR codes, GZip)
FormattersFormattersPretty-print or minify structured documents (JSON, SQL, XML)
GeneratorsGeneratorsProduce new data on demand (UUIDs, passwords, hashes, Lorem Ipsum)
GraphicGraphicImage utilities (compressor, format converter, color blindness simulator)
TestersTestersValidate and query data (RegEx, JSONPath, XML validator)
TextTextText manipulation (diff, Markdown preview, analyzer, list sorter)

Extension Model

DevToys uses the Managed Extensibility Framework (MEF) as its plugin system. A tool is any class decorated with [Export(typeof(IGuiTool))] or [Export(typeof(ICommandLineTool))]. The app discovers tools at startup by scanning MEF catalogs, so extensions require zero registration steps beyond dropping the assembly in the right location. Extensions are packaged as .devtoys NuGet packages — standard .nupkg files with a special file extension. The built-in Extensions Manager can install, update, and remove them directly from within the app. A minimal GUI tool looks like this:
[Export(typeof(IGuiTool))]
[Name("My Custom Tool")]
[ToolDisplayInformation(
    IconFontName = "FluentSystemIcons",
    IconGlyph = '\uF000',
    GroupName = PredefinedCommonToolGroupNames.Converters,
    ResourceManagerAssemblyIdentifier = nameof(MyAssemblyIdentifier),
    ResourceManagerBaseName = "MyExtension.Strings",
    ShortDisplayTitleResourceName = nameof(Strings.ShortTitle),
    DescriptionResourceName = nameof(Strings.Description))]
internal sealed class MyGuiTool : IGuiTool
{
    public UIToolView View
        => new UIToolView(/* build your UI here */);

    public void OnDataReceived(string dataTypeName, object? parsedData)
    {
        // handle Smart Detection data
    }
}

Platform Support

PlatformMinimum VersionUI Stack
WindowsWindows 10 (version 1903 / build 18362)WinUI / WPF + Microsoft WebView2
macOSmacOS 12.0 (Monterey)AppKit + WebKit
LinuxAny distro with GTK4 + WebKitGTKGTK4 + WebKitGTK

Installation

Get DevToys on Windows, macOS, or Linux using the package manager of your choice.

Built-in Tools

Explore all 30+ tools that ship with DevToys out of the box.

Extensions Overview

Learn how to find, install, and manage DevToys extensions.

Components Overview

Browse the UI components available for building your own tools.

Build docs developers (and LLMs) love