agentsclimarketplace

Gen startup bat

Skill hsinhan-h/hh-claude-skills/gen-startup-bat

Practical Claude Code skills for real-world project development - by HH

Install
npx -y skills add hsinhan-h/hh-claude-skills --skill gen-startup-bat

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Analyze a project's frontend/backend startup methods and generate a Windows .bat script that users can double-click to launch both services and open a browser automatically. Use when user wants to create a startup script, generate a .bat file to start the project, or mentions "啟動腳本"、"start script"、"bat檔"、"一鍵啟動"、"雙擊啟動"、"startup bat"、"gen bat"、"產生bat"。

SKILL.md

4.8 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

Gen Startup BAT

Workflow

Step 1 — Scan project structure

Read in order of preference:

  1. CLAUDE.md — look for dev command blocks and port info
  2. frontend package manifests, checking common locations first: client/, frontend/, web/, app/, then repo root package.json; for monorepos also inspect pnpm-workspace.yaml, package.json workspaces, turbo.json, and nx.json
  3. *.sln → referenced *.csproj; if no .sln is useful, search for *.csproj and prefer web/API projects with Properties/launchSettings.json
  4. README.md — fallback if no structured config found

Identify:

  • Frontend dir + dev command (e.g. npm run dev, without cd)
  • Backend dir + run command: locate the .csproj file name → default to dotnet run --project .\<name>.csproj
  • Backend URL from launchSettings.json → select a commandName: "Project" profile when available → read applicationUrl; preserve the full URL list and prefer HTTPS only when choosing a browser/API URL
  • Frontend dev server URL from vite.config.* / quasar.config.* / framework config server.port; if not found, infer common defaults from scripts/frameworks

Frontend detection details

  • Prefer a package manifest that contains a runnable dev, start, or framework-specific dev script over one that only contains build/test scripts.
  • In monorepos, inspect workspace packages and choose the app-like package (vite, quasar, next, nuxt, react-scripts, astro, etc.) rather than shared libraries.
  • Determine the package manager from lockfiles in the frontend dir first, then parent/workspace root:
    • pnpm-lock.yamlpnpm
    • yarn.lockyarn
    • bun.lock or bun.lockbbun
    • package-lock.jsonnpm
  • Build the dev command from the detected package manager:
    • npm: npm run dev or npm start
    • pnpm: pnpm dev or pnpm start
    • yarn: yarn dev or yarn start
    • bun: bun run dev or bun start

ASP.NET detection details

  • Prefer .csproj files referenced by the .sln; otherwise search recursively.
  • Prefer projects with Microsoft.NET.Sdk.Web, launchSettings.json, names containing Api, Web, Server, or Backend, or references to ASP.NET Core packages.
  • When reading Properties/launchSettings.json, ignore IIS Express profiles unless no Project profile exists.
  • If applicationUrl contains multiple URLs separated by ;, keep them all. Use the first HTTPS URL as the preferred backend URL; otherwise use the first HTTP URL.
  • Use dotnet run --project .\<name>.csproj by default from the backend project directory. Offer dotnet watch --project .\<name>.csproj only as an alternative, not the default.

Step 2 — Ask user to confirm

Present findings and ask (one message, all at once):

  1. Frontend command correct? (show detected, allow override)
  2. Backend command correct? (show detected, allow override; offer dotnet watch --project .\<name>.csproj as alternative)
  3. Browser URL to open? (default: detected frontend dev server URL)
  4. Seconds to wait before opening browser? (default: 20)
  5. Output filename? (default: <projectName>.bat at project root, where <projectName> is the working directory folder name)

Step 3 — Generate .bat file

Use the template in REFERENCE.md.

Fill in variables:

  • {backendLabel}{projectName} - API (derive {projectName} from working directory folder name)
  • {frontendLabel}{projectName} - Client
  • {backendDir} — absolute path to backend project folder
  • {backendCommand}dotnet run --project .\<name>.csproj (default) or dotnet watch --project .\<name>.csproj
  • {frontendDir} — absolute path to frontend folder
  • {frontendCommand} — dev command without cd
  • {browserDelay} — seconds to wait before opening browser (default: 20)
  • {browserUrl} — confirmed URL

Escape generated .bat values carefully:

  • Quote paths with doubled quotes inside the cmd /k string: cd /d ""C:\Path With Spaces""
  • Keep commands as command text, not quoted paths, unless the command itself requires quotes
  • Preserve user-supplied command overrides exactly after confirmation

Write the file to the specified output path.

Step 4 — Report

Tell the user:

  • Path of the generated .bat file
  • What each terminal window will run
  • How to stop services (close the individual terminal windows)

What ships with it: 1 file

3.4 KB alongside SKILL.md

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.