Skip to content

Subeshrock/micro-vm-extension

Repository files navigation

Ignite VS Code Extension

CI Release

IDE for MicroVMs — Manage Ignite MicroVMs directly from VS Code

Features

  • MicroVM Management — Start, stop, remove VMs from the sidebar
  • Real-time VM Status — See running, stopped, and error states at a glance
  • Quick Actions — Context menus and inline actions for VM operations
  • Image Browser — Browse and pull VMIF images
  • Log Streaming — View VM logs in the sidebar
  • Terminal Access — Open vsock console for any running VM
  • Help & Feedback — Quick access to documentation and settings

Requirements

  • VS Code 1.75.0 or higher
  • Ignite Daemon (ignited) running on your system
  • User must be in the ignite group: sudo usermod -aG ignite $USER

Installation

From VSIX File

  1. Download the latest .vsix from Releases
  2. Open VS Code
  3. Go to Extensions view (Ctrl+Shift+X)
  4. Click ...Install from VSIX
  5. Select the downloaded .vsix file

From Source

git clone https://github.com/Subeshrock/micro-vm-extension.git
cd micro-vm-extension
npm install
npm run compile
npm run package
code --install-extension ignite-vscode-*.vsix

Usage

  1. Ensure ignited is running: systemctl status ignited
  2. Open VS Code
  3. Click the 🔥 Ignite icon in the Activity Bar (left sidebar)
  4. Expand sections to manage your MicroVMs

Sidebar Sections

Section Description
MICROVMS List of running VMs with status indicators
IMAGES Available VMIF images
LOGS Quick access to VM logs
TERMINAL Open vsock console for VMs
HELP AND FEEDBACK Documentation, settings, about

Commands

Open the Command Palette (Ctrl+Shift+P) and type Ignite:

Command Description
Ignite: Refresh Refresh the sidebar
Ignite: Start VM Start a VM by ID
Ignite: Stop VM Stop a VM by ID
Ignite: Remove VM Remove a VM by ID
Ignite: View VM Details Show VM details popup
Ignite: Open Terminal Open terminal for a VM
Ignite: View Logs Open logs for a VM
Ignite: Show Output Show extension output channel
Ignite: About Show extension info

Configuration

Setting Default Description
ignite.socketPath /run/ignite/ignite.sock Path to the Ignite Unix socket
ignite.autoConnect true Auto-connect to ignited on startup
ignite.logLevel info Logging level (debug, info, warning, error)

Development

# Install dependencies
npm install

# Compile TypeScript
npm run compile

# Watch mode
npm run watch

# Run tests
npm test

# Package extension
npm run package

Project Structure

src/
├── main.ts                         # Extension entry point
├── communication/                  # Unix socket communication
│   ├── index.ts                    # Service factory
│   └── socketClient.ts             # HTTP over Unix socket
├── extension/
│   ├── commands/
│   │   └── commandRegistry.ts      # VS Code commands
│   └── views/treeView/
│       ├── igniteSidebarProvider.ts # Composite sidebar
│       ├── sectionProvider.ts       # Section interface
│       ├── types.ts                 # Sidebar types
│       └── sections/                # Section implementations
│           ├── microvmsSection.ts
│           ├── imagesSection.ts
│           ├── logsSection.ts
│           ├── terminalSection.ts
│           └── helpSection.ts
├── types/                          # TypeScript type definitions
├── utils/                          # Logger, error handler
└── test/                           # Automated test suite

Roadmap

Phase Version Features
Core Foundation v0.1.0 Sidebar, VM management, images, logs, terminal
Advanced v0.2.0 Snapshots, TimeMachine, networks, compose
Enterprise v0.6.0 LSP, cluster topology, registry, process tree

Links

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors