Grattlersoft.Unreg
0.1.0
dotnet tool install --global Grattlersoft.Unreg --version 0.1.0
dotnet new tool-manifest
dotnet tool install --local Grattlersoft.Unreg --version 0.1.0
#tool dotnet:?package=Grattlersoft.Unreg&version=0.1.0
nuke :add-package Grattlersoft.Unreg --version 0.1.0
<img src="assets/unreg_logo.svg" alt="unreg" height="60"><br/><br/>
Registry-Tweaks mit YAML-Skripten, automatischem Backup und interaktivem Wizard.
Eine CLI die .yaml-Skripte ausfuehrt um Windows-Registry-Eintraege zu setzen, loeschen, umbenennen oder zu sichern. Vor jeder Aenderung wird automatisch ein Backup erzeugt, das als vollwertiges Script zum Zuruecksetzen wiederverwendbar ist.
Die Engine erkennt bedingte Ausfuehrung (Windows-Version, Build-Nummer), kennt Berechtigungs-Operationen (TakeOwnership, SetPermissions) und liefert 16 fertige Tweaks im tweaks/-Ordner mit.
Features
- YAML-basierte Skript-Sprache fuer Registry-Operationen
- Automatisches Backup vor jeder Aenderung — das Backup ist selbst ein gueltiges Tweak-Script und wird als Restore-Script wiederverwendet
- Bedingte Ausfuehrung (nur bestimmte Windows-Versionen/Builds)
- Dry-Run und Diff (aktueller vs. geplanter Registry-Zustand) vor Ausfuehrung
- Zwei Script-Stores — System (
%ProgramData%) und User (%AppData%) - Interaktiver Wizard zum Erstellen neuer Tweak-Scripts
- Interaktiver Browser ueber beide Script-Stores mit Applied-Status-Anzeige
- Berechtigungs-Management: Take-Ownership, Set-Permissions
- Globaler Exception-Handler (
UNREG_DEBUG=1fuer Stacktraces) - 16 kuratierte Tweaks im
tweaks/-Ordner (Explorer, Datenschutz, UI, Developer)
Tipp:
Am besten Du sagst dein(er/em/en) Agent(innen|außen|remote): "Claudi! ich verspreche, das kommt so schnell nicht wieder vor, aber bitte folgendes Repo https:/.." klonen und stattdessen einfach nur in sauber machen. Fehler verstecken sich nicht im Detail, sondern sind mehr wie Leuchtfeuer"
Script-Sprache
Alles was aktuell in einem YAML-Script stehen kann.
Metadata:
metadata:
name: <kurzer-schluessel>
description: <einzeiler>
author: <optional>
version: <optional, semver>
tags: [<tag1>, <tag2>]
category: <developer|privacy|ui|performance|...>
requires-admin: <true|false>
requires-reboot: <true|false>
Bedingte Ausfuehrung:
conditions:
min-version: 10 # Windows 10 oder neuer
min-build: 19041 # 20H1 oder neuer
max-build: 26100 # nicht auf 25H2+
Operations (9 Actions):
| Action | Zweck |
|---|---|
set-value |
Wert setzen oder ueberschreiben |
read-value |
Wert lesen (fuer Validation oder Diff) |
create-key |
Registry-Key anlegen (rekursiv) |
delete-key |
Key inkl. aller Subkeys loeschen |
delete-key-if-empty |
Key nur loeschen wenn leer |
rename-key |
Key umbenennen (ueber Copy+Delete) |
delete-value |
Einzelnen Value loeschen |
take-ownership |
Besitzer auf Administrators oder angegeb. Principal |
set-permissions |
ACL setzen (FullControl, ReadKey, WriteKey) |
Value-Types: string, dword, qword, binary, expand-string, multi-string
Exit-Codes:
0— Erfolg1— Parse-, Validation-, Execution-Fehler oder Condition nicht erfuellt
Typische Workflows
# Script vor dem Anwenden begutachten
unreg info tweaks/show-file-extensions.yaml
unreg diff tweaks/show-file-extensions.yaml
unreg run tweaks/show-file-extensions.yaml --dry-run
# Anwenden — Backup wird automatisch erzeugt
unreg run tweaks/show-file-extensions.yaml
# Zurueck zum vorigen Zustand
unreg restore tweaks/show-file-extensions.backup.20260414-153000.yaml
# Eigenen Tweak bauen
unreg wizard
unreg validate my-tweak.yaml
unreg run my-tweak.yaml --dry-run
# Ueberblick ueber alle installierten Tweaks
unreg browse
unreg list --store system
unreg list --store user --category privacy
Aufbau
src/
Unreg.slnx Solution
Grattlersoft.Unreg/ CLI (Commands/, CliHelpers/, Diff/, Output/, Storage/, Wizard/)
Grattlersoft.Unreg.Engine/ Kern-Engine (Parsing, Serialization, Execution, Backup)
Grattlersoft.Unreg.Engine.Tests/ 186 Tests der Engine
Grattlersoft.Unreg.Tests/ 28 Tests der CLI-Helper
tweaks/ 16 Fertig-Tweaks (YAML)
PROJECT.md Architektur-Doku
Kommandos
unreg list [directory] Listet YAML-Scripts auf (--store fuer System/User-Store)
unreg info <script> Zeigt Metadaten, Bedingungen und Operationen
unreg validate <script> Validiert ein Script ohne Ausfuehrung
unreg diff <script> Zeigt aktuellen vs. geplanten Registry-Zustand
unreg run <script> Fuehrt das Script aus (--dry-run, --backup-dir)
unreg backup <script> Erstellt nur das Backup, ohne Ausfuehrung
unreg restore <backup-file> Stellt einen vorherigen Zustand wieder her
unreg init [output] Erstellt eine leere YAML-Script-Vorlage
unreg wizard Interaktiver Wizard zum Erstellen eines Scripts
unreg browse Interaktiver Browser ueber die Script-Stores
Beispiel
metadata:
name: "Show File Extensions"
description: "Zeigt Dateiendungen im Explorer immer an."
requires-admin: false
requires-reboot: false
tags: [explorer, ui, security, developer]
category: developer
operations:
- action: set-value
path: "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
value-name: "HideFileExt"
value-data: 0
value-type: dword
unreg run tweaks/show-file-extensions.yaml --dry-run # Vorschau
unreg run tweaks/show-file-extensions.yaml # Anwenden (Backup automatisch)
Build
dotnet build src/Unreg.slnx
dotnet test src/Unreg.slnx
Roadmap
Drei groessere Arbeitsbloecke stehen auf der Liste — Reihenfolge fix, weil
sie aufeinander aufbauen. Details in ROADMAP.md.
| Release | Thema | Nutzen |
|---|---|---|
| v0.1.0 | MVP — 9 Actions, Backup, Wizard, Browser | heute |
| v0.2.0 | Script-Parameter | wiederverwendbare Tweaks (CLSID/GUID/Pfad als Input) |
| v0.3.0 | DCOM-Permission-Handler | DCOM-Fehler 10016 sauber fixen (WMI, idempotent) |
| v0.3.1 | Kuratierte DCOM-Tweak-Sammlung | Meta-Tweak fuer die bekannten Win10/11-Kandidaten |
Offene Kandidaten ohne festes Release-Target: Dienste-Management
(set-service-start, stop-service), Scheduled-Task-Creation,
Group-Policy-Registry-Shortcut (HKLM\Software\Policies...).
Lizenz
OHNE-Lizenz — Mach was du willst. Wir waren's nicht.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|