Skip to content

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

🧩 vscode-setup

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.

npm version GitHub stars CI License: MIT PRs Welcome Good First Issues


πŸš€ Usage

No install needed:

npx vscode-setup

Or install globally:

npm install -g vscode-setup
vscode-setup

⚑ CLI Flags

npx 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 help

Category IDs: essential Β· themes Β· fun Β· ai Β· webdev Β· python Β· devtools


πŸ“¦ What's Included

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...

πŸ—‚οΈ Project Structure

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

🀝 Contributing

Adding an extension is the easiest contribution β€” no complex setup needed.

  1. Open the matching file in data/categories/ (e.g. data/categories/fun.json)
  2. Add your extension:
{
  "id": "publisher.extension-id",
  "name": "Extension Name",
  "description": "One clear sentence about what it does.",
  "tags": ["fun", "theme"]
}
  1. Run npm test β€” all tests must pass
  2. Open a pull request

πŸ‘‰ Full guide: CONTRIBUTING.md
πŸ‘‰ Good first issues: Browse open issues


πŸ§ͺ Running Tests

npm test

Tests cover: category validation, input parsing, CLI flags, and the extensions JSON generator. No external dependencies β€” uses Node's built-in assert module.


πŸ’‘ Roadmap

  • Interactive CLI with categories
  • Direct VS Code install via code CLI
  • 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...)

πŸ› Found a Bug?

Open a bug report β†’


⭐ Support

If this saved you time:


πŸ“ License

MIT Β© chahe-dridi

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages