All-in-one JavaScript/TypeScript toolkit: fast runtime, package manager, test runner, and bundler. Version-aware skill backed by the ask CLI.
75
94%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Version-aware skill for the Bun JavaScript/TypeScript toolkit — runtime, package manager, test runner, and bundler. Ships a single use-bun skill that uses the ask CLI to pin docs and source to the exact Bun version installed in the project.
The SKILL.md format is shared by Claude Code, Cursor, Codex CLI, Gemini CLI, Google Antigravity, and Windsurf. The same skill content works in all of them — only the install path / manifest format differs per tool.
| Tool | Manifest | Skills path |
|---|---|---|
| Claude Code | .claude-plugin/plugin.json | ./skills/ |
| Codex | .codex-plugin/plugin.json | ./skills/ |
| Antigravity | plugin.json (at plugin root) | ./skills/ |
| Tessl | .tessl-plugin/plugin.json | skills/use-bun |
All tools read the same skills/use-bun/SKILL.md. Antigravity additionally accepts mcp_config.json, hooks.json, and rules/ at plugin root if needed (this plugin uses none of them). Tessl publishes the skill to its registry as pleaseai/bun (see Tessl below).
/plugin marketplace add pleaseai/claude-code-plugins
/plugin install bun@pleaseaiInstall via the Codex marketplace using this repository, or manually copy the plugin contents into your Codex plugins directory. See the Codex plugin docs for the local install layout.
Antigravity recognises this directory as a plugin via the root plugin.json marker file. Copy the entire plugin directory into Antigravity's plugin location, or copy only the skill if you prefer skill-level install:
Plugin install (recommended — preserves the plugin.json namespace):
# Workspace scope (project-only)
mkdir -p .agents/plugins
cp -R <path-to-this-plugin> .agents/plugins/bun
# Global scope (all projects)
mkdir -p ~/.gemini/antigravity/plugins
cp -R <path-to-this-plugin> ~/.gemini/antigravity/plugins/bunSkill-only install (skip the plugin namespace, drop the skill directly):
mkdir -p ~/.gemini/antigravity/skills
cp -R <path-to-this-plugin>/skills/use-bun ~/.gemini/antigravity/skills/See the Antigravity plugins docs and the Authoring Skills codelab for background.
This plugin ships a Tessl manifest (.tessl-plugin/plugin.json) so the use-bun skill can be published to and installed from the Tessl registry as pleaseai/bun.
# Install from the registry
tessl install pleaseai/bun
# Validate / publish from this directory (maintainers)
tessl plugin lint plugins/bun
tessl plugin publish # requires `tessl login` or a TESSL_TOKENThe manifest version is kept in sync with the other manifests by release-please (it is a $.version extra-file alongside .claude-plugin, .codex-plugin, and root plugin.json). Tessl caps a skill's description at 1024 characters, so skills/use-bun/SKILL.md keeps its description within that limit.
CI automates this (requires a TESSL_TOKEN repo secret; both jobs no-op without it):
.github/workflows/tessl-publish.yml — publishes to the registry when release-please tags a release (bun-v*)..github/workflows/tessl-skill-review.yml — runs the tesslio/skill-review action on PRs that touch plugins/bun/skills/**, posting the skill's quality score as a PR comment.curl -fsSL https://bun.sh/install | bash)ask CLI for version-pinned docs/source reads (recommended)plugins/bun/
├── .claude-plugin/plugin.json # Claude Code manifest
├── .codex-plugin/plugin.json # Codex manifest
├── plugin.json # Antigravity marker file
├── .tessl-plugin/plugin.json # Tessl plugin manifest (pleaseai/bun)
├── README.md # this file
└── skills/use-bun/
├── SKILL.md # entry point — universal across all tools
├── scripts/
│ └── resolve-bun-version.sh # bundled helper, called via ${CLAUDE_SKILL_DIR}
└── references/
├── versions.md # ask CLI version pinning + bun-vX.Y.Z tag recipe
├── runtime-apis.md # Bun.serve, Bun.file, Bun.spawn, bun:sqlite, Bun.SQL, …
├── package-manager.md # install, workspaces, catalogs, isolated installs
├── test-runner.md # bun:test, mocks, snapshots, coverage
├── bundler.md # Bun.build, --compile executables, plugins, macros
└── node-compat.md # node:* module status, JSC vs V8Antigravity skills use the same SKILL.md schema as Claude Code: YAML frontmatter with name (optional, defaults to directory name) and description (required). The skill body is Markdown. This skill follows that schema, so it works in Antigravity without modification.
The plugin marker file (plugin.json at plugin root) is minimal — {"name": "bun"} — since Antigravity only requires the file to exist to recognise the directory as a plugin namespace.
The ${CLAUDE_SKILL_DIR} env var referenced in SKILL.md is a Claude Code convention. Antigravity uses similar conventions (notably it sets ${CLAUDE_SKILL_DIR} in many runners for cross-compat). If your Antigravity install does not set it, the helper script can also be invoked by relative path from the skill directory: ./scripts/resolve-bun-version.sh.