arch-vscode is a VSCode extension starter (based on antfu/starter-vscode) that uses reactive-vscode for reactive APIs and composables, tsdown for a single CJS bundle, and vscode-ext-gen for type-safe contributes metadata. It provides a minimal, opinionated setup: defineExtension entry, defineConfig/defineLogger, Extension Host debugging, and vsce/vsxpub for packaging and publishing.
The skill is based on starter-vscode (arch-vscode source), generated at 2026-01-30.
Recommended practices:
- Keep contributes and generated meta in sync via
pnpm update (or Run on Save)
- Use reactive-vscode composables for state and disposables; use CJS build with external
vscode
- Prefer
onCommand activation when possible
Core References
| Topic |
Description |
Reference |
| Overview |
Project purpose, structure, when to use |
core-overview |
| Extension Entry |
defineExtension, activate, deactivate |
core-extension-entry |
| Config |
defineConfig, generated scoped config |
core-config |
| Logging |
defineLogger, displayName |
core-logging |
| tsdown Build |
CJS, external vscode, build:prepare hook |
core-tsdown-build |
| Scripts |
build, dev, update, release, ext:package, ext:publish |
core-scripts |
| Contributes |
commands, configuration, activationEvents |
core-contributes |
| Development |
launch.json, tasks.json, Extension Host |
core-development |
| CI |
GitHub Actions workflow — lint, typecheck, build, test |
core-ci |
Best Practices
| Topic |
Description |
Reference |
| VSCode Extension |
entry, contributes, meta, activation, publish |
best-practices-vscode-ext |
1---2name: arch-vscode3description: VSCode extension starter using reactive-vscode and tsdown. Use when scaffolding or maintaining a VSCode extension with reactive APIs, CJS build, and vscode-ext-gen.4---5
6arch-vscode is a **VSCode extension** starter (based on antfu/starter-vscode) that uses **reactive-vscode** for reactive APIs and composables, **tsdown** for a single CJS bundle, and **vscode-ext-gen** for type-safe contributes metadata. It provides a minimal, opinionated setup: defineExtension entry, defineConfig/defineLogger, Extension Host debugging, and vsce/vsxpub for packaging and publishing.
7
8> The skill is based on starter-vscode (arch-vscode source), generated at 2026-01-30.
9
10**Recommended practices:**
11- Keep contributes and generated meta in sync via `pnpm update` (or Run on Save)
12- Use reactive-vscode composables for state and disposables; use CJS build with external `vscode`
13- Prefer `onCommand` activation when possible
14
15## Core References
16
17| Topic | Description | Reference |
18|-------|-------------|-----------|
19| Overview | Project purpose, structure, when to use | [core-overview](references/core-overview.md) |
20| Extension Entry | defineExtension, activate, deactivate | [core-extension-entry](references/core-extension-entry.md) |
21| Config | defineConfig, generated scoped config | [core-config](references/core-config.md) |
22| Logging | defineLogger, displayName | [core-logging](references/core-logging.md) |
23| tsdown Build | CJS, external vscode, build:prepare hook | [core-tsdown-build](references/core-tsdown-build.md) |
24| Scripts | build, dev, update, release, ext:package, ext:publish | [core-scripts](references/core-scripts.md) |
25| Contributes | commands, configuration, activationEvents | [core-contributes](references/core-contributes.md) |
26| Development | launch.json, tasks.json, Extension Host | [core-development](references/core-development.md) |
27| CI | GitHub Actions workflow — lint, typecheck, build, test | [core-ci](references/core-ci.md) |
28
29## Best Practices
30
31| Topic | Description | Reference |
32|-------|-------------|-----------|
33| VSCode Extension | entry, contributes, meta, activation, publish | [best-practices-vscode-ext](references/best-practices-vscode-ext.md) |