Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Run ConfigNew to Visual Studio Code? Get it now.
Run Config

Run Config

TiGRiS

|
1 install
| (0) | Free
Adds a status bar button that copies project files according to run.json.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Run Config

Run Config adds a one-click deploy button to the Visual Studio Code status bar and copies files from your current workspace to a target directory defined in run.json.

It is designed for workflows where a project must be pushed into an existing runtime folder fast, for example game servers, local test environments, legacy applications, modding setups, or any folder-based deployment target.

Why Run Config

  • Add a $(play) button directly to the VS Code status bar
  • Copy files recursively from the current project to a target folder
  • Support exact excludes, relative paths, and glob patterns
  • Replace existing files or skip them, depending on configuration
  • Keep extra files in the target directory unless explicit cleanup is enabled
  • Choose between multiple deployment profiles from Command Palette
  • Reload configuration automatically when run.json changes
  • Show progress, cancellation, and a readable execution report
  • Validate run.json with JSON Schema support

Typical Use Cases

  • Deploy AMX Mod X or other game server files into a prepared server directory
  • Push build output into a local integration or QA folder
  • Copy selected project content into a shared environment without shell scripts
  • Keep repeatable local deployment steps inside the repository

How It Works

  1. Create run.json in the root of your workspace.
  2. Set source and target.
  3. Click the status bar button or run Run Config: Execute.
  4. The extension copies files using the Node.js filesystem API.

By default, files that exist only in the target folder are preserved.

Status Bar Button

When run.json is present and enabled, Run Config shows a button in the right side of the VS Code status bar.

Examples:

  • $(play) Execute
  • $(play) На сервер
  • $(beaker) Test Deploy

During execution the button changes to $(sync~spin) Running..., then returns immediately after the copy operation completes.

Commands

  • Run Config: Выполнить
  • Run Config: Выбрать профиль

The default command runs the profile defined by defaultProfile, or the single configuration when profiles are not used.

Single-Profile Configuration

Create a run.json file like this:

{
  "enabled": true,
  "buttonText": "$(play) Выполнить",
  "source": ".",
  "target": "C:\\Users\\TiGRiS\\Desktop\\СЕРВЕР\\cstrike",
  "exclude": [
    ".git",
    ".vscode",
    "node_modules",
    "run.json"
  ],
  "overwrite": true,
  "deleteExtraneous": false,
  "confirmBeforeRun": false,
  "showNotification": true,
  "followSymlinks": false
}

Configuration Fields

  • enabled: Show or hide the status bar button for this workspace
  • buttonText: Status bar text, including codicons such as $(play)
  • source: Source directory relative to the folder that contains run.json
  • target: Absolute or relative destination directory
  • exclude: Files and folders to skip
  • overwrite: Replace existing files in the target directory
  • deleteExtraneous: Delete files that do not exist in the source directory
  • confirmBeforeRun: Ask for confirmation before copying
  • showNotification: Show a completion notification
  • followSymlinks: Follow symbolic links when copying

Multi-Profile Configuration

Run Config also supports multiple deployment targets in a single file:

{
  "defaultProfile": "server",
  "profiles": {
    "server": {
      "buttonText": "$(play) На сервер",
      "source": ".",
      "target": "C:\\Users\\TiGRiS\\Desktop\\СЕРВЕР\\cstrike",
      "exclude": [
        ".git",
        ".vscode",
        "node_modules",
        "run.json"
      ],
      "overwrite": true,
      "deleteExtraneous": false
    },
    "test-server": {
      "buttonText": "$(beaker) На тестовый сервер",
      "source": ".",
      "target": "D:\\CS-Test\\cstrike",
      "overwrite": true,
      "deleteExtraneous": false
    }
  }
}

Behavior:

  • Clicking the status bar button runs defaultProfile
  • Run Config: Выбрать профиль opens a Quick Pick
  • The chosen profile runs immediately
  • Choosing a profile does not rewrite run.json

Exclude Rules

The exclude array supports:

  • Exact names: run.json
  • Relative paths: build/output.log
  • Directory patterns: build/**
  • File patterns: *.tmp
  • Recursive glob patterns: **/*.log

Safety

Run Config is intentionally conservative.

  • deleteExtraneous is false by default
  • The extension does not execute shell commands from run.json
  • The configuration is treated as data, not code
  • The target directory cannot be the same as the source directory
  • The target directory cannot be inside the source directory
  • Symbolic links are ignored unless followSymlinks is explicitly enabled
  • Dangerous deletion targets such as drive roots are rejected

Output and Progress

Each execution provides:

  • A cancellable progress notification
  • A detailed Run Config output channel log
  • A readable summary with copied, replaced, skipped, deleted, and errored counts

Example summary:

Copied: 24
Replaced: 7
Skipped: 3
Created directories: 5
Errors: 0
Time: 184 ms

JSON Schema Support

This extension contributes JSON validation for run.json, including:

  • field descriptions
  • default values
  • structure validation for both single-profile and multi-profile formats

Requirements

  • Visual Studio Code 1.91 or newer

Notes

  • If defaultProfile points to a missing profile, execution stops with a clear error
  • Configuration changes are picked up without restarting VS Code
  • The extension uses fs/promises and the VS Code API only
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft