Helpful tools collection in a single UI built with Flowery.NET (AvaloniaUI)
C#
63
31 commits
updated Jul 31, 2026

Originally started as a C#/.NET port of the utilities and tools found in the inspiring OpenSourceToolkit project, and has since been extended with additional tools and features (including a full Avalonia desktop app to explore everything interactively). Special thanks to the original author truethari for their incredible work.
This suite provides reusable, modular components for text manipulation, security, networking, hardware testing, and more. Crucially, it includes a full Avalonia UI application that allows users to interactively test and verify most functions of the 40+ tools (currently 41) and libraries in a modern desktop interface.
Porting was mainly done by help of AI, but I spent hundreds of hours tweaking the tools, adding translations, add more features and simultaneously enhancing my Flowery.NET component suite for the UI.
The total lines of code count (excluding comments) is > 91K.
🌐 Localized in 12 languages including:
🇯🇵 日本語にローカライズ済み • 🇰🇷 한국어로 현지화됨 • 🇨🇳 已本地化为简体中文
🇺🇦 Локалізовано українською • 🇸🇦 مترجم للعربية • 🇮🇱 מתורגם לעברית
net10.0-windows, win-x64)latest)The solution OpenSourceToolkit.Net.sln is organized into the following projects:
net10.0-windows (win-x64)Avalonia, Flowery.NET| Project | Description | Dependencies |
|---|---|---|
| OpenSourceToolkit.Core | Shared primitives and base types. | None |
| OpenSourceToolkit.TextData | Generators for UUIDs, Lorem Ipsum, Mock Data, QR Codes, Privacy Policies, VCards, Regex Testing. | Bogus, QRCoder |
| OpenSourceToolkit.Converters | Utilities for Timestamp, Image Format, Text Case, Base64, and Ethereum conversions. | System.Drawing.Common |
| OpenSourceToolkit.Security | Security tools for JWT, HMAC, Hashing (MD5/SHA), and Password Generation. | System.IdentityModel.Tokens.Jwt |
| OpenSourceToolkit.Networking | Tools for IP Geolocation, Speed Testing, DNS Lookups, Uptime Monitoring, and IP Subnet Calculations. | DnsClient |
| OpenSourceToolkit.Scheduling | Cron job expression parsing and scheduling. | NCrontab |
| OpenSourceToolkit.ApiTesting | HTTP API testing framework with request/response assertions. | None |
| OpenSourceToolkit.IO | File system tools, including folder structure analysis. | None |
| OpenSourceToolkit.Documents | PDF manipulation tools (Merge, Split, Watermark). | PdfSharp |
| OpenSourceToolkit.Media | ASCII Art generation, Next.js Image URL parsing, and media utilities. | FIGLet |
| OpenSourceToolkit.Colors | Color format converters (HEX, RGB, HSL). | System.Drawing.Common |
| OpenSourceToolkit.Hardware | Hardware testing abstractions for Keyboard, Speaker, Mic, and Camera. | NAudio |
| OpenSourceToolkit.Calculators | Financial calculators (Compound Interest, Loan Payments, ROI). | None |
| OpenSourceToolkit.Tests | MSTest unit tests for ensuring parity and correctness. | MSTest |
Note: This repository also contains
OpenSourceToolkit.AI(a .NET 10 Windows x64 library), but it is not included inOpenSourceToolkit.Net.slnby default.
The desktop app (OpenSourceToolkit.NET) currently includes 41 tools, grouped in the sidebar as follows:
To build the entire solution, run the following command in this directory:
dotnet build
Note: Debug builds are configured to output artifacts to a common directory:
bin\debug\net10.0-windows\win-x64\The best way to explore the toolkit is via the Avalonia UI app, which provides a dedicated interface for every tool:
.\bin\debug\net10.0-windows\win-x64\OpenSourceToolkit.NET.exe
To execute the unit tests:
dotnet test
For convenience, the repo includes two PowerShell scripts under scripts/ to build and run the Avalonia desktop app.
scripts/build_desktop.ps1: builds OpenSourceToolkit.NET (optionally also OpenSourceToolkit.Tests)
pwsh ./scripts/build_desktop.ps1
pwsh ./scripts/build_desktop.ps1 -Configuration Release
pwsh ./scripts/build_desktop.ps1 -IncludeTests
pwsh ./scripts/build_desktop.ps1 -NoRestore
scripts/run_desktop.ps1: builds and starts OpenSourceToolkit.NET in the background
pwsh ./scripts/run_desktop.ps1
pwsh ./scripts/run_desktop.ps1 -Configuration Release
using OpenSourceToolkit.TextData;
// Generate UUID V4
string uuid = UuidGenerator.GenerateV4();
// Generate Lorem Ipsum
var generator = new LoremIpsumGenerator();
string text = generator.GenerateSentences(3);
using OpenSourceToolkit.Security;
// Compute Hash
string md5 = HashGenerator.ComputeMd5("OpenSourceToolkit");
// Generate JWT
string token = JwtHelper.GenerateToken("secret_key", "issuer", "audience");
using OpenSourceToolkit.Networking;
// Check Uptime
var monitor = new UptimeMonitor();
var result = await monitor.CheckAsync("https://google.com");
Console.WriteLine($"Is Up: {result.IsUp}");
using OpenSourceToolkit.Hardware;
// Play Tone
using (var speaker = new SpeakerTester())
{
speaker.PlayTone(440, 1.0f); // 440Hz for 1 second
}
The project relies on high-quality open-source packages:
CustomThemeApplicator support).The application supports multiple languages with runtime switching. Currently supported:
Change the application language through the settings panel. All UI elements will update immediately without restart.
Add the localization namespace to your view:
xmlns:loc="clr-namespace:OpenSourceToolkit.NET.Localization"
Use the Localize markup extension:
<TextBlock Text="{loc:Localize Button_Save}"/>
<Button Content="{loc:Localize Button_Generate}"/>
<TextBox Watermark="{loc:Localize Input_Placeholder}"/>
Localization strings are stored as embedded JSON files in OpenSourceToolkit.NET\Localization\ (e.g. en.json, de.json, fr.json).
OpenSourceToolkit.NET\Localization\en.json (fallback)de.json){loc:Localize YourKey}The ToolkitLocalization.SetCulture() method updates thread cultures and notifies bindings so {loc:Localize ...} updates immediately:
Thread.CurrentThread.CurrentUICulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureChanged?.Invoke(null, culture);
Instance.PropertyChanged?.Invoke(Instance, new PropertyChangedEventArgs("Item"));
Instance.PropertyChanged?.Invoke(Instance, new PropertyChangedEventArgs("Item[]"));
Translations are loaded lazily from embedded JSON resources when a language is selected.
This project is licensed under the MIT License - see the LICENSE file for details.
The solution includes a comprehensive test suite in OpenSourceToolkit.Tests using MSTest. These 170+ tests verify the functionality of most of the libraries.
You can execute the full test suite via the command line:
dotnet test
Tests are designed to be safe and isolated, using temporary files for IO operations and simulating hardware interactions where necessary to run on CI/CD environments.
1,319 followers · starred Dec 2025
C#
97.5%
Python
1.9%
Helpful tools collection in a single UI built with Flowery.NET (AvaloniaUI)
C#
63
31 commits
updated Jul 31, 2026

