# Quasar App Extension Development

> Create, debug, test, migrate, document, and publish Quasar App Extensions. Use for extension scaffolding, `src/index` lifecycle hooks, Install API, Prompts API, templates, boot files, commands, mode integration, package metadata, compatibility declarations, uninstall behavior, and `quasar ext add`, `invoke`, and `remove` workflows.

- Skill: `quasarframework/quasar-app-extension-development` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add quasarframework/quasar-app-extension-development`
- Raw SKILL.md: https://api.skillmd.com/api/skills/quasarframework/quasar-app-extension-development/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: quasarframework (https://skillmd.com/u/quasarframework)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/quasarframework/quasar-app-extension-development

---


# Quasar App Extension Development

## Inspect the extension

1. Read repository instructions, `package.json`, extension README, `src/index.*`, `src/install.*`, and `src/prompts.*` when present.
2. Determine supported Quasar CLI generations and module format before changing APIs.
3. Inspect templates, test applications, CI, release scripts, and the extension's package name and `quasarAppExtension` metadata.
4. Use the current [App Extension development guide](https://quasar.dev/app-extensions/development-guide/introduction) as the contract.

## Implement lifecycle behavior

- Keep `install`, `prompts`, `index`, and `uninstall` responsibilities separate.
- Make install/invoke operations idempotent and uninstall operations conservative.
- Use the API's resolve helpers rather than constructing host paths manually.
- Extend host configuration through supported hooks; preserve the host app's existing configuration.
- Use `api.compatibleWith()` for real compatibility constraints and keep declared peer dependencies aligned.
- Limit mode-specific behavior with `api.ctx.mode` and load the corresponding Quasar mode skill.
- Never silently overwrite user-owned host files. Use templates and API helpers, and document unavoidable conflicts.
- Avoid deprecated `chainWebpack` assumptions in Vite extensions; use the current configuration hooks exposed by the installed CLI.

## Package and document

- Keep runtime dependencies, development dependencies, and peer dependencies in their correct scopes.
- Include only files needed by consumers in the published package.
- Document install, configuration, injected files, commands, supported modes, compatibility, and removal effects.
- Treat the generated host `.quasar/` directory as output.

## Validate the full lifecycle

1. Pack the extension and install the tarball into a temporary Quasar test app.
2. Run `quasar ext add <name>` and answer prompts through each meaningful branch.
3. Run development and production builds for every supported mode.
4. Run `quasar ext invoke <name>` again to verify idempotency and upgrades.
5. Run `quasar ext remove <name>` and confirm user-owned files and configuration remain valid.
6. Run lint, tests, typecheck, package-content inspection, and a clean-install test before release.

