Skip to content

Commit d330c00

Browse files
committed
small updates
1 parent 6ae7d28 commit d330c00

File tree

4 files changed

+59
-5
lines changed

4 files changed

+59
-5
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,56 @@
11
---
22
title: Command Palette Extensibility
33
description: The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. Find info about how to create an extension and publish it along with samples.
4-
ms.date: 2/3/2025
4+
ms.date: 2/28/2025
55
ms.topic: concept-article
66
no-loc: [PowerToys, Windows, Insider]
77
# Customer intent: As a Windows developer, I want to learn how to develop an extension for the Command Palette.
88
---
99

10-
# Extensibility overview
10+
# Extensibility overview
11+
12+
## Registering your extension
13+
14+
Extensions can register themselves with the Command Palette using their `.appxmanifest`. As an example:
15+
16+
```XML
17+
<Extensions>
18+
<com:Extension Category="windows.comServer">
19+
<com:ComServer>
20+
<com:ExeServer Executable="ExtensionName.exe" Arguments="-RegisterProcessAsComServer" DisplayName="Sample Extension">
21+
<com:Class Id="<Extension CLSID Here>" DisplayName="Sample Extension" />
22+
</com:ExeServer>
23+
</com:ComServer>
24+
</com:Extension>
25+
<uap3:Extension Category="windows.appExtension">
26+
<uap3:AppExtension Name="com.microsoft.commandpalette"
27+
Id="YourApplicationUniqueId"
28+
PublicFolder="Public"
29+
DisplayName="Sample Extension"
30+
Description="Sample Extension for Run">
31+
<uap3:Properties>
32+
<CmdPalProvider>
33+
<Activation>
34+
<CreateInstance ClassId="<Extension CLSID Here>" />
35+
</Activation>
36+
<SupportedInterfaces>
37+
<Commands />
38+
</SupportedInterfaces>
39+
</CmdPalProvider>
40+
</uap3:Properties>
41+
</uap3:AppExtension>
42+
</uap3:Extension>
43+
</Extensions>
44+
```
45+
46+
Notable elements:
47+
48+
- The application must specify a `Extensions.comExtension.ComServer` to host their COM class. This allows for the OS to register that GUID as a COM class we can instantiate.
49+
50+
- Make sure that this CLSID is unique, and matches the one in your application
51+
52+
- The application must specify a `Extensions.uap3Extension.AppExtension` with the Name set to `com.microsoft.commandpalette`. This is the unique identifier which DevPal can use to find it's extensions.
53+
54+
- In the `Properties` of your `AppExtension`, you must specify a `CmdPalProvider` element. This is where you specify the CLSID of the COM class that DevPal will instantiate to interact with your extension. Also, you specify which interfaces you support.
55+
56+
Currently, only `Commands` is supported. If we need to add more in the future, we can add them to the `SupportedInterfaces` element.

hub/powertoys/command-palette/microsoft-commandpalette-extensions-toolkit/command.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Command Class
33
description:
4-
ms.date: 2/10/2025
4+
ms.date: 2/27/2025
55
ms.topic: reference
66
no-loc: [PowerToys, Windows, Insider]
77
---
@@ -16,6 +16,8 @@ Inherits [BaseObservable](baseobservable.md)
1616

1717
Implements [ICommand](../microsoft-commandpalette-extensions/icommand.md)
1818

19+
`Command`s are the primary unit of functionality in the Command Palette SDK. They represent "a thing that a user can do". These can be something simple like open a URL in a web browser. Or they can be more complex, with nested commands, custom arguments, and more.
20+
1921
## Properties
2022

2123
| Property | Type | Description |

hub/powertoys/command-palette/microsoft-commandpalette-extensions-toolkit/page.md

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Inherits [Command](command.md)
1616

1717
Implements [IPage](../microsoft-commandpalette-extensions/ipage.md)
1818

19+
Represent additional "nested" pages within the Command Palette.
20+
1921
## Properties
2022

2123
| Property | Type | Description |
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
---
22
title: Command Palette Extension Publishing
33
description: The Command Palette provides a full extension model, allowing developers to create their own experiences for the palette. Find info about how to publish an extension.
4-
ms.date: 2/3/2025
4+
ms.date: 2/28/2025
55
ms.topic: concept-article
66
no-loc: [PowerToys, Windows, Insider]
77
# Customer intent: As a Windows developer, I want to learn how to publish an extension for the Command Palette.
88
---
99

10-
# Publishing your extension
10+
# Publishing your extension
11+
12+
## Microsoft Store
13+
14+
## WinGet

0 commit comments

Comments
 (0)