Skip to content

Commit e665ba0

Browse files
Update docs for 21 command types, add web manifest and structured data (#10)
# TLDR; Website and documentation updates: bump command count from 19 to 21 (C# Script, F# Script), add web manifest, twitter image alt tags, SoftwareApplication structured data, and remove stale CoveragePlan.md. # Details - Updated all references from "19 command types" to "21 command types" across README, website homepage, docs, and blog - Added C# Script (.csx) and F# Script (.fsx) entries to all command type listings - Added `site.webmanifest` with PWA-style metadata and favicon references - Added `twitter:image:alt` meta tag injection in eleventy config - Added `SoftwareApplication` JSON-LD structured data schema to homepage - Updated favicon.ico - Deleted `CoveragePlan.md` (stale planning artifact) - Added social media preview cards reference to CLAUDE.md # How do the tests prove the change works Homepage Playwright test updated to assert 21 command types (was 19) and verify C# Scripts and F# Scripts appear in the expected types list.
1 parent c9dc2c5 commit e665ba0

File tree

12 files changed

+110
-141
lines changed

12 files changed

+110
-141
lines changed

Claude.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ https://developers.google.com/search/docs/fundamentals/seo-starter-guide
116116
https://studiohawk.com.au/blog/how-to-optimise-ai-overviews/
117117
https://about.ads.microsoft.com/en/blog/post/october-2025/optimizing-your-content-for-inclusion-in-ai-search-answers
118118

119+
https://documentation.platformos.com/use-cases/implementing-social-media-preview-cards
120+
119121
## Project Structure
120122

121123
```

CoveragePlan.md

Lines changed: 0 additions & 124 deletions
This file was deleted.

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<img src="website/src/assets/images/CommandTree.gif" alt="CommandTree in action" width="780">
99
</p>
1010

11-
CommandTree scans your project and surfaces all runnable commands across 19 tool types in a single tree view. Filter by text or tag, search by meaning with AI-powered semantic search, and run in terminal or debugger.
11+
CommandTree scans your project and surfaces all runnable commands across 21 tool types in a single tree view. Filter by text or tag, and run in terminal or debugger.
1212

1313
## AI Summaries (powered by GitHub Copilot)
1414

@@ -19,8 +19,7 @@ Summaries are stored locally and only regenerate when the underlying script chan
1919
## Features
2020

2121
- **AI Summaries** - GitHub Copilot describes each command in plain language, with security warnings for dangerous operations
22-
- **AI-Powered Search** - Find commands by meaning, not just name — local embeddings, no data leaves your machine
23-
- **Auto-discovery** - 19 command types including shell scripts, npm, Make, Python, PowerShell, Gradle, Cargo, Maven, Docker Compose, .NET, and more
22+
- **Auto-discovery** - 21 command types including shell scripts, npm, Make, Python, PowerShell, Gradle, Cargo, Maven, Docker Compose, .NET, C# Script, F# Script, and more
2423
- **Quick Launch** - Pin frequently-used commands to a dedicated panel at the top
2524
- **Tagging** - Right-click any command to add or remove tags
2625
- **Filtering** - Filter the tree by text search or by tag
@@ -51,6 +50,8 @@ Summaries are stored locally and only regenerate when the underlying script chan
5150
| Composer Scripts | `composer.json` (PHP) |
5251
| Docker Compose | `docker-compose.yml` |
5352
| .NET Projects | `.csproj`, `.fsproj` |
53+
| C# Scripts | `.csx` files |
54+
| F# Scripts | `.fsx` files |
5455
| Markdown Files | `.md` files |
5556

5657
## Getting Started

website/eleventy.config.js

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@ export default function(eleventyConfig) {
1818

1919
eleventyConfig.addPassthroughCopy("src/assets");
2020
eleventyConfig.addPassthroughCopy({ "src/favicon.ico": "favicon.ico" });
21+
eleventyConfig.addPassthroughCopy({ "src/site.webmanifest": "site.webmanifest" });
2122

2223
const faviconLinks = [
2324
' <link rel="icon" href="/favicon.ico" sizes="48x48">',
2425
' <link rel="icon" href="/assets/images/favicon.svg" type="image/svg+xml">',
2526
' <link rel="apple-touch-icon" href="/assets/images/apple-touch-icon.png">',
27+
' <link rel="manifest" href="/site.webmanifest">',
2628
].join("\n");
2729

2830
const isIconLink = (line) => {
@@ -144,13 +146,21 @@ export default function(eleventyConfig) {
144146
if (!this.page.outputPath?.endsWith(".html")) {
145147
return content;
146148
}
147-
const ogImageAltTag = ' <meta property="og:image:alt" content="CommandTree - One sidebar, every command in VS Code. Auto-discover 19 command types with AI-powered summaries.">';
149+
const altText = "CommandTree - One sidebar, every command in VS Code. Auto-discover 21 command types with AI-powered summaries.";
150+
const ogImageAltTag = ` <meta property="og:image:alt" content="${altText}">`;
151+
const twitterImageAltTag = ` <meta name="twitter:image:alt" content="${altText}">`;
148152
const ogImageHeightTag = 'og:image:height';
149153
const insertionPoint = content.indexOf(ogImageHeightTag);
150154
if (insertionPoint < 0) { return content; }
151155
const lineEnd = content.indexOf("\n", insertionPoint);
152156
if (lineEnd < 0) { return content; }
153-
return content.slice(0, lineEnd + 1) + ogImageAltTag + "\n" + content.slice(lineEnd + 1);
157+
const withOgAlt = content.slice(0, lineEnd + 1) + ogImageAltTag + "\n" + content.slice(lineEnd + 1);
158+
const twitterImageTag = 'twitter:image" content=';
159+
const twitterInsert = withOgAlt.indexOf(twitterImageTag);
160+
if (twitterInsert < 0) { return withOgAlt; }
161+
const twitterLineEnd = withOgAlt.indexOf("\n", twitterInsert);
162+
if (twitterLineEnd < 0) { return withOgAlt; }
163+
return withOgAlt.slice(0, twitterLineEnd + 1) + twitterImageAltTag + "\n" + withOgAlt.slice(twitterLineEnd + 1);
154164
});
155165

156166
eleventyConfig.addTransform("articleMeta", function(content) {
@@ -237,6 +247,38 @@ export default function(eleventyConfig) {
237247
return content.replace("</head>", scriptTag + "\n</head>");
238248
});
239249

250+
eleventyConfig.addTransform("softwareAppSchema", function(content) {
251+
if (!this.page.outputPath?.endsWith(".html")) {
252+
return content;
253+
}
254+
if (this.page.url !== "/") {
255+
return content;
256+
}
257+
const softwareSchema = {
258+
"@context": "https://schema.org",
259+
"@type": "SoftwareApplication",
260+
"name": "CommandTree",
261+
"applicationCategory": "DeveloperApplication",
262+
"operatingSystem": "Windows, macOS, Linux",
263+
"description": "VS Code extension that auto-discovers 21 command types — shell scripts, npm, Make, Gradle, Cargo, Docker Compose, .NET, and more — in one sidebar with AI-powered summaries.",
264+
"url": "https://commandtree.dev",
265+
"downloadUrl": "https://marketplace.visualstudio.com/items?itemName=nimblesite.commandtree",
266+
"softwareRequirements": "Visual Studio Code",
267+
"offers": {
268+
"@type": "Offer",
269+
"price": "0",
270+
"priceCurrency": "USD",
271+
},
272+
"author": {
273+
"@type": "Organization",
274+
"name": "Nimblesite Pty Ltd",
275+
"url": "https://www.nimblesite.co",
276+
},
277+
};
278+
const scriptTag = `\n <script type="application/ld+json">\n ${JSON.stringify(softwareSchema, null, 2).split("\n").join("\n ")}\n </script>`;
279+
return content.replace("</head>", scriptTag + "\n</head>");
280+
});
281+
240282
return {
241283
dir: { input: "src", output: "_site" },
242284
markdownTemplateEngine: "njk",

website/src/_data/site.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"keywords": "VS Code extension, command runner, task runner, script discovery, npm scripts, shell scripts, makefile, workspace automation, developer tools",
88
"themeColor": "#2a8c7a",
99
"ogImage": "/assets/images/og-image.png",
10-
"ogImageAlt": "CommandTree - One sidebar, every command in VS Code. Auto-discover 19 command types with AI-powered summaries.",
10+
"ogImageAlt": "CommandTree - One sidebar, every command in VS Code. Auto-discover 21 command types with AI-powered summaries.",
1111
"ogImageWidth": "1200",
1212
"ogImageHeight": "630",
1313
"organization": {

website/src/blog/introducing-commandtree.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ Install CommandTree and a new panel appears in your VS Code sidebar. Every runna
3535
- Gradle, Cargo, Maven, Ant, and Just
3636
- Taskfile, Deno, Rake, and Composer
3737
- Docker Compose services and .NET projects
38+
- C# scripts and F# scripts
3839
- Markdown files
3940

40-
That is 19 command types discovered automatically. Click the play button. Done.
41+
That is 21 command types discovered automatically. Click the play button. Done.
4142

4243
## AI-Powered Summaries
4344

website/src/docs/discovery.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
layout: layouts/docs.njk
3-
title: Auto-Discovery of 18+ Command Types - CommandTree Docs
4-
description: How CommandTree auto-discovers shell scripts, npm, Make, Gradle, Cargo, Maven, Docker Compose, .NET, and 18+ command types in your VS Code workspace.
3+
title: Auto-Discovery of 21 Command Types - CommandTree Docs
4+
description: How CommandTree auto-discovers shell scripts, npm, Make, Gradle, Cargo, Maven, Docker Compose, .NET, C# Script, F# Script, and 21 command types in your VS Code workspace.
55
eleventyNavigation:
66
key: Command Discovery
77
order: 2
88
---
99

1010
# Command Discovery
1111

12-
CommandTree auto-discovers 18+ command types — including shell scripts, npm scripts, Makefiles, Gradle, Cargo, Maven, Docker Compose, and .NET projects — by recursively scanning your workspace. Discovery respects [exclude patterns](/docs/configuration/) and runs in the background.
12+
CommandTree auto-discovers 21 command types — including shell scripts, npm scripts, Makefiles, Gradle, Cargo, Maven, Docker Compose, .NET projects, C# scripts, and F# scripts — by recursively scanning your workspace. Discovery respects [exclude patterns](/docs/configuration/) and runs in the background.
1313

1414
## Shell Scripts
1515

@@ -90,6 +90,14 @@ Discovers services from `docker-compose.yml` / `docker-compose.yaml` files.
9090

9191
Discovers `.csproj` and `.fsproj` project files for build/run/test commands.
9292

93+
## C# Scripts
94+
95+
Discovers `.csx` files and runs them via `dotnet script`.
96+
97+
## F# Scripts
98+
99+
Discovers `.fsx` files and runs them via `dotnet fsi`.
100+
93101
## Markdown Files
94102

95103
Discovers `.md` files in the workspace.

website/src/docs/index.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
layout: layouts/docs.njk
33
title: Getting Started with CommandTree - VS Code Command Runner
4-
description: Install CommandTree for VS Code and discover shell scripts, npm scripts, Makefiles, and 18+ command types automatically in one sidebar.
4+
description: Install CommandTree for VS Code and discover shell scripts, npm scripts, Makefiles, and 21 command types automatically in one sidebar.
55
eleventyNavigation:
66
key: Getting Started
77
order: 1
88
---
99

1010
# Getting Started
1111

12-
CommandTree is a free VS Code extension that scans your workspace and surfaces all runnable commands — shell scripts, npm scripts, Makefiles, and 18 other types — in a single tree view sidebar panel.
12+
CommandTree is a free VS Code extension that scans your workspace and surfaces all runnable commands — shell scripts, npm scripts, Makefiles, and 18 more types — in a single tree view sidebar panel.
1313

1414
## Installation
1515

@@ -58,6 +58,8 @@ code --install-extension commandtree-*.vsix
5858
| Composer Scripts | `composer.json` |
5959
| Docker Compose | `docker-compose.yml` |
6060
| .NET Projects | `.csproj` / `.fsproj` |
61+
| C# Scripts | `.csx` files |
62+
| F# Scripts | `.fsx` files |
6163
| Markdown Files | `.md` files |
6264

6365
Discovery respects [exclude patterns](/docs/configuration/) in settings and runs in the background. If [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) is installed, each discovered command is automatically described in plain language — hover over any command to see what it does. Learn more about [how discovery works](/docs/discovery/) and [AI summaries](/docs/ai-summaries/).
@@ -66,7 +68,7 @@ Discovery respects [exclude patterns](/docs/configuration/) in settings and runs
6668

6769
### What command types does CommandTree discover?
6870

69-
CommandTree discovers 19 command types: shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, Python scripts, PowerShell scripts, Gradle tasks, Cargo tasks, Maven goals, Ant targets, Just recipes, Taskfile tasks, Deno tasks, Rake tasks, Composer scripts, Docker Compose services, .NET projects, and Markdown files.
71+
CommandTree discovers 21 command types: shell scripts, npm scripts, Makefile targets, VS Code tasks, launch configurations, Python scripts, PowerShell scripts, Gradle tasks, Cargo tasks, Maven goals, Ant targets, Just recipes, Taskfile tasks, Deno tasks, Rake tasks, Composer scripts, Docker Compose services, .NET projects, C# scripts, F# scripts, and Markdown files.
7072

7173
### Does CommandTree require GitHub Copilot?
7274

website/src/favicon.ico

8.55 KB
Binary file not shown.

website/src/index.njk

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
layout: layouts/base.njk
33
title: CommandTree - One Sidebar, Every Command in VS Code
4-
description: CommandTree discovers all runnable commands in your VS Code workspace — shell scripts, npm, Make, Gradle, Docker Compose, and 18+ types — in one sidebar with AI summaries.
4+
description: CommandTree discovers all runnable commands in your VS Code workspace — shell scripts, npm, Make, Gradle, Docker Compose, .NET, C# Script, F# Script, and 21 types — in one sidebar with AI summaries.
55
---
66

77
<section class="hero">
@@ -55,7 +55,7 @@ description: CommandTree discovers all runnable commands in your VS Code workspa
5555
<div class="feature-card">
5656
<span class="feature-icon">&#x1F50D;</span>
5757
<h3>Auto-Discovery</h3>
58-
<p>Recursively scans your workspace for shell scripts, npm scripts, Makefile targets, VS Code commands, launch configs, and Python scripts.</p>
58+
<p>Recursively scans your workspace for 21 command types including shell scripts, npm, Make, Gradle, Cargo, Docker Compose, .NET, C# Script, F# Script, and more.</p>
5959
</div>
6060
<div class="feature-card">
6161
<span class="feature-icon">&#x2B50;</span>
@@ -218,6 +218,20 @@ description: CommandTree discovers all runnable commands in your VS Code workspa
218218
<p>.csproj / .fsproj</p>
219219
</div>
220220
</div>
221+
<div class="command-type">
222+
<span class="command-type-icon">&#x1F7E3;</span>
223+
<div class="command-type-info">
224+
<h4>C# Scripts</h4>
225+
<p>.csx files</p>
226+
</div>
227+
</div>
228+
<div class="command-type">
229+
<span class="command-type-icon">&#x1F535;</span>
230+
<div class="command-type-info">
231+
<h4>F# Scripts</h4>
232+
<p>.fsx files</p>
233+
</div>
234+
</div>
221235
<div class="command-type">
222236
<span class="command-type-icon">&#x1F4DD;</span>
223237
<div class="command-type-info">

0 commit comments

Comments
 (0)