Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>SmolVM-ManagerNew to Visual Studio Code? Get it now.
SmolVM-Manager

SmolVM-Manager

Nandaleio

| (0) | Free
Manage SmolVM instances from within VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

SmolVM Manager

smol machines

A VS Code extension to manage SmolVM microVM sandboxes from within the editor, powered by the smolvm-sdk Node JS SDK.

Features

  • SmolVM activity-bar view listing your machines and their status. The list is populated from smolvm machine ls --json at startup and refreshed periodically (and after each action).
  • Create, start, stop, and delete machines from the view title bar and inline actions — all backed by the smolmachines SDK.
  • Open Shell: drop into a running machine in a dedicated VS Code terminal.
  • The machine registry (names + last-known status) is persisted in workspace state; machines are created persistent so they can be reconnected after a reload.

About the shell

The SDK exposes exec/execStream, not an interactive PTY, so Open Shell opens a normal VS Code terminal and runs the smolvm CLI:

smolvm machine exec --name <name> -it -- /bin/sh

The CLI's -it provides a real interactive PTY (so vim, top, etc. work). Configure the CLI binary with smolvm.cliPath (default smolvm) and the in-VM shell with smolvm.shell (default /bin/sh). The machine is started via the SDK first if it isn't already running.

Requirements

smolmachines links a native engine. Per its docs, the local (embedded) transport needs macOS Apple Silicon or Linux x64/arm64 with glibc ≥ 2.34 and KVM. On unsupported hosts the SDK calls will fail at runtime.

Getting started

smolmachines is kept external from the bundle (it loads a platform specific .node addon at runtime) and is shipped in the packaged extension via a .vscodeignore negation.

Configuration

Creating a machine walks you through its configuration (image, resources, and the folder to bind). Number/image fields are pre-filled with the defaults below — press Enter to accept, edit to override, or blank to fall back. For the mount you choose Workspace root, Choose folder… (a folder picker over the filesystem), or Don't mount; by default the workspace root is bind-mounted (read-write) at /workspace.

All settings below map to the SDK's MachineConfig. Optional ones (null/empty) are omitted so the SDK applies its own defaults.

Setting Default Purpose
smolvm.cliPath smolvm smolvm CLI binary (list + Open Shell).
smolvm.refreshIntervalSeconds 60 Polling interval for machine ls (0 = off).
smolvm.shell /bin/sh In-VM shell launched by Open Shell.
smolvm.image "" Default base OCI image for new machines (blank = bare Alpine).
smolvm.mountSource "" Host folder to bind (blank = workspace root).
smolvm.workspaceMount /workspace In-VM path to bind the chosen folder.
smolvm.persistent true Keep machines for reconnect (needed for Start/Shell after reload).
smolvm.ports [] Host→guest port mappings.
smolvm.autoStopSeconds unset Auto-stop after N idle seconds (cloud).
smolvm.ttlSeconds unset Delete after N seconds (cloud).
smolvm.resources.cpus 2 vCPUs for new machines.
smolvm.resources.memoryMb 1024 Memory (MB) for new machines.
smolvm.resources.network true Outbound network access for new machines.
smolvm.resources.storageGb unset (20) Storage disk size (GB) for new machines.
smolvm.resources.overlayGb unset (10) Overlay disk size (GB) for new machines.

Project layout

Path Purpose
src/extension.ts Activation entry point; registers commands.
src/machineManager.ts SDK wrapper: registry + create/start/stop/delete.
src/instanceProvider.ts Tree data provider; delegates to the manager.
esbuild.js Bundler configuration.
package.json Extension manifest (views, commands, menus, config).
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft