A Visual Studio Code extension that adds a Makefile Scripts panel to the Activity Bar.
It automatically detects targets in a Makefile and lets you run them with one click — just like the NPM Scripts panel.
Features
🛠 Detects all top-level Makefile targets
▶️ One-click to run make <target> in detached mode
⏸️ Stop running make targets with stop button
🔄 Running indicator with spinning icon
👁️ Watch mode support for continuous builds
⚙️ Configurable terminal behavior
🎯 Singleton or multiple terminal support
📦 Output channels instead of visible terminals (hidden by default)
🔧 Click target to open in Makefile
🔍 No configuration required
Configuration
The extension provides the following settings (accessible via Settings → Extensions → Makefile Runner):
makefileRunner.singletonTerminal: Use a single terminal for all make commands (default: true)
makefileRunner.showTerminal: Automatically show terminal/output when running make commands (default: false)
makefileRunner.watchMode: Enable watch mode for make targets (default: false)
Usage
Open a workspace containing a Makefile
Look for the Make Runner icon in the Activity Bar (left sidebar)
Click any target to open it in the Makefile, or click the play ▶️ button to run it
Running targets show a spinning icon 🔄
Click the stop ⏹️ button to stop a running target
Use the watch 👁️ button in the panel title to toggle watch mode
How It Works
Opens Makefile in your workspace
Parses lines like: build:, test:, run:
Adds clickable entries in the Make Targets panel
Runs make commands in detached processes for better control
Shows output in dedicated output channels (not visible terminals)
Development
Building and Packaging
This extension includes a Makefile for building and packaging:
make install # Install npm dependencies
make build # Compile TypeScript and bundle with webpack
make package # Create VSIX package file
make release # Build and create release output (VSIX in release/)
make clean # Remove build artifacts and release files
make help # Show available commands
Creating a Release
To create a release package:
make release
This will:
Build the extension using webpack
Package it into a VSIX file using vsce
Copy the VSIX file to the release/ directory
The generated VSIX file can be installed in VS Code or published to the marketplace.
Limitations
Doesn't support .PHONY, dependencies, or multi-line targets (yet)
Assumes GNU make is installed and available in PATH