Skip to content

About

A collection of extensions for the Windows Command Palette

Topics

Resources

Stars

122 stars

Watchers

2 watching

Forks

Latest commit

 

History

91 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mike's Command Palette Extensions

A collection of independent extensions for PowerToys Command Palette. Contributions are welcome.

Extensions

Each extension is its own app/package, not one combined installation.

Extension Description Store listing draft
Hacker News Browse top stories and open articles/discussions Details
Obsidian Notes Search, preview, edit, and open notes in a local vault Details
Mastodon Browse your chosen Mastodon instance and interact with posts Details
TMDB Search Search movies and streaming providers with your TMDB API token Details
Segoe Icons Find and copy icon characters or XAML Details
Edge Favorites Search favorites in supported Edge Default profiles Details
NFL Scores View ESPN game scores and details Details
SpongeBot Convert text to alternating case and copy it Details
Media Controls Control the active Windows media session Details

Store publishing is being prepared; these are not live Store listings. Historical GitHub releases remain available as legacy, x64-only sideload packages. New CI artifacts are unsigned Store submissions, not sideload installers.

After installing a published extension, enable Command Palette in PowerToys and open it with Win+Alt+Space (or your configured shortcut). Starting an extension directly displays a short console explanation instead of opening a standalone app. SpongeBot appears as a fallback action for typed text.

Package builds

The Build Store bundles workflow builds all nine shipping extensions for x64 and ARM64 and produces nine separate .msixbundle files, each containing both architectures. src/store-apps.json is the explicit application catalog; the development template is excluded. Packages include their .NET runtime, so users do not need to install a separate developer runtime. Missing apps/architectures, duplicates, identity/version mismatches, and missing packaged artwork/legal documents fail validation. The store-msixbundles artifact is a download archive containing the independent bundles, not a tenth combined app.

Store submissions do not need our former public-CA signature. Microsoft Store signs packages for distribution after approval. CI has no Azure authentication, signing job, Store upload, or automatic publishing step.

On Windows, with the .NET 9 SDK and Windows SDK installed, run from the repo root:

.\src\tools\tests\StoreReadiness.Tests.ps1
.\src\tools\tests\MsixPackaging.Tests.ps1
.\src\tools\tests\MediaControls.Tests.ps1
.\src\tools\Build-StorePackages.ps1 -Platform x64
.\src\tools\Build-StorePackages.ps1 -Platform ARM64
.\src\tools\New-MsixBundles.ps1
.\src\tools\Test-StoreReadiness.ps1 -BundlesPath .\artifacts\bundles

Use fresh artifacts\packages and artifacts\bundles directories; scripts reject stale output rather than mixing old identities into submissions. global.json selects .NET 9, and .github\nuget.config uses public NuGet packages instead of the optional local SDK feed in the root configuration.

Package and 300x300 Store listing icons are checked in. The existing Obsidian, TMDB, and WinUI Gallery artwork is reused without changing its colors or aspect ratio; replacements are limited to template/corrupt assets and SpongeBot's cartoon artwork, which has no recorded redistribution permission. See the artwork inventory. To regenerate, use Python with Pillow and run python .\src\tools\Generate-StoreAssets.py; --check compares the committed artwork with the generator output. Run python .\src\tools\tests\StoreAssets.Tests.py for scaling regression tests.

See Store preparation and release gates and the deferred Hacker News submission plan. The proposed identities must be matched to Partner Center reservations before uploading. Switching from the old sideload identities is a one-time separate installation; automatic settings/credential migration is not implemented.

Deprecated signing notes

The old Azure Trusted Signing and x64 package-collection path is retired. Find-Msixs*.ps1 and Sign-Msixs.ps1 have been removed. The signing notebook remains only as historical personal notes; do not use it for these Store identities. Existing Azure/GitHub signing resources have not been deleted and are no longer used by this workflow.

License, privacy, and support

MIT license · Privacy policy · Third-party notices · Support/issues

Mastodon home instance

Open the Mastodon extension's settings in Command Palette (also available from the login, explore, and home commands) and set Home instance to your server's hostname or HTTPS URL, such as fosstodon.org or https://fosstodon.org. Use the server's base URL, without a path or query.

Login, Explore, your home timeline, replies, favorites, and boosts all use the selected instance. Changing instances refreshes the timelines and switches to that instance's saved login, or asks you to sign in if you have not used it before. Credentials are stored separately for each instance; existing mastodon.social logins continue to work. Logging out only removes the selected instance's login.

Run the Mastodon instance regression tests with dotnet test .\src\extensions\MastodonExtension.Tests\MastodonExtension.Tests.csproj -p:Platform=x64 -p:RestoreConfigFile="$PWD\.github\nuget.config".

TMDB Search setup

Sign in to TMDB's API settings and copy your API Read Access Token into the extension's login form. Use the read access token, not your TMDB password or API key. Signing in to the TMDB website alone does not authenticate the extension. The token is stored in Windows Credential Manager. Use Update TMDB API token in the search command's context menu to replace it.

Open the extension's settings from Command Palette settings or the command's context menu to set Language. Both movie searches and movie details use this language code (for example, fr, it, or en-US). The default is en-US; leaving the setting blank also uses en-US. This changes the language of returned titles, descriptions, and genres, not the movies' original language or the streaming-provider region (currently US).

Authentication, network, and API errors are shown separately from an empty search result. If authentication fails, open the error item to enter your API Read Access Token again.

Contributing

Contributions and regression tests are welcome.

Run the TMDB regression tests on Windows with the .NET 9 SDK or later:

dotnet test .\src\extensions\TmdbExtension.Tests\TmdbExtension.Tests.csproj -p:Platform=x64 -p:RestoreConfigFile="$PWD\.github\nuget.config"

These tests use simulated HTTP responses; no TMDB account or API token is required.

About

A collection of extensions for the Windows Command Palette

Topics

Resources

Stars

122 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages