Skip to content

Terminal shell integration

brush can emit shell-integration escape sequences that mark where your prompt ends, where a command begins, and what it exited with. Terminals that implement VS Code’s shell-integration sequences use the markers for features like command navigation and exit-status decorations. It’s off by default.

~/.config/brush/config.toml
[experimental]
terminal-shell-integration = true

Or brush --enable-terminal-integration for a single session.

  1. Enable the setting above — without it you’ll get brush in the terminal, but none of the integration features.

  2. Add a profile in settings.json (Preferences: Open User Settings (JSON)), replacing /path/to/brush with the output of which brush:

    {
    "terminal.integrated.profiles.linux": {
    "brush": { "path": "/path/to/brush" }
    },
    "terminal.integrated.defaultProfile.linux": "brush"
    }

    On macOS use profiles.osx / defaultProfile.osx.

  3. Open a new terminal.

Many profile examples add "args": ["-l"], which starts a login shell. That reads different startup files — see which files are read.

Last updated:

Open source under the MIT license. Built in the open by the brush community.