Skip to content

Commit 607ab1c

Browse files
authored
More readme tweaks + improving the sample extension (#26)
* Adding images * Push readme * Update extension.json * Update README.md * Update README.md * Update README.md * Push
1 parent db40db2 commit 607ab1c

8 files changed

Lines changed: 62 additions & 16 deletions

File tree

.github/schemas/extension.schema.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@
7070
"format": "uri",
7171
"examples": ["https://github.com/jiripolasek/MediaControlsExtension"]
7272
},
73+
"listed": {
74+
"type": "boolean",
75+
"description": "Whether this extension should appear in the public gallery. Defaults to true if omitted. Set to false for sample or test extensions.",
76+
"default": true
77+
},
7378
"tags": {
7479
"type": "array",
7580
"description": "Optional freeform tags for filtering. Maximum 5 tags.",

.github/scripts/generate.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
)
2929

3030
# Fields from extension.json that should not appear in the gallery output.
31-
FIELDS_TO_REMOVE = {"$schema", "icon"}
31+
FIELDS_TO_REMOVE = {"$schema", "icon", "listed"}
3232

3333
VALID_SCREENSHOT_EXTENSIONS = {".png", ".jpg", ".jpeg"}
3434
MAX_SCREENSHOTS = 5
@@ -154,6 +154,9 @@ def generate_gallery() -> dict:
154154
if data is None:
155155
skipped += 1
156156
continue
157+
if not data.get("listed", True):
158+
skipped += 1
159+
continue
157160
entry = transform_extension(data)
158161
entry["addedAt"] = existing_added_at.get(data["id"], today)
159162
extensions.append(entry)

README.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
<a href="https://learn.microsoft.com/windows/powertoys/command-palette/extensibility-overview">Create your own extension</a>
1313
</h3>
1414

15+
<br/>
16+
1517
🔍 **Discoverable by millions** — your extension shows up right inside Command Palette
1618

1719
📦 **Host it your way** — publish through winget, the Microsoft Store, or your own download link — you stay in control
@@ -24,18 +26,19 @@
2426

