Skip to content
PluginStats

Run on Save installs statistics

By emeraldwalk · VS Code Marketplace · Other

Run commands when a file is saved in vscode.

View on VS Code Marketplace Fresh · Oct 20, 2026

Run on Save has 796,222 recorded installs on VS Code Marketplace, ranking #618 of 2,501 tracked listings.

Installs
796,222
Official API · Oct 20, 2026
7-day growth
—
Insufficient history
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#618
Among tracked VS Code Marketplace listings

Rating: 3.74 / 5 from 39 ratings

About Run on Save

Run On Save for Visual Studio Code

This extension allows configuring commands that get run whenever a file is saved in vscode.

NOTE: Commands only get run when saving an existing file. Creating new files, and Save as... don't trigger the commands.

Features

  • Configure multiple commands that run when a file is saved
  • Regex pattern matching for files that trigger commands running
  • Sync and async support

Configuration

Add "emeraldwalk.runonsave" configuration to user or workspace settings.

  • shell - (optional) shell path to be used with child_process.exec options that runs commands.
  • autoClearConsole - (optional) clear VSCode output console every time commands run. Defaults to false.
  • ignoreUnchangedFiles - (optional) ignore files that have not changed since the last save. Defaults to false.
  • message - Message to output before all commands.
  • messageAfter - Message to output after all commands have finished.
  • showElapsed - Show total elapsed time after all commands have finished.
  • commands - array of commands that will be run whenever a file is saved.
    • match - a regex for matching which files to run commands on (see Notes on RegEx Options).
    • notMatch - a regex for matching which files NOT to run. Files that match this pattern take precedence over ones that match the match option (see Notes on RegEx Options).
    • cmd - command to run. Can include parameters that will be replaced at runtime (see Placeholder Tokens section below).
    • isAsync (optional) - defaults to false. If true, next command will be run before this one finishes.
    • message - Message to output before this command. Can also include placeholders.
    • messageAfter - Message to output after this command has finished. Can also include placeholders.
    • showElapsed - Show total elapsed time after this command.
    • autoShowOutputPanel - Automatically shows the output panel:
      • never - Never changes the output panel visibility (default).
      • always - Shows output panel when the first command starts.
      • error - Shows output panel when a command fails.
Notes on RegEx Options

The match and notMatch options expect RegEx patterns.

  • The pattern will be run against the absolute file path. This means you usually don't want to start the pattern with ^ unless you are putting a full pattern to match the absolute path.

    e.g. Use "match": "somefile\\.txt$" instead of "match": "^somefile\\.txt$" if you are targeting somefile.txt in your workspace.

  • Since settings are defined in json, backslashes have to be double escaped.

    e.g. If you were targeting a file path on a Windows system, you'd have to escape \ once because it's a RegEx and a 2nd time since you are in a json string: "match": "some\\\\folder\\\\.*"

Sample Configurations
All Files
{
  "emeraldwalk.runonsave": {
    "commands": [
      {
        // Run whenever any file is saved
        "match": ".*",
        "cmd": "echo '${fileBasename}' saved.",
      },
    ],
  },
}
Specific File Extensions
{
  "emeraldwalk.runonsave": {
    "commands": [
      {
        // Run whenever html, css, or js files are saved
        "match": "\\.(html|css|js)$",
        "cmd": "echo '${fileBasename}' saved.",
      },
    ],
  },
}
Exclude a File
{
  "emeraldwalk.runonsave": {
    "commands": [
      {
        // Match all html, css, and js files
        // except for `exclude-me.js`
        "match": "\\.(html|css|js)$",
        "notMatch": "exclude-me\\.js$",
        "cmd": "echo '${fileBasename}' saved.",
      },
    ],
  },
}
Exclude .vscode Folder
{
  "emeraldwalk.runonsave": {
    "commands": [
      {
        // Match all .json files except for ones in
        // .vscode directory
        "match": "\\.json$",
        "notMatch": "\\.vscode/.*$",
        "cmd": "echo '${fileBasename}' saved.",
      },
    ],
  },
}
Mix of Parallel + Sequential Commands
{
  "emeraldwalk.runonsave": {
    "commands": [
      {
        "match": ".*",
        // This tells next command to run immediately after
        // this one starts instead of waiting for it to complete
        "isAsync": true,
        "cmd": "echo 'I run for all files.'",
      },
      {
        "match": "\\.txt$",
        "cmd": "echo 'I am a .txt file ${file}.'",
      },
      {
        "match": "\\.js$",
        "cmd": "echo 'I am a .js file ${file}.'",
      },
      {
        "match": ".*",
        "cmd": "echo 'I am ${env.USERNAME}.'",
      },
    ],
  },
}
Messages
{
  "emeraldwalk.runonsave": {
    // Messages to show before & after all commands
    "message": "*** All Start ***",
    "messageAfter": "*** All Complete ***",
    // Show elapsed time for all commands
    "showElapsed": true,
    "commands": [
      {
        "match": ".*",
        "cmd": "echo 1st Command",
        // Messages to run before / after this cmd
        "message": "- 1. Start",
        "messageAfter": "- 1. Complete",
        // Show elapsed time for this cmd
        "showElapsed": true,
      },
      {
        "message": "Message only",
      },
      {
        "match": ".*",
        "cmd": "echo 2nd Command",
        // Messages to run before / after this cmd
        "message": "- 2. Start",
        "messageAfter": "- 2. Complete",
        // Show elapsed time for this cmd
        "showElapsed": true,
      },
    ],
  },
}

