A modern VSCode extension starter template with React + shadcn/ui + Tailwind CSS.
- Vite - Lightning fast HMR for development
- React 19 - Latest React with hooks
- shadcn/ui - Beautiful, accessible components
- Tailwind CSS v4 - Utility-first CSS framework
- TypeScript - Full type safety
- ESLint - Code quality and consistency
- Hot Module Replacement - Instant feedback during development
- Vitest - Fast unit testing with React Testing Library
- Extension Tests - VSCode extension integration tests
- GitHub Actions - CI/CD workflows for testing and releases
├── extension/ # VSCode extension code
│ ├── index.ts # Extension entry point
│ └── views/ # Webview panel logic
├── webview/ # React frontend
│ ├── App.tsx # Main React component
│ ├── components/ui/ # shadcn/ui components
│ ├── lib/utils.ts # Utility functions
│ ├── __tests__/ # React component tests
│ └── index.css # Tailwind CSS styles
├── __tests__/ # Extension integration tests
│ └── extension/ # VSCode extension tests
├── .github/ # GitHub workflows & templates
│ ├── workflows/ # CI/CD workflows
│ └── ISSUE_TEMPLATE/ # Issue templates
├── .vscode/ # VSCode settings & launch config
├── index.html # HTML entry point
├── vite.config.ts # Vite configuration
├── vitest.config.ts # Vitest test configuration
└── package.json # Project configuration
- Node.js >= 18
- pnpm (recommended) or npm
# Install dependencies
pnpm install
# Start development server
pnpm dev- Press
F5to open a new VSCode window with the extension loaded - Run the command
Hello World: Showfrom the Command Palette (Ctrl+Shift+P) - The webview will open with hot reload enabled
# Build for production
pnpm build# Add a new component
pnpm dlx shadcn@latest add [component-name]
# Example: Add dialog component
pnpm dlx shadcn@latest add dialogPre-installed shadcn/ui components:
- Button
- Card
- Input
- Label
- Badge
- Separator
- Textarea
This template includes comprehensive testing support:
# Run all unit tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage report
pnpm test:coverage# Run VSCode extension tests
pnpm test:extension# Run E2E tests
pnpm test:e2e
# Run E2E tests with UI mode
pnpm test:e2e:ui
# View test report
pnpm test:e2e:report| Command | Description |
|---|---|
pnpm dev |
Start development server with HMR |
pnpm build |
Build for production |
pnpm lint |
Run ESLint |
pnpm test |
Run unit tests |
pnpm test:watch |
Run tests in watch mode |
pnpm test:coverage |
Run tests with coverage |
pnpm test:extension |
Run extension integration tests |
pnpm test:e2e |
Run E2E tests with Playwright |
pnpm test:e2e:ui |
Run E2E tests with UI mode |
pnpm test:e2e:report |
View test report |
pnpm package |
Package extension as .vsix |
pnpm publish |
Publish extension to marketplace |
The template uses VSCode theme variables for seamless integration:
- Background colors match editor theme
- Text colors adapt to light/dark mode
- Focus states use VSCode accent colors
MIT