API 1.7.0
Build your first Tabs extension
A Tabs-native extension contributes a full-workspace tool to the project toolbar. It is not a VS Code VSIX, browser bookmark, or native ACP agent.
Release status
API 1.7.0 and the CLI are experimental and not published to npm. Official public submissions remain closed. Download the versioned SDK and CLI bundle from this Exchange's Developers page. A compatible desktop testing build is required; the bundle does not include a public desktop installer.
What you need
Node 22.12 or newer, npm, and a compatible Tabs desktop development/testing build. Download and extract the developer bundle into a new folder, then open a terminal in that folder. Its README and release.json identify package versions and the target desktop build. You do not need the Tabs source checkout. SHA256SUMS helps detect corruption; checksums alone are not independent proof of authenticity.
Create, build, and package
The React/TypeScript template is the default. Run these commands from the extracted bundle folder on macOS/Linux:
npm install -g --prefix ./tabs-toolchain ./tabs-extension-cli-1.7.0.tgz
./tabs-toolchain/bin/tabsext init my-tool --sdk "$PWD/tabs-extension-api-1.7.0.tgz" --tabs-version 1.3.17
cd my-tool
npm install
npm run build
../tabs-toolchain/bin/tabsext validate
../tabs-toolchain/bin/tabsext pack
These shell paths are for macOS/Linux. Windows npm global-prefix executables live directly in tabs-toolchain (use tabsext.cmd rather than bin/tabsext). You may instead install the supplied CLI tarball into your usual npm global prefix and use tabsext directly. The staging directory is .tabs-extension. In Tabs desktop development mode, open Settings > Extensions > Discover > Load development folder and select that directory. Enable the tool in Installed and select it from the project toolbar.
Use the desktop testing version named in your bundle's release.json instead of 1.3.17 if different. Initialization records it in .tabsext.json; validation, packaging, inspection, and publishing use that project target unless you override --tabs-version. There is no hidden default. Use --json for automation; output is readable by default. No capabilities are requested by the starter.
After CLI publication, you may run the same commands through npx @tabs/extension-cli; the local SDK tarball and explicit desktop target are still required. npx is not the current installation method.