An interactive CLI to discover, pick, and install the best VS Code extensions β
from essentials to fun stuff like pets π±, Discord presence, custom backgrounds, and more.
No install needed:
npx vscode-setupOr install globally:
npm install -g vscode-setup
vscode-setupnpx vscode-setup # interactive mode
npx vscode-setup --list # list all extensions
npx vscode-setup --list --json # output as JSON
npx vscode-setup --category fun # jump straight to a category
npx vscode-setup --help # show helpCategory IDs: essential Β· themes Β· fun Β· ai Β· webdev Β· python Β· devtools
| Category | Highlights |
|---|---|
| π Essential | Prettier, ESLint, GitLens, Error Lens, Better Comments... |
| π¨ Themes | Dracula, Tokyo Night, Night Owl, Material Icons, Peacock... |
| πΎ Fun & Personality | VS Code Pets π±, Discord Presence, Background, Power Mode, SynthWave... |
| π§ AI & Productivity | GitHub Copilot, Codeium (free), Bookmarks, Todo Tree... |
| π Web Dev | Live Server, Tailwind IntelliSense, React Snippets, REST Client... |
| π Python & Data | Python, Jupyter, Black, Pylint, autoDocstring... |
| π§ Dev Tools | Docker, Remote SSH, Database Client, YAML, Hex Editor... |
vscode-setup/
βββ index.js # CLI entry point (thin orchestrator)
βββ src/
β βββ loader.js # reads + validates category JSON files
β βββ installer.js # installs extensions via `code` CLI
β βββ display.js # all terminal output / colors
β βββ prompt.js # readline + input parsing
β βββ args.js # --flag parser
β βββ test-runner.js # runs all test files
βββ data/
β βββ categories/
β βββ index.json # defines load order
β βββ essential.json
β βββ themes.json
β βββ fun.json
β βββ ai.json
β βββ webdev.json
β βββ python.json
β βββ devtools.json
βββ tests/
β βββ loader.test.js
β βββ installer.test.js
β βββ args.test.js
β βββ prompt.test.js
βββ .github/
βββ workflows/ci.yml
βββ pull_request_template.md
βββ ISSUE_TEMPLATE/
βββ bug_report.md
βββ feature_request.md
βββ add_extension.md
βββ add_category.md
Adding an extension is the easiest contribution β no complex setup needed.
- Open the matching file in
data/categories/(e.g.data/categories/fun.json) - Add your extension:
{
"id": "publisher.extension-id",
"name": "Extension Name",
"description": "One clear sentence about what it does.",
"tags": ["fun", "theme"]
}- Run
npm testβ all tests must pass - Open a pull request
π Full guide: CONTRIBUTING.md
π Good first issues: Browse open issues
npm testTests cover: category validation, input parsing, CLI flags, and the extensions JSON generator. No external dependencies β uses Node's built-in assert module.
- Interactive CLI with categories
- Direct VS Code install via
codeCLI - Generate
.vscode/extensions.json - CLI flags (
--list,--json,--category) - Unit tests
- Save / load extension profiles
- Web UI for picking extensions visually
- Community extension ratings
- More language categories (Rust, Go, Java, Mobile...)
If this saved you time:
- Star the repo β
- Share it with a dev friend
- Contribute an extension
MIT Β© chahe-dridi