Skip to content

Configuration

Buttons contributes settings for text size, which script types to scan, extra scan directories, and optional button colors. buttons.textSize, buttons.scriptFiles, and buttons.colors.* are window-scoped (User or Workspace level). buttons.scanDirectories is resource-scoped (per workspace folder, saved at Workspace level when you use the panel).

Text size used in the Buttons UI, relative to VS Code’s font size.

Value Description
default VS Code default text size
plus2 VS Code default + 2px
plus4 VS Code default + 4px

Default: default. You can also click the gear icon in the panel header to jump straight to this setting.

Which script file types to scan for runnable commands.

Value Description
package.json Included by default
shell .sh files in scan directories
python Python entry files (app.py, main.py, manage.py, run.py, server.py) and venv buttons
Cargo.toml Rust cargo build, cargo test, cargo run (included by default)
go.mod Go go build, go test, go run . (included by default)
Makefile Opt-in
composer.json Opt-in
justfile Opt-in

Default: ["package.json", "shell", "python", "Cargo.toml", "go.mod"]. Enable the others to scan them; add unsupported file types as custom commands instead.

Extra directories to scan, on top of the always-scanned project root (top level only).

.vscode/settings.json
{
"buttons.scanDirectories": [
{ "path": "scripts", "recursive": true },
{ "path": "services/api", "recursive": false }
]
}
Field Description
path Workspace-relative directory path (posix or windows separators), or an absolute path for a directory outside the workspace.
recursive Scan the directory’s whole tree instead of only its top level. Default false.

Default: []. Paths are normalized (backslashes fixed, trailing slashes dropped). Relative entries must stay inside the workspace: .. escapes, duplicates, glob metacharacters, hidden directories, and ignore-listed names are ignored. Absolute entries (directories outside the workspace) are allowed and only reject glob metacharacters and .. segments. The Scan directories card in the Project scripts tab edits this setting for you through its paste-a-path Add field. See Script scanning for the scope model.

Optional hex (or rgb() / rgba()) colors for the panel. Empty values inherit the VS Code theme, or the fallback listed below. The settings UI shows a color picker.

Setting Applies to
buttons.colors.runBackground / runForeground Run
buttons.colors.newTerminalBackground / newTerminalForeground New Terminal
buttons.colors.appendBackground / appendForeground + (append with a space)
buttons.colors.newlineBackground / newlineForeground ↵ (append on a new line)
buttons.colors.copyBackground / copyForeground Copy
buttons.colors.duplicateBackground / duplicateForeground Duplicate
buttons.colors.editBackground / editForeground Note / Edit
buttons.colors.removeBackground / removeForeground ✕
buttons.colors.actionBackground / actionForeground Fallback for the buttons above, and fill for header actions (Generate, Rescan, Add command)
buttons.colors.hoverBackground Hover background for action buttons
Setting Applies to
buttons.colors.commandForeground / commandBackground Command text and the background behind it
buttons.colors.variantCommandForeground / variantCommandBackground The same pair for variant commands. Empty falls back to the command colors
Setting Applies to
buttons.colors.rowOddBackground / rowEvenBackground Alternating top-level command cards and table rows
buttons.colors.rowBackground Fallback for both odd and even rows
buttons.colors.variantRowOddBackground / variantRowEvenBackground Alternating variant rows
buttons.colors.variantRowBackground Fallback for both variant rows, then rowBackground

Default: "" (empty). buttons.colors.background and buttons.colors.foreground are deprecated fallbacks used only when the newer keys are empty.

Changes are stored in VS Code’s own settings (settings.json), not in .buttons.json:

{
"buttons.textSize": "plus2",
"buttons.scriptFiles": ["package.json", "shell", "python", "Cargo.toml", "go.mod", "Makefile", "justfile"],
"buttons.scanDirectories": [{ "path": "packages", "recursive": true }],
"buttons.colors.runBackground": "#3d2b1f",
"buttons.colors.runForeground": "#f4e8d4",
"buttons.colors.commandForeground": "#f4e8d4",
"buttons.colors.commandBackground": "#1f1914",
"buttons.colors.rowOddBackground": "#2a2118",
"buttons.colors.rowEvenBackground": "#241c16"
}

Open the settings page from the gear icon in the panel header, or via Command Palette → Preferences: Open Settings and searching for “Buttons”.