BuildRunner
Modern build & task management for VS Code, Cursor, Windsurf & compatible editors.
Build, run, and manage your projects directly from the editor. BuildRunner supports .NET, Node.js, Go, Rust, Python, C/C++ (CMake), Maven, Gradle, and custom build commands — all from a single, unified interface.
Features
- One-Click Builds & Runs – Build or run any project with a single click from the sidebar, editor toolbar, status bar, or command palette
- Play Button – A dedicated play button in the editor title bar lets you launch applications instantly for all supported languages
- Multi-Language Support – .NET, Node.js, Go, Rust, Python, C/C++ (CMake), Maven, Gradle, and custom commands
- Tool Auto-Detection & Installation – Automatically detects installed build tools and can install missing ones via
winget (Windows), apt/brew (Linux/macOS)
- Modern Webview Dashboard – Build cards, live logs, tool manager, build settings, statistics, health monitoring, and dependency graphs
- Build Profiles – Switch between debug, release, test, and custom profiles with automatic argument injection per language
- Parallel Builds – Run multiple builds simultaneously with a configurable parallelism limit
- Build Queue – Queue builds when the parallel limit is reached; they start automatically when a slot frees up
- Build Chains – Define dependencies between targets and run entire build chains in order
- Watch Mode – Automatically rebuild on file changes with configurable glob patterns and debounce timing
- Build History – Track all build results with status, duration, exit codes, and full output logs
- Log Export – Export build logs as text, HTML, or Markdown
- Health Monitoring – Detects consecutive build failures and provides quick-fix suggestions for common errors
- Environment Variables – Load
.env files, define per-target environment variables, and securely store secrets via VS Code's SecretStorage
- Remote Execution – Run builds in Docker containers, over SSH, or in WSL
- Build Templates – Pre-configured templates for common project setups
- Cross-Platform – Full support for Linux, Windows, and macOS
Getting Started
- Open a project in VS Code
- Click the BuildRunner icon in the activity bar
- Build targets are automatically detected based on your project files
- Click the play button to run an application, or the build button to compile
Keyboard Shortcuts
| Shortcut |
Action |
Ctrl+Shift+B |
Run Build |
Ctrl+F5 |
Run Application |
Ctrl+Shift+Alt+B |
Run Last Build |
Ctrl+Shift+Esc |
Stop Running Build |
Ctrl+Alt+R |
Open BuildRunner Panel |
Build Settings
Via VS Code Settings
Open Settings (Ctrl+,) and search for buildrunner:
- buildrunner.buildConfigs – Array of custom build configurations
- buildrunner.toolOverrides – Override tool paths and versions
- buildrunner.autoDetectProjects – Auto-detect projects in workspace
- buildrunner.autoInstallTools – Auto-install missing tools
- buildrunner.maxParallelBuilds – Max parallel builds (default: 2)
- buildrunner.buildTimeout – Build timeout in seconds (default: 1800)
- buildrunner.defaultProfile – Default build profile (debug/release/test/custom)
- buildrunner.logLevel – Log level for the output channel (debug/info/warn/error)
- buildrunner.showNotifications – Show notifications on build completion
- buildrunner.desktopNotifications – Send desktop notifications
- buildrunner.soundFeedback – Play sound on build completion
- buildrunner.enableQuickFixes – Enable quick-fix suggestions for build failures
- buildrunner.enableHealthMonitor – Enable build health monitoring
Via Webview Panel
Open the BuildRunner Panel (Ctrl+Alt+R) and go to the Settings tab to:
- Add custom build configurations with a form
- Set program name, arguments, working directory, environment variables
- Choose build profile (debug/release/test/custom)
- Set timeout and watch mode
- Delete existing configurations
Via .buildrunner.json
Create a .buildrunner.json file in your workspace root:
{
"targets": [
{
"id": "my-build",
"name": "My Custom Build",
"command": "make all",
"cwd": "${workspaceFolder}/build",
"env": {
"BUILD_CONFIG": "release"
},
"timeout": 600
}
],
"exclude": ["node_modules", "bin", "obj"],
"defaultTarget": "my-build"
}
BuildRunner detects and can install the following tools:
| Tool |
Linux |
Windows |
macOS |
| .NET SDK |
dotnet-install.sh |
winget |
brew |
| Node.js |
nodesource |
winget |
brew |
| npm / yarn / pnpm |
npm |
npm |
npm |
| Go |
go.dev download |
winget |
brew |
| Rust / Cargo |
rustup |
winget |
rustup |
| Python |
apt |
winget |
brew |
| CMake |
apt |
winget |
brew |
| Make |
apt |
winget |
brew |
| Java JDK |
SDKMAN |
winget |
brew |
| Maven |
apt |
winget |
brew |
| Gradle |
apt |
winget |
brew |
Supported Project Types
| Type |
Detection File |
Available Targets |
| .NET |
*.csproj, *.sln |
build, run, test, publish, clean, watch |
| Node.js |
package.json |
build, dev/start, test, install, lint |
| Go |
go.mod |
build, run, test, vet, mod tidy |
| Rust |
Cargo.toml |
build, run, test, release, clean, watch |
| Python |
*.py, requirements.txt, pyproject.toml |
run, compile, install, test |
| C/C++ |
CMakeLists.txt |
configure, build, run, clean, test |
| Maven |
pom.xml |
compile, package, test, clean, run |
| Gradle |
build.gradle / build.gradle.kts |
build, run, test, clean |
| Custom |
.buildrunner.json or settings |
user-defined |
License
Copyright (c) 2025 Robin Oliver Lucas. All rights reserved.
This software is licensed under the MIT License.
Responsible for Content
Robin Oliver Lucas
Schwarzbach 148
42277 Wuppertal
Germany
Email: robin@rl-dev.de
| |