Output of the commands

Please see the output in Output window and then switch the right side drop down to "Run On Save" to see the output of the commands stdout

Commands

The following commands are exposed in the command palette:

  • On Save: Enable
  • On Save: Disable
  • On Save: Toggle

Placeholder Tokens

Commands and messages support placeholders similar to tasks.json.…

Description from the VS Code Marketplace listing.

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

Run on Save installs on VS Code Marketplace, last 90 days: 796,222 installs as of Oct 20, 2026.Run on SaveInstalls on VS Code Marketplace · Last 90 days796,222installs794K794.5K795K795.5K796K796.5KJul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20installsobservedarchived (Internet Archive)no observationsOct 16, 2026 – Oct 20, 2026 · 5 observations · Updated Oct…pluginstats.com
Run on Save installs on VS Code Marketplace, last 90 days: 796,222 installs as of Oct 20, 2026.

7/30/90-day growth

Run on Save installs growth on VS Code Marketplace: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.Run on SaveInstalls growth on VS Code Marketplace796,222installs now7-day growthinsufficient historyInsufficient history30-day growthinsufficient historyInsufficient history90-day growthinsufficient historyInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 20, 2026pluginstats.com
Run on Save installs growth on VS Code Marketplace: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

Run on Save VS Code Marketplace ranking history: currently #618 (by installs).Run on SaveVS Code Marketplace ranking · by installs · Last 90 days#618current rank#616#617#618#619#620#621#622Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 16, 2026 – Oct 20, 2026 · 5 observations · Updated Oct 20, 2026pluginstats.com
Run on Save VS Code Marketplace ranking history: currently #618 (by installs).

Ratings over time

Run on Save ratings on VS Code Marketplace, last 90 days: 39 ratings as of Oct 20, 2026.Run on SaveRatings on VS Code Marketplace · Last 90 days39ratings343638404244Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20ratingsobservedarchived (Internet Archive)no observationsOct 16, 2026 – Oct 20, 2026 · 5 observations · Updated Oct…pluginstats.com
Run on Save ratings on VS Code Marketplace, last 90 days: 39 ratings as of Oct 20, 2026.

Listing placement

All VS Code Marketplace2,501 listings · 126 pages · 1,252 shown · page 31, #18 (overall #618)
All VS Code Marketplace: every listing in installs order

Listing placement

Other761 listings · 39 pages · page 9, #2 (overall #162)
Other: every listing in installs order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Installs on a linear scale. Placement is projected from installs, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (5)
Recent installs observations for Run on Save
Date (UTC)InstallsChange vs. previous
796,222+672
795,550+648
794,902+7
794,895+643
794,252—

Similar VS Code Marketplace Other plugins

All 20 Run on Save alternatives

Data source

Install counts, average rating, and rating counts come from the public Visual Studio Marketplace gallery API. Installs are cumulative and exclude updates.

Listing: https://marketplace.visualstudio.com/items?itemName=emeraldwalk.RunOnSave. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.