app-it-windows
Create Windows beta desktop launchers for local web projects: WPF + WebView2 .exe, Start Menu shortcut, .ico, warm server, quit cleanup. Use when the user asks…
Turn a finished or buildable web app into a macOS Dock-launchable .app that serves built output instead of a dev server. Use when the user asks for app-it-static, a finished site/app launcher, a lightweight Dock app, or a dist/build/out bundle clickable from the Dock. Builds
$ npx -y skills add Christian-Katzmann/app-it --skill app-it-static --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/app-it-staticContext preview
The summary Claude sees to decide when to auto-load this skill.
Turn a finished or buildable web app into a macOS Dock-launchable .app that serves built output instead of a dev server. Use when the user asks for app-it-static, a finished site/app launcher, a lightweight Dock app, or a dist/build/out bundle clickable from the Dock. Builds
name: app-it-static description: >- Turn a finished or buildable web app into a macOS Dock-launchable .app that serves built output instead of a dev server. Use when the user asks for app-it-static, a finished site/app launcher, a lightweight Dock app, or a dist/build/out bundle clickable from the Dock. Builds once, serves a snapshot via static-server.py or file://, and routes live projects to app-it. macOS only.
`app-it-static` is the no-dev-server companion to `app-it`: it builds once, serves the finished output, installs beside live apps in `~/Applications/App It/`, and keeps the native Swift WebKit window and Dock identity.
1. Run `templates/inspect-static.sh` first and read the output before editing. 2. Confirm before the first project build. It can write files and take time. 3. Never run `npm run dev`. If the app needs a live dev server, route to `app-it` and say why. 4. Serve a snapshot and say so. Source changes need `desktop:rebuild`. 5. Default to `serve_mode: "server"`. Use `file` only after proving the build is file:// safe. 6. Copy shipped templates and customize through `scripts/app-it.config.json`. Do not re-derive launcher patterns. 7. Verify the built output, app bundle, install path, runtime port, server response, quit cleanup, and human-only GUI limits.
Open only the files needed by the inspection result:
detection, package managers, monorepos, names, bundle IDs, and tools.
checklist.
allowed target-project files, config JSON, and package scripts.
cleanup, and human/deferred buckets.
history.
Templates live next to this file in `templates/`. Copy them into the target project; do not rewrite them. See `references/generated-files.md` for the full roster.
Shared templates are byte-identical to `app-it` and guarded by repo validation: `wrapper.swift`, `native-run-stub.c`, `desktop-icons.sh`, `desktop-icons-preview.sh`, `desktop-install.sh`, `info-plist-template.xml`, and `placeholder-icon-gen.sh`. If launcher internals change, edit the `app-it` copy and re-sync this plugin so marketplace installs stay self-contained.
Run:
/path/to/plugins/app-it-static/skills/app-it-static/templates/inspect-static.sh
Use disk truth: `package.json`, config files, built output, and actual scripts. Read `references/project-inspection.md` before deciding whether the app is static-servable, which build command/output dir to use, or whether a monorepo contains multiple apps.
For each user-facing app:
Static build or hand-written index.html exists?
no -> route to app-it
yes -> needs http origin, routing fallback, fetch(), or service worker?
yes -> server mode (default)
no -> file mode candidateWhen unsure, choose server mode. It costs a tiny Python process and is the safe default for framework builds.
Confirm with the user, run the project build once, then copy templates into the target project and write `scripts/app-it.config.json`. `desktop:build` assembles the `.app`; it must not run the project build. `desktop:rebuild` is the refresh path that reruns the build command.
Read `references/generated-files.md` before editing package scripts, generated docs, config JSON, icons, or install paths.
Verification is mandatory. Read `references/verification.md` and run the checks that apply: built `index.html`, Mach-O `Contents/MacOS/run`, executable `run.sh`, Mach-O wrapper, plist placeholders gone, `.icns`, installed-path open, server response, and Cmd+Q cleanup for server mode.
Never claim GUI-only checks passed unless a display actually proves them. Put window render and Dock icon identity in the human bucket when needed.
Use `references/report-template.md` for both the chat reply and `docs/desktop-launcher.app-it-static-report.md`. Include snapshot limitations, refresh command, verification results, known limits, and decision history.
Stage files only when the local convention or user request asks for it. Do not commit unless asked.
server mode.
worker: file mode candidate.
Stop and explain clearly when the app only works through a live dev server, the build fails before launcher work, the output dir lacks `index.html`, required tooling is missing, or the environment cannot verify a claim the report would need.
Turn a local web project — or any hosted web app — into a macOS Dock-launchable .app bundle — a native window, its own Dock icon, and clean start/stop — without Electron, Tauri, or a rewrite.
Repo: Christian-Katzmann/app-it
Create Windows beta desktop launchers for local web projects: WPF + WebView2 .exe, Start Menu shortcut, .ico, warm server, quit cleanup. Use when the user asks…
Turn a local project or a hosted web app (including a published Claude Artifact URL) into a macOS Dock-launchable .app. Use when the user wants a clickable…