Originally started as a C#/.NET port of the utilities and tools found in the inspiring OpenSourceToolkit project, and has since been extended with additional tools and features (including a full Avalonia desktop app to explore everything interactively). Special thanks to the original author truethari for their incredible work.
This suite provides reusable, modular components for text manipulation, security, networking, hardware testing, and more. Crucially, it includes a full Avalonia UI application that allows users to interactively test and verify most functions of the 40+ tools (currently 41) and libraries in a modern desktop interface.
Porting was mainly done by help of AI, but I spent hundreds of hours tweaking the tools, adding translations, add more features and simultaneously enhancing my Flowery.NET component suite for the UI.
The total lines of code count (excluding comments) is > 91K.
🌐 Localized in 12 languages including:
🇯🇵 日本語にローカライズ済み • 🇰🇷 한국어로 현지화됨 • 🇨🇳 已本地化为简体中文
🇺🇦 Локалізовано українською • 🇸🇦 مترجم للعربية • 🇮🇱 מתורגם לעברית
net10.0-windows, win-x64)latest)The solution OpenSourceToolkit.Net.sln is organized into the following projects:
net10.0-windows (win-x64)Avalonia, Flowery.NET| Project | Description | Dependencies |
|---|---|---|
| OpenSourceToolkit.Core | Shared primitives and base types. | None |
| OpenSourceToolkit.TextData | Generators for UUIDs, Lorem Ipsum, Mock Data, QR Codes, Privacy Policies, VCards, Regex Testing. | Bogus, QRCoder |
| OpenSourceToolkit.Converters | Utilities for Timestamp, Image Format, Text Case, Base64, and Ethereum conversions. | System.Drawing.Common |
| OpenSourceToolkit.Security | Security tools for JWT, HMAC, Hashing (MD5/SHA), and Password Generation. | System.IdentityModel.Tokens.Jwt |
| OpenSourceToolkit.Networking | Tools for IP Geolocation, Speed Testing, DNS Lookups, Uptime Monitoring, and IP Subnet Calculations. | DnsClient |
| OpenSourceToolkit.Scheduling | Cron job expression parsing and scheduling. | NCrontab |
| OpenSourceToolkit.ApiTesting | HTTP API testing framework with request/response assertions. | None |
| OpenSourceToolkit.IO | File system tools, including folder structure analysis. | None |
| OpenSourceToolkit.Documents | PDF manipulation tools (Merge, Split, Watermark). | PdfSharp |
| OpenSourceToolkit.Media | ASCII Art generation, Next.js Image URL parsing, and media utilities. | FIGLet |
| OpenSourceToolkit.Colors | Color format converters (HEX, RGB, HSL). | System.Drawing.Common |
| OpenSourceToolkit.Hardware | Hardware testing abstractions for Keyboard, Speaker, Mic, and Camera. | NAudio |
| OpenSourceToolkit.Calculators | Financial calculators (Compound Interest, Loan Payments, ROI). | None |
| OpenSourceToolkit.Tests | MSTest unit tests for ensuring parity and correctness. | MSTest |
Note: This repository also contains
OpenSourceToolkit.AI(a .NET 10 Windows x64 library), but it is not included inOpenSourceToolkit.Net.slnby default.
The desktop app (OpenSourceToolkit.NET) currently includes 41 tools, grouped in the sidebar as follows:
To build the entire solution, run the following command in this directory:
dotnet build
Note: Debug builds are configured to output artifacts to a common directory:
bin\debug\net10.0-windows\win-x64\The best way to explore the toolkit is via the Avalonia UI app, which provides a dedicated interface for every tool:
.\bin\debug\net10.0-windows\win-x64\OpenSourceToolkit.NET.exe
To execute the unit tests:
dotnet test
For convenience, the repo includes two PowerShell scripts under scripts/ to build and run the Avalonia desktop app.
scripts/build_desktop.ps1: builds OpenSourceToolkit.NET (optionally also OpenSourceToolkit.Tests)
pwsh ./scripts/build_desktop.ps1
pwsh ./scripts/build_desktop.ps1 -Configuration Release
pwsh ./scripts/build_desktop.ps1 -IncludeTests
pwsh ./scripts/build_desktop.ps1 -NoRestore
scripts/run_desktop.ps1: builds and starts OpenSourceToolkit.NET in the background
pwsh ./scripts/run_desktop.ps1
pwsh ./scripts/run_desktop.ps1 -Configuration Release
using OpenSourceToolkit.TextData;
// Generate UUID V4
string uuid = UuidGenerator.GenerateV4();
// Generate Lorem Ipsum
var generator = new LoremIpsumGenerator();
string text = generator.GenerateSentences(3);
using OpenSourceToolkit.Security;
// Compute Hash
string md5 = HashGenerator.ComputeMd5("OpenSourceToolkit");
// Generate JWT
string token = JwtHelper.GenerateToken("secret_key", "issuer", "audience");
using OpenSourceToolkit.Networking;
// Check Uptime
var monitor = new UptimeMonitor();
var result = await monitor.CheckAsync("https://google.com");
Console.WriteLine($"Is Up: {result.IsUp}");
using OpenSourceToolkit.Hardware;
// Play Tone
using (var speaker = new SpeakerTester())
{
speaker.PlayTone(440, 1.0f); // 440Hz for 1 second
}
The project relies on high-quality open-source packages:
CustomThemeApplicator support).The application supports multiple languages with runtime switching. Currently supported:
Change the application language through the settings panel. All UI elements will update immediately without restart.
Add the localization namespace to your view:
xmlns:loc="clr-namespace:OpenSourceToolkit.NET.Localization"
Use the Localize markup extension:
<TextBlock Text="{loc:Localize Button_Save}"/>
<Button Content="{loc:Localize Button_Generate}"/>
<TextBox Watermark="{loc:Localize Input_Placeholder}"/>
Localization strings are stored as embedded JSON files in OpenSourceToolkit.NET\Localization\ (e.g. en.json, de.json, fr.json).
OpenSourceToolkit.NET\Localization\en.json (fallback)de.json){loc:Localize YourKey}The ToolkitLocalization.SetCulture() method updates thread cultures and notifies bindings so {loc:Localize ...} updates immediately:
Thread.CurrentThread.CurrentUICulture = culture;
CultureInfo.DefaultThreadCurrentUICulture = culture;
CultureInfo.DefaultThreadCurrentCulture = culture;
CultureChanged?.Invoke(null, culture);
Instance.PropertyChanged?.Invoke(Instance, new PropertyChangedEventArgs("Item"));
Instance.PropertyChanged?.Invoke(Instance, new PropertyChangedEventArgs("Item[]"));
Translations are loaded lazily from embedded JSON resources when a language is selected.
This project is licensed under the MIT License - see the LICENSE file for details.
The solution includes a comprehensive test suite in OpenSourceToolkit.Tests using MSTest. These 170+ tests verify the functionality of most of the libraries.
You can execute the full test suite via the command line:
dotnet test
Tests are designed to be safe and isolated, using temporary files for IO operations and simulating hardware interactions where necessary to run on CI/CD environments.
1,319 followers · starred Dec 2025
C#
97.5%
Python
1.9%