2527
New to building Command Palette extensions? Check out the [Extension Development docs](https://learn.microsoft.com/windows/powertoys/command-palette/extensibility-overview) to get started.
2628

27-
Once your extension is ready, follow these steps to list it in the gallery:
29+
📦 **Host it your way** — publish through winget, the Microsoft Store, or your own download link — you stay in control
30+
31+
🌍 **Open-source & community-driven** — join a growing ecosystem of developers extending Windows productivity
32+
33+
<br/>
2834

29-
1. **Fork** this repository
30-
2. **Create a folder** at `extensions/<your-name>/<extension-name>/` (lowercase, hyphens only)
31-
3. **Add an `extension.json`** with your extension metadata — see the [Contributing Guide](docs/CONTRIBUTING.md) for the full field reference and template
32-
4. **Add an icon** in the same folder
33-
5. **Publish your extension** to at least one install source: [winget](https://learn.microsoft.com/windows/powertoys/command-palette/publish-extension), [Microsoft Store](https://learn.microsoft.com/windows/powertoys/command-palette/publish-extension), or a direct download URL (e.g. a [GitHub Releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases) page)
34-
6. **Open a pull request** targeting `main`
35+
## 🛠️ Submit your extension
36+
37+
New to building Command Palette extensions? Check out the [Extension Development docs](https://learn.microsoft.com/windows/powertoys/command-palette/extensibility-overview) to get started.
3538

36-
CI will validate your submission automatically and the Command Palette team will review your PR. Once merged, your extension will show up in the Command Palette Extension Gallery.
39+
Once your extension is ready, add it to the gallery by opening a pull request with an `extension.json`, an icon, and at least one install source — winget, Microsoft Store, or a direct download URL. CI validates your submission automatically and the Command Palette team will review your PR.
3740

38-
See [`extensions/microsoft/sample-extension/`](extensions/microsoft/sample-extension/) for a complete example.
41+
👉 **[Submit your extension guide](docs/CONTRIBUTING.md)** — full walkthrough, field reference, and a [sample extension](extensions/microsoft/sample-extension/) to get started.
3942

4043
<p align="center">
4144
<img src="docs/images/details.png" alt="Extension details page" width="700" />

docs/CONTRIBUTING.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,16 +68,16 @@ Create an `extension.json` file inside your folder. Here is the full template wi
6868
"name": "Publisher Display Name",
6969
"url": "https://github.com/publisher"
7070
},
71+
"icon": "icon.png",
72+
"homepage": "https://github.com/publisher/extension",
7173
"tags": ["tag1", "tag2"],
7274
"categories": ["productivity", "utilities-and-tools"],
73-
"icon": "icon.png",
7475
"installSources": [
7576
{
7677
"type": "winget",
7778
"id": "Publisher.PackageName"
7879
}
79-
],
80-
"homepage": "https://github.com/publisher/extension"
80+
]
8181
}
8282
```
8383

@@ -91,11 +91,12 @@ Create an `extension.json` file inside your folder. Here is the full template wi
9191
| `shortDescription` | **Required** | Short one-line description of the extension (max 200 characters). |
9292
| `description` | **Required** | Full description of the extension, typically sourced from the Store listing or README (max 3000 characters). |
9393
| `author` | **Required** | Object with `name` (required, max 100 characters) and `url` (optional). |
94-
| `tags` | Optional | Up to 5 freeform tags for filtering (each max 30 characters). |
95-
| `categories` | Optional | Up to 3 categories from a fixed list. See [Allowed categories](#allowed-categories) below. |
9694
| `icon` | **Required** | Filename of the icon in the same folder (e.g., `icon.png`). |
9795
| `installSources` | **Required** | Array of install source objects. Each has a `type` and a type-specific identifier. See below. |
9896
| `homepage` | Optional | URL to the project homepage or repository. |
97+
| `tags` | Optional | Up to 5 freeform tags for filtering (each max 30 characters). |
98+
| `categories` | Optional | Up to 3 categories from a fixed list. See [Allowed categories](#allowed-categories) below. |
99+
| `listed` | Optional | Whether the extension appears in the public gallery. Defaults to `true`. Set to `false` for sample or test extensions. |
99100

100101
#### Install source types
101102

extensions.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"$schema": "https://raw.githubusercontent.com/microsoft/CmdPal-Extensions/main/.github/schemas/gallery.schema.json",
33
"version": "1.0",
4-
"generatedAt": "2026-04-10T10:56:52Z",
4+
"generatedAt": "2026-04-11T09:31:27Z",
55
"extensionCount": 12,
66
"extensions": [
77
{
@@ -302,6 +302,10 @@
302302
{
303303
"type": "msstore",
304304
"id": "9P2JPD7XDB3C"
305+
},
306+
{
307+
"type": "url",
308+
"uri": "https://github.com/niels9001/CmdPal-EventViewer/releases"
305309
}
306310
],
307311
"iconUrl": "https://raw.githubusercontent.com/microsoft/CmdPal-Extensions/main/extensions/nielslaute/event-viewer/icon.png",
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"$schema": "../../../.github/schemas/extension.schema.json",
3+
"id": "microsoft.sample-extension",
4+
"listed": false,
5+
"title": "Sample Extension",
6+
"shortDescription": "A sample extension to demonstrate the gallery submission format.",
7+
"description": "A sample Command Palette extension to demonstrate the gallery submission format. Use this as a reference when creating your own extension submission.",
8+
"author": {
9+
"name": "Microsoft",
10+
"url": "https://github.com/microsoft"
11+
},
12+
"icon": "icon.png",
13+
"homepage": "https://github.com/microsoft/CmdPal-Extensions",
14+
"tags": ["sample", "demo", "template"],
15+
"categories": ["utilities-and-tools"],
16+
"installSources": [
17+
{
18+
"type": "winget",
19+
"id": "Microsoft.PowerToys"
20+
},
21+
{
22+
"type": "msstore",
23+
"id": "XP89DCGQ3K6VLD"
24+
},
25+
{
26+
"type": "url",
27+
"uri": "https://github.com/microsoft/CmdPal-Extensions/releases/latest"
28+
}
29+
]
30+
}
3.35 KB
Loading
545 KB
Loading

0 commit comments

Comments
 (0)