Architecture of microsoft/powertoys
microsoft/powertoys is 7,249 source files holding 84,216 symbols across 6 modules, written mainly in C#, C++, JavaScript. The largest module is src, with 6,223 files, and 105 files are entry points into the dependency graph.
How powertoys fits together
Most of the code sits under src, which holds 6223 of the repository's files. src/common is shared Windows code for logging, settings files, version data and UI test automation, and the runner calls into it more than any other part. src/common/interop provides helper code for logging, named-pipe trust, update state, notifications and native API calls. src/dsc/v3/PowerToys.DSC/Program.cs is one of the program entry points, and src/dsc/PowerToys.Settings.DSC.Schema.Generator/Program.cs is a separate entry point for the Settings DSC schema generator. installer/PowerToysSetupCustomActionsVNext adds custom steps to the installer, including handling of files-in-use prompts during setup.
Largest modules
- src: 6,223 files and 757,860 lines of code
- tools: 79 files and 5,897 lines of code
- .github: 13 files and 5,475 lines of code
- .pipelines: 11 files and 1,170 lines of code
- installer: 9 files and 1,933 lines of code
- doc: 1 file and 24 lines of code
Languages
By file count: C# 4,861 files, C++ 1,339 files, JavaScript 106 files, C 18 files, Python 11 files, Makefile 1 file.
Documentation
Repowise documents powertoys in 5,576 pages generated from the source, 73 of them written explanations of the repository and its modules. Module guides include:
- src/Monaco/customLanguages: ActionRunner Execution Core
- src/modules/AdvancedPaste/AdvancedPaste: Advanced Paste AI Action Pipeline
- src/modules/CropAndLock/CropAndLock: Alt Window Cycle Module
- src/modules/alwaysontop/AlwaysOnTop: Always On Top Window Pinning
- src/modules/previewpane/common/cominterop: Bgcode Preview Handler Interop
- tools/BugReportTool/BugReportTool: Bug Report Tooling
More on powertoys: summary and FAQ, codebase overview, code health.
Related guide: Best dependency graph tools for monorepos