Changelog
What’s new in Buttons. Dates are when each version was released. The full file, including internal packaging notes, is the extension CHANGELOG.
2.3.0 - 11 September 2026
Section titled “2.3.0 - 11 September 2026”System opens your configured OS terminal at the project root with the command already on the prompt. Nothing runs until you press Enter there. Nested variant chevrons in the editor panel expand and collapse. Open groups pick up a depth color from the current theme on the chevron, row border, and badge. Child command chips and + Add variant use that group’s color; opening a nested variant keeps that row in the parent color, and the new color is for the children it adds. Variant count badges use a nest-colored border and editor-foreground numbers with no fill. The badge stays visible while the group is open and shows direct:deeper when those variants have children of their own (two children that themselves hold five more rows is 2:5). Long commands wrap in place so the Actions column stays aligned. Drag the edges of the Command, Note, and Actions column headers to resize them; widths persist while the panel is open.
2.2.2 - 8 September 2026
Section titled “2.2.2 - 8 September 2026”The markdown icon in the sidebar and editor headers copies the Buttons AI skill or writes BUTTONS-SKILL.md in the project root. Command rows pick up a subtle hover highlight in the sidebar and the editor panel. Editor table borders span the full row; variant commands stay indented from the parent without shortening the line. Nested editor tables no longer stack extra bottom borders.
2.2.0 - 7 September 2026
Section titled “2.2.0 - 7 September 2026”Command and script variants can nest to any depth, so a button can be both a parent and a child. + Add variant on a variant appends more args to that variant’s command. Color pickers tint each action button, command text and background, variant commands, odd/even rows, and variant rows. The sidebar has an Open in editor control for the full panel. The editor tab shows the Buttons logo. Cargo.toml and go.mod offer build, test, and run buttons. Variant dropdowns indent further from the parent row.
2.1.3 - 5 September 2026
Section titled “2.1.3 - 5 September 2026”Closed parent chevrons show a badge with the number of variant commands. The badge hides when the list is open.
2.1.2 - 2 September 2026
Section titled “2.1.2 - 2 September 2026”✕ now asks for a second click. The first click shows a Confirm tooltip; click again while it is showing to delete, or click anywhere else to cancel.
Generate on an existing file adds any missing root-level scripts and leaves custom commands, notes, variants, and extra opted-in scripts in place.
2.1.1 - 2 September 2026
Section titled “2.1.1 - 2 September 2026”Insert, Insert selected, and the Buttons-tab row checkboxes are gone. Each command now has + (append to the current terminal line, with a space) and ↵ (append on a new line). Neither runs the command; press Enter in the terminal when the line is ready.
2.1.0 - 2 September 2026
Section titled “2.1.0 - 2 September 2026”A button can nest one level of variants in .buttons.json. Args children ({ "args": "--include app1 app2" }) append flags to the parent’s live command, so they stay in sync if the package manager changes. Full command and script children are also allowed. The panel shows them as an expandable list, with + Add variant.
Also in this release:
- Duplicate clones a button, including its variants.
- Drag the gripper to reorder siblings; the order is saved in
.buttons.json. - Optional
buttons.colors.background,foreground, andhoverBackgroundfor Run buttons and launcher cards. Empty values inherit the active VS Code theme.
Buttons 2.0.1 and earlier drop children, args, and id if they write the file. Upgrade before editing a file that uses variants.
2.0.1 - 20 August 2026
Section titled “2.0.1 - 20 August 2026”The Scan directories card is a typed path field instead of an OS folder picker. Relative paths resolve inside the project; absolute paths reach outside it. Directories outside the project are scanned and watched like in-project ones, and their buttons run with the terminal set to the script’s own directory.
Right-click a .sh or Python entry file in Explorer and choose Add to Buttons to add it as a standalone project button without scanning its folder. Right-clicking a manifest (package.json, Makefile, justfile, composer.json) adds its folder as a scan directory instead.
2.0.0 - 19 August 2026
Section titled “2.0.0 - 19 August 2026”Script scanning is directory-scoped. The project root is always scanned at its top level; other directories are scanned only when listed in buttons.scanDirectories. Previously the whole workspace was scanned recursively. If nested-package buttons now show not found, add their parent directory as a recursive scan directory, for example { "path": "packages", "recursive": true }. See Monorepos.
buttons.scriptFiles now defaults to ["package.json", "shell", "python"]. If you customized that setting, add "shell" and/or "python" to keep those file types enabled.
Also in this release:
- Standalone
.shfiles (bash <file>) and common Python entry files (python <file>) inside scan scopes, with the terminal working directory set to the script’s folder. - Venv buttons when a
venv/or.venv/is detected: Activate venv, Deactivate, and Install requirements when arequirements.txtsits next to the venv.
1.1.0 renamed the publisher to CurbSoftware and grouped the Project scripts tab by file. 1.0.0 was the first stable release: scan package.json, Makefile, composer.json, and justfile; two launcher surfaces; Run / New Terminal / Copy; project and global .buttons.json.