Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Local Notifier for VS CodeNew to Visual Studio Code? Get it now.
Local Notifier for VS Code

Local Notifier for VS Code

shou6

|
1 install
| (0) | Free
Desktop notifications for AI agents and other tools that can run hooks, including inside Dev Containers.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Local Notifier for VS Code

CI

日本語

Shows Windows desktop notifications when AI agents and other tools finish their work. It works even when they run inside a Dev Container or WSL. Any tool that can run a command from a hook can use it.

You don't need a separate app, port, or token. A hook writes a small JSON file to an inbox folder, and the extension shows it as a notification.

Features

  • Send Test Notification: sends a test notification through the inbox to check the setup.
  • Copy Hook Command: copies a command that sends a notification from the current environment. Paste it into your tool's hook settings.
  • Show Status: shows whether notifications work and which inboxes this window watches.
  • Log: the Local Notifier channel in the Output panel records what happened to each notification file.

Usage

  1. Open a folder locally, in WSL, or in a Dev Container.
  2. Run Local Notifier: Copy Hook Command from the Command Palette (Ctrl+Shift+P).
  3. Select the notification to send, such as done or waiting.
  4. Select where you configure the hook: This workspace only or All workspaces.
  5. Select where you will paste it. For a settings file such as settings.json, select Settings file (JSON). It copies a JSON string with the quotes escaped.
  6. Paste it into your tool's hook settings.

To change the text later, edit the localNotifier.presets setting. You don't need to touch the hook. Changes to the settings take effect right away.

After you update the extension, reload every open window. A window that still runs an older version may drop notifications in a newer format.

Where the inbox is

Each window watches an inbox for its own workspace, and an inbox shared by all windows.

Where your tool runs This workspace only All workspaces
Windows (local) The workspace storage folder that Visual Studio Code provides The global storage folder that Visual Studio Code provides
WSL Same as local. The command converts the path with wslpath Same as local
Dev Container .devcontainer/.local-notifier/inbox in your project Not available

Use This workspace only for hooks in the project settings. Only the windows of that workspace handle it. Presets in the workspace settings apply. Use All workspaces for hooks in your user settings. Any open window handles the notification with the presets in your user settings.

In a Dev Container, the extension also adds a .gitignore next to the inbox. It keeps the inbox out of Git.

Notification format

A hook writes one JSON file per notification. Use a preset name, or write the text directly.

Field Required Description
preset No Name of a preset. Uses the text of the preset
title Without preset Title of the notification. Overrides the preset
message Without preset Body of the notification. Overrides the preset
project No Project name. Defaults to the workspace folder name in a Dev Container
level No info, success, warning, or error. Defaults to the preset, then info. Sets the emoji and how long the notification stays
source No Name of the tool, shown below the message

Presets

Three presets are built in. Their text follows the display language of VS Code.

Name Use Level
done The work is finished success
waiting Waiting for input or permission info
error Stopped with an error error

Override or add presets in localNotifier.presets. For a built-in name, only the fields you write change. Put project-specific text in .vscode/settings.json of the workspace.

{
  "localNotifier.presets": {
    "done": { "message": "Build and tests passed." },
    "review": { "title": "Review requested", "message": "Please check the changes.", "level": "warning" }
  }
}

Example: Claude Code in a Dev Container

Copy the command with Settings file (JSON). Paste it as the value of "command" in .claude/settings.local.json.

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "d='/workspace/.devcontainer/.local-notifier/inbox'; n=\"$(date +%s%N)-$$\"; printf '%s' '{\"preset\":\"done\"}' > \"$d/.tmp-$n.json\" && mv \"$d/.tmp-$n.json\" \"$d/$n.json\""
          }
        ]
      }
    ]
  }
}

Settings

Setting Default Description
localNotifier.enabled true Watch the inbox and show desktop notifications
localNotifier.inboxPath Empty Folder to use as the local inbox instead of the default one
localNotifier.presets Empty Presets to override or add
localNotifier.showLevelIcon true Show an emoji for the kind before the title: ✅ success, ℹ️ info, 🟡 warning, 🔴 error
localNotifier.duration Warnings and errors long How long each kind stays on screen. short is about 7 seconds, and long is about 25 seconds

Requirements

  • Windows
  • Visual Studio Code 1.138 or later

Known limitations

  • The extension shows notifications while Visual Studio Code runs.
  • Remote SSH is not supported.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft