Agent skill

Plugin Workbench

by openvetta in openvetta/open-vetta

Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers.

Apache-2.0Auto-check passedDevelopment

Install Plugin Workbench

skills CLI
$ npx skills add openvetta/open-vetta --skill plugin-workbench -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install openvetta/open-vetta plugin-workbench --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/openvetta/open-vetta.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/plugins/presets/plugin-workbench/agent/skills/plugin-workbench .claude/skills/plugin-workbench && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
plugin-workbench
GitHub stars
290
Token cost
~1.9k tokens
SKILL.md length
537 words
Files
3 (incl. references)
Skills in repo
21
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers.

  • Works in 9 steps: 解析工作台根目录(先做) → 强制读文档(不可跳过) → 前置条件 → …
  • The user wants a Vetta plugin
  • SKILL.md covers 0. 解析工作台根目录(先做), 1. 强制读文档(不可跳过), 2. 前置条件 and 3. 禁止臆测(必须 AskUserQuestion…, plus 5 more sections
  • Calls npm and node

What it does

Plugin Workbench is an agent skill from openvetta/open-vetta. Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers. Use whenever the user wants a Vetta plugin, plugin scaffolding, apply a .vettapkg package to Vetta, edit plugin.json name/guidingWords, or debug plugin load/install. Requires the Plugin Workbench input-bar toggle (hard isolation). The plugin handbook ships inside the project's own @vetta-org/plugin-sdk; locate it with the bundled CLI's docs command.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/doc-index.md` and `references/templates.md`).

It sits in Development, covering Hooks and plugins and Project scaffolding. The repository describes itself as: Open-source, local-first AI agent for coding and real work. BYOK models, MCP, skills, plugins, workflows, and private knowledge bases. The licence is Apache-2.0.

When your agent uses it

  • The user wants a Vetta plugin
  • Plugin scaffolding
  • Apply a .vettapkg package to Vetta
  • Edit plugin.json name/guidingWords

Example prompts

  • “s own @vetta-org/plugin-sdk; locate it with the bundled CLI”
  • “/plugin-workbench”

Requirements

  • Node.js

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. 解析工作台根目录(先做)
  2. 强制读文档(不可跳过)
  3. 前置条件
  4. 禁止臆测(必须 AskUserQuestion 或等价确认)
  5. 端到端流水线
  6. 运维面板
  7. 排错
  8. 边界
  9. 附件

What it can do on your machine

Read from SKILL.md and the folder at commit a2d314a. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Plugin Workbench loads about 1.9k tokens when it runs, and up to ~4.5k if it reads all its reference files. Until then it costs about 118 tokens; SKILL.md has 537 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~118
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from openvetta/open-vetta at commit a2d314a, republished under its Apache-2.0 licence (© openvetta). 537 words, ~1,907 tokens.

Download SKILL.mdSave it as .claude/skills/plugin-workbench/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
plugin-workbench
description
Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers. Use whenever the user wants a Vetta plugin, plugin scaffolding, apply a `.vettapkg` package to Vetta, edit plugin.json name/guidingWords, or debug plugin load/install. Requires the Plugin Workbench input-bar toggle (hard isolation). The plugin handbook ships inside the project's own @vetta-org/plugin-sdk; locate it with the bundled CLI's docs command.

制作插件(完整流水线)

面向不懂开发的用户:你读规范、写代码、跑标准脚本、装进本机;用户只回答问题与点确认。

质量底线:没有读过插件手册就动手写实现 = 禁止。凭记忆编造 SDK API 很容易装上不能用。


0. 解析工作台根目录(先做)

workbenchRoot = listPlugins() 中 id === "plugin-workbench" 的 rootPath

若拿不到:用宿主 plugins.query list,或面板/会话上下文;失败则 AskUserQuestion 请用户确认 App 已启用系统插件「制作插件」。

资源绝对路径
插件 CLI(内置){workbenchRoot}/agent/cli/vetta-plugin-cli.js
文档索引(本 skill 附件)本 skill 目录 references/doc-index.md
实现模板摘要本 skill 目录 references/templates.md
标准脚本{workbenchRoot}/scripts/*.mjs

手册不在工作台里,它随 @vetta-org/plugin-sdk 装进被编辑工程自己的 node_modules。 这是刻意的:那份手册与该工程实际编译的 SDK 版本一致,而随 App 发版的内嵌副本做不到。用内置 CLI 解析它的位置(工程 npm install 之后):

bash
node "{workbenchRoot}/agent/cli/vetta-plugin-cli.js" docs --json

返回 manualDir(手册目录绝对路径)、entry(README.md)、sdkVersion,以及当前命中的插件工程。 不要硬编码 node_modules 路径:工作区可能把依赖提升到上层,一仓多插件时各插件还可能钉不同版本。


1. 强制读文档(不可跳过)

用 read 工具打开文件(绝对路径),不要只 skim 本 skill。

1.1 每次创建或大改插件

先用上面的 docs --json 拿到 manualDir,然后({manualDir} 代指它):

  1. read {manualDir}/README.md — 能力矩阵与导航
  2. read {manualDir}/getting-started.md — 工程结构、MF、构建安装
  3. read {manualDir}/manifest.md — plugin.json
  4. read {manualDir}/permissions.md — 权限清单

工程若还没 npm install,docs 会明确告诉你先装 SDK——那一步本来也绕不过去,构建需要它。

1.2 按用户目标追加(实现前)
用户意图必读
侧栏面板 / 活动 Tabui-slots.md(activity-tab)
整页工作区视图 / 接管宿主页头ui-slots.md(workspace-view + setWorkspaceViewHeader)
视图要随宿主侧边栏收缩自适应ui-slots.md(useSidebarState;沉浸式页头尤其需要)
输入栏按钮ui-slots.md(input-action)
新会话页摆素材 / 选完智能体的第一屏ui-slots.md(new-session-context)
插件自带人设 / 团队manifest.md(贡献智能体与团队)
文件预览ui-slots.md(file-preview + notify 错误上报)+ styling-and-pitfalls.md(面板布局边界)
全局弹层ui-slots.md(global)
任何可能失败的 IO/解析ui-slots.md(notify)+ styling-and-pitfalls.md(错误必须上报)
Agent 工具 / 读写文件 / 对话conversation-and-agent.md
消息下方卡片message-cards.md
插件自带 MCPmcp.md
样式 / 布局逃逸 / 不生效 / 缓存styling-and-pitfalls.md(含面板类 slot 禁止 viewport fixed)
引导词 / 设置项manifest.md 对应章节
1.3 实现时
  • API 名、权限、scope_use fail-closed、返回值形状 以手册为准。
  • 模板摘要见 references/templates.md,但细节冲突时以 {manualDir}/* 为准。
  • 不确定就再 read 对应章节,或 AskUserQuestion。

2. 前置条件

  1. 用户已打开输入栏 「制作插件」 toggle(硬隔离;关着则 skill/agent 贡献不可见)。
  2. 工程在当前会话 cwd(或一层子目录),无特殊工场目录。
  3. 用户插件依赖:@vetta-org/plugin-sdk / @vetta-org/plugin-vite 用 registry 已发布 semver(init 默认 sdk ^0.3.1 / vite ^0.2.0,两者版本独立;若 install 失败问用户 registry/版本)。
  4. 构建用 托管 Node + npm;标准脚本封装,禁止随意手搓另一套 pack(除非用户明确要求且你已读 getting-started 的打包约定)。

3. 禁止臆测(必须 AskUserQuestion 或等价确认)

项原因
插件 id全局唯一,装后难改
展示名 name用户可见品牌
permissions 列表安全;对照 permissions.md 向用户解释再写入
要解决的问题 / MVP 范围避免一次做全家桶
是否立即安装到本机构建后是否引导用户在面板点「应用到 Vetta」
扩展点类型(用户没说时)activity-tab / 工具 / 引导词 / 预览 / …

4. 端到端流水线

4.1 澄清

AskUserQuestion 收齐 §3;对照 README 能力矩阵选定扩展点 → 列出要读的文档章节 → 先 read 再写代码。

4.2 Scaffold
bash
node "{workbenchRoot}/agent/cli/vetta-plugin-cli.js" init --id {id} --name "{name}" "{cwd}/{plugin-id}"
cd "{cwd}/{plugin-id}" && npm install

脚手架同时落一份 AGENTS.md(该读哪些手册、不可违反的几条)。先读它,它与本 skill 同源。

然后按文档改:

  • plugin.json:permissions、guidingWords、agent、styles、moduleFederation…(agent_mode 已废弃,不要写,见 manifest.md)
  • src/index.tsx:register* / registerTool 等(遵守 styling 顶层 JSX 规则)
  • 需要 skill/prompt 时按 manifest 建目录

可选:

bash
node "{workbenchRoot}/scripts/check-manifest.mjs" "{pluginRoot}"
4.3 实现质量检查(自检清单)

对照已读文档确认:

  • 每个用到的 API 都在 permissions 里声明
  • 会话页 UI / 工具都写了合理的 scope_use(fail-closed)
  • 工具 description 写清何时调用
  • 无 MF 顶层 JSX 陷阱
  • 样式:只用 Tailwind className;未手写业务 .css / 未用全局选择器(style.css 仅 theme+utilities 入口,见 styling-and-pitfalls)
  • 面板布局:file-preview / activity-tab 内无 fixed 贴视口、无超高 z-index、无 portal 到 document.body;面板内浮层用 relative+absolute;全局浮层用 registerGlobalSlot,Toast 用 notify(见 styling-and-pitfalls → 面板类 slot 布局边界)
  • 用户工程无 workspace:*
  • i18n:若要宿主渲染中文 label,按手册用 catalog / %key%(desktop 用户文案规范)
  • 错误可排查:所有可能失败的路径(读文件/解析/网络/外部库)在 catch 里调用 ctx.ui.notify({ message, error }),禁止只写死「失败」文案、丢掉原始 error;notify 无需权限,有 error 时宿主 Toast 可一键复制堆栈(见 ui-slots.md → notify)
Show full SKILL.md (209 more words)Show less
4.3.5 热更新感知(改已装插件前必查)

改一个已安装的插件前,先 plugins.query → get {id} 看返回项有没有 devWatch 字段:

  • devWatch 存在(热更新已开启):改完工程源码或 plugin.json 即结束——vite watch 构建成功后自动重载;dev 会话内新增 permissions/commands 也会自动放行。禁止再走 4.4/4.5 或 reload。若 devWatch.status === "error",提示用户看面板错误或拨一下热更新开关。仅当用户明确要持久写入注册表(关热更新/重启后仍生效)时,才用 workbench_offer_reinstall 让用户点卡片「重新安装」。
  • devWatch 不存在:走 4.4→4.5 常规流程(构建打包后引导用户在面板点「应用到 Vetta」)。
4.4 构建打包(强制脚本)
bash
node "{workbenchRoot}/scripts/build-and-pack.mjs" "{pluginRoot}"
  • 默认:patch bump → npm install → npm run build → release/{id}-{version}.vettapkg
  • 解析 stdout JSON:packagePath、id、version
  • 失败:读 stderr,按 getting-started / styling 修;缺依赖或 registry 问题 → AskUserQuestion
4.5 安装到本机 Vetta(引导用户在面板点击,不要弹确认)

打包完成后不要调用 plugins.manage 的 install-from-path(会弹确认 sheet,工作台流程已废弃此路径)。改为告知用户:

打开右侧活动面板「制作插件」→ 对应工程卡片 → 点 「应用到 Vetta」(面板安装一次完成授权 + 启用,无确认弹窗)。

  • 应用成功后面板会默认开启「热更新」:之后你改源码即自动构建+重载(§4.3.5),无需再次应用。用户可手动关掉。
  • 再次应用(热更新被关掉时):build-and-pack 后再请用户点「应用到 Vetta」(应用后会重新默认开启热更新)。
  • 不可覆盖系统插件 id。
4.6 改 name / guidingWords

只改 工程源码 plugin.json,再 4.4 → 4.5。禁止改 ~/.vetta/plugins/... 已装目录当真相源。

4.7 卸载 / 重载 / 重新安装
  • plugins.manage:uninstall / reload(系统插件不可卸)。
  • 重新安装(权限/命令等安装态变更):工具 workbench_offer_reinstall 出消息卡,或面板「重新安装」——不要 install-from-path。

5. 运维面板

Activity Tab「制作插件」(同样受 toggle 硬隔离):扫描 cwd、构建、应用、卸载、重载、改 name/引导词。与对话同一规则与同一脚本。

每张工程卡片有 「热更新」开关(已安装后默认开):宿主把插件 dev 链接到工程目录并常驻 vetta-plugin dev;React / CSS 走 HMR,其余资源定向重载(无需 bump/重打包/手动 reload)。适合迭代调试。

已安装时还有 「重新安装」(与消息卡按钮同路径):强制 build-and-pack → 把权限/命令持久写入注册表 → 刷新整个 Vetta 窗口。日常改代码 / 改 plugin.json 靠热更新即可(dev 会话内权限声明自动放行);重新安装用于落盘授权或热更新异常时兜底。首次安装仍用「应用到 Vetta」。


6. 排错

现象处理
Skill/工具不可见是否打开工作台 toggle;系统插件是否启用
npm install 失败registry、网络、sdk 版本;AskUserQuestion
构建失败读完整错误;对照 getting-started / 依赖版本
装上无效果permissions 是否授予;scope_use;插件 enabled;reload + version
反复改 UI 调试已安装工程默认开热更新:保存即自动构建+重载(见 §5);若被关掉可再打开
UI 不出现ui-slots 权限与 scope_use;activity tab 是否 attach
样式/缓存怪styling-and-pitfalls;bump version
运行时「失败」但不知原因插件是否 notify({ message, error })?让用户右下角 Toast 点「复制堆栈」贴给你;没有则补 notify 后热更新再复现
只显示红字无堆栈实现遗漏:catch 必须把原始 error 传给 ctx.ui.notify(见 §4.3 与 ui-slots notify)

7. 边界

  • 不发布插件市场、不拖拽式 no-code 搭建
  • 不保证任意原生/C++ 依赖在托管 Node 下可构建
  • 细粒度权限仍可在设置页调整
  • 用户自建插件默认 不要 开 hardIsolation(除非用户明确要求模式开关)

8. 附件

  • references/doc-index.md — 手册路径与阅读表
  • references/templates.md — 常见扩展点代码起点

再次强调:实现前先 docs --json 拿到 manualDir,再 read 其中对应的章节。手册随工程自己的 @vetta-org/plugin-sdk 发布,因此它描述的合同就是这个工程即将编译的合同。

© openvetta, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in packages/plugins/presets/plugin-workbench/agent/skills/plugin-workbench of openvetta/open-vetta.

  • SKILL.md
  • references/doc-index.md
  • references/templates.md

Open the folder on GitHubat commit a2d314a

Compare with similar skills

Plugin Workbench next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Plugin Workbench compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Plugin Workbench this skillopenvetta/open-vetta290—~1.9kAutomated safety check: PassApache-2.0
Claude Code Plugin Structureanthropics/claude-plugins-official37k10 repos~3.4kAutomated safety check: PassApache-2.0
Writing Pluginsnukeop/nuclear19k—~825Automated safety check: PassAGPL-3.0
OpenCode Plugin CreatorDevin-AXIS/iPolloWork6.7k1 repos~1.3kAutomated safety check: PassCustom licence
Create Harnessruvnet/metaharness688—~777Automated safety check: PassMIT
Claude Code Plugin Developmentobra/superpowers-developing-for-claude-code142—~2.2kAutomated safety check: PassNone

Similar skills

  • Claude Code Plugin Structure

    anthropics/claude-plugins-official

    Official

    Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.

    37k GitHub starsUsed in 10 repos~3.4k tokens
    Agent WorkflowsAuto-check passed
  • Writing Plugins

    nukeop/nuclear

    A skill your agent uses when writing, scaffolding, or modifying Nuclear plugins.

    19k GitHub stars~825 tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • OpenCode Plugin Creator

    Devin-AXIS/iPolloWork

    Scaffolds an OpenCode plugin for iPolloWork with the right async factory shape, zod-based tool definitions and hook registration, and explains where to place and register it.

    6.7k GitHub starsUsed in 1 repo~1.3k tokens
    Agent WorkflowsAuto-check passed
  • Create Harness

    ruvnet/metaharness

    Scaffold your own focused AI agent harness — pick host (Claude Code, Codex, pi.dev, Hermes), template, agents, skills, and ship a npm-publishable harness with its own npx CLI.

    688 GitHub stars~777 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Claude Code Plugin Development

    obra/superpowers-developing-for-claude-code

    Workflows, patterns and examples for the whole Claude Code plugin lifecycle: creating, adding components, testing, troubleshooting, releasing and maintaining plugins.

    142 GitHub stars~2.2k tokensUpdated 10 mo ago
    Agent WorkflowsAuto-check passed
  • Hana Plugin Creator

    ZS520L/HanakoPro

    Create Hana plugin scaffolds and guide users through beginner or developer plugin planning, capability checks, manifest setup, runtime tools, iframe UI, SDK templates, and install-ready plugin…

    102 GitHub stars~2.6k tokensUpdated 4 mo ago
    Agent WorkflowsAuto-check passed

More from openvetta/open-vetta

All 21 skills in this repo
  • Mobile Android Design

    openvetta/open-vetta

    Master Material Design 3 and Jetpack Compose patterns for building native Android apps.

    290 GitHub starsUsed in 3 repos~950 tokens
    Auto-check passed
  • Publish Ability

    openvetta/open-vetta

    Publish a skill, scene, MCP server, plugin, or bundle to the Vetta ability marketplace.

    290 GitHub stars~1.6k tokensUpdated 3 days ago
    Auto-check passed
  • Create Skill

    openvetta/open-vetta

    Create or update Vetta-compatible Agent Skills. An agent skill from openvetta/open-vetta.

    290 GitHub stars~1.6k tokensUpdated 3 days ago
    Auto-check passed
  • Mobile UI Design

    openvetta/open-vetta

    Design mobile-style HTML pages (iOS / Android) for preview in the Mobile UI Preview panel.

    290 GitHub stars~1.6k tokensUpdated 3 days ago
    Auto-check passed
  • Remotion Video

    openvetta/open-vetta

    Create, modify, and render Remotion React video projects in the current Vetta conversation workspace.

    290 GitHub stars~744 tokensUpdated 3 days ago
    Auto-check passed
  • Vetta UI Design

    openvetta/open-vetta

    Build and edit design documents (.vetd) on the Vetta design canvas — app screens, landing pages, slides, posters, infographics.

    290 GitHub stars~7.3k tokensUpdated 3 days ago
    Auto-check passed

Questions about Plugin Workbench

What does Plugin Workbench do?

Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers. Plugin Workbench is an agent skill from openvetta/open-vetta. Create, implement, build, pack, install, reload, and manage Vetta desktop plugins for non-developers.

When should I use Plugin Workbench?

Plugin Workbench fits situations like: the user wants a Vetta plugin; plugin scaffolding; apply a .vettapkg package to Vetta; edit plugin.json name/guidingWords.

How do I install Plugin Workbench in Claude Code?

Run `npx skills add openvetta/open-vetta --skill plugin-workbench -a claude-code`. Or copy the skill folder (packages/plugins/presets/plugin-workbench/agent/skills/plugin-workbench in openvetta/open-vetta) into .claude/skills/plugin-workbench in your project. Claude Code loads it when a task matches its description.

How do I install Plugin Workbench in Codex?

Run `npx skills add openvetta/open-vetta --skill plugin-workbench -a codex`. Or copy the skill folder (packages/plugins/presets/plugin-workbench/agent/skills/plugin-workbench in openvetta/open-vetta) into .agents/skills/plugin-workbench in your project. Codex loads it when a task matches its description.

Can I use Plugin Workbench in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add openvetta/open-vetta --skill plugin-workbench -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/plugin-workbench, .gemini/skills/plugin-workbench, .github/skills/plugin-workbench and .opencode/skills/plugin-workbench in your project.

What does Plugin Workbench need to run?

Going by SKILL.md and its folder, Plugin Workbench needs the command-line tools its instructions call (npm and node). Our summary lists: Node.js.

Does Plugin Workbench access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Plugin Workbench safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Plugin Workbench use?

Plugin Workbench is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Plugin Workbench use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Plugin Workbench?

Skills that share tags, products or a category with Plugin Workbench: Claude Code Plugin Structure (anthropics/claude-plugins-official, 37k stars), Writing Plugins (nukeop/nuclear, 19k stars), OpenCode Plugin Creator (Devin-AXIS/iPolloWork, 6.7k stars) and Create Harness (ruvnet/metaharness, 688 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Plugin Workbench?

openvetta (a GitHub organization) maintains it in openvetta/open-vetta, which has 290 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 4, 2026.

Source: openvetta/open-vetta on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.