Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>LazyDevNew to Visual Studio Code? Get it now.
LazyDev

LazyDev

Thoriq Mustafa Akmal

|
8 installs
| (0) | Free
Run npm, Composer, and Laravel commands with one click — no typing required.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LazyDev

Run npm scripts, Composer scripts, Laravel artisan commands, Make targets, and docker-compose services with one click from the sidebar — no typing required.

Features

Project discovery

  • Auto-detects package manager (bun / pnpm / yarn / npm) via lockfile
  • Auto-detects Composer scripts from composer.json
  • Adds common Laravel artisan commands when an artisan file is present
  • Reads Makefile targets (make runner)
  • Reads docker-compose.yml / compose.yml services (docker compose up -d <service>)
  • Nested project scanning for monorepos: lazydev.scanDepth (0–4) discovers projects below each workspace folder root, skipping node_modules, vendor, .git, and friends

Running

  • Pins common scripts and commands (dev, build, start, test, lint, serve, migrate) at the top
  • Run multiple scripts and commands in parallel, each in its own terminal
  • Run with arguments — context-menu action prompts for extra args (--watch, User --migration, …) appended to the command
  • Placeholders in custom commands — ${model} or ${env:staging} prompts you for values before running
  • Kill all terminals at once (LazyDev: Kill All Terminals)
  • Auto-refreshes when manifests change, with debouncing so rapid saves don't thrash the UI

Organization

  • Favorites and Recent shortcuts
  • Custom commands (workspace, local, or global storage) with tool scoping (artisan, composer, npm, pnpm, yarn, bun, go, cargo, make, docker-compose)
  • Duplicate any custom command or preset from its context menu
  • Presets: run a group of items in parallel or sequence, with optional stop-on-error, per-step max wait, and finish notifications
  • Env profiles: named environment variable sets per workspace folder; the active profile's vars are injected into runs and previewed from the command context menu
  • Reorder mode with drag-and-drop for Favorites, Custom Commands, and Presets

UX

  • Fuzzy search (Ctrl+F inside the panel) with keyboard navigation
  • Context menus on every row (run, run with args, stop, show, edit, duplicate, delete, favorite, copy)
  • Desktop notifications on preset completion, plus an optional policy for individual scripts (lazydev.scriptNotifications)
  • Status bar indicator while items are running (lazydev.statusBar.enabled)
  • Auto-close finished terminals (lazydev.autoCloseTerminal)
  • Command palette runner: LazyDev: Run Command…
  • Export / import your commands, presets, and env profiles as JSON

Commands

Command Description
LazyDev: Rescan Commands Force a full rescan of the workspace
LazyDev: Run Command… Fuzzy-pick and run any script, command, or preset
LazyDev: Kill All Terminals Kill every terminal opened by LazyDev
LazyDev: Export Config… Export custom commands, presets, and env profiles to JSON
LazyDev: Import Config… Import a previously exported config file
LazyDev: Update Extension Update LazyDev from the Marketplace
LazyDev: Test Desktop Notification Verify native notifications work

Settings

Setting Default Description
lazydev.packageManager auto Package manager to use: auto, npm, bun, pnpm, or yarn
lazydev.pinnedScripts ["dev", "build", "start", "test", "lint"] Script/command names pinned to the top of project sections
lazydev.scanDepth 0 Directory levels to scan for nested projects (0–4). 0 only scans workspace folder roots
lazydev.scriptNotifications off Notification policy for scripts/commands: off, errors, or always. Presets use their own per-preset option
lazydev.autoCloseTerminal never Close finished terminals: never, onSuccess, or always
lazydev.statusBar.enabled true Show a status bar item while commands are running
lazydev.desktopNotifications.enabled true Master toggle for desktop finish notifications
lazydev.customCommands [] Custom commands (workspace storage)
lazydev.presets [] Presets (workspace storage)
lazydev.envProfiles [] Env profiles (workspace storage)

Placeholder syntax

Custom command strings support placeholders that prompt before running:

  • ${name} — prompts for a value
  • ${name:default} — prompts with a default value

Example: php artisan make:model ${model} -m && php artisan migrate --path=database/migrations/${model:users}

Requirements

  • Node.js projects: any of npm, bun, pnpm, or yarn on PATH
  • Composer scripts: composer on PATH
  • Artisan: PHP on PATH and an artisan file in the project
  • Make targets: make on PATH
  • Compose services: docker on PATH

Development

npm test        # unit tests for the catalog and webview shell (no VS Code needed)
npm run package # build a .vsix

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft