Tabler Bootstrap Component Rules
tabler/tabler
Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.
Bundle TypeScript and JavaScript libraries with blazing-fast speed powered by Rolldown.
$ npx skills add JetBrains/skills --skill tsdown -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install JetBrains/skills tsdown --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/tsdown .claude/skills/tsdown && rm -rf skills-srcUse ~/.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/
Install the "tsdown" agent skill from https://github.com/JetBrains/skills/tree/main/tsdown into .claude/skills/tsdown/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsdown", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/JetBrains/skills/tree/main/tsdownType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add JetBrains/skills --skill tsdown -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install JetBrains/skills tsdown --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/tsdown .agents/skills/tsdown && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tsdown" agent skill from https://github.com/JetBrains/skills/tree/main/tsdown into .agents/skills/tsdown/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsdown", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/skills --skill tsdown -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install JetBrains/skills tsdown --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/tsdown .cursor/skills/tsdown && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tsdown" agent skill from https://github.com/JetBrains/skills/tree/main/tsdown into .cursor/skills/tsdown/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsdown", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/JetBrains/skills.git --path tsdown--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add JetBrains/skills --skill tsdown -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install JetBrains/skills tsdown --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/tsdown .gemini/skills/tsdown && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tsdown" agent skill from https://github.com/JetBrains/skills/tree/main/tsdown into .gemini/skills/tsdown/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsdown", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install JetBrains/skills tsdownInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add JetBrains/skills --skill tsdown -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/tsdown .github/skills/tsdown && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tsdown" agent skill from https://github.com/JetBrains/skills/tree/main/tsdown into .github/skills/tsdown/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsdown", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add JetBrains/skills --skill tsdown -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install JetBrains/skills tsdown --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/JetBrains/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/tsdown .opencode/skills/tsdown && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tsdown" agent skill from https://github.com/JetBrains/skills/tree/main/tsdown into .opencode/skills/tsdown/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tsdown", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tsdownBundle TypeScript and JavaScript libraries with blazing-fast speed powered by Rolldown.
Tsdown is an agent skill from JetBrains/skills, published by the product's own GitHub organization. Bundle TypeScript and JavaScript libraries with blazing-fast speed powered by Rolldown. Use when building libraries, generating type declarations, bundling for multiple formats, or migrating from tsup.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 42 other files, including reference files (for example `LICENSE.md`, `README.md` and `SYNC.md`).
It sits in Frontend & Design. It works with TypeScript and JavaScript. The repository describes itself as: Curated agent skills collection verified by JetBrains. The licence is MIT.
9 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e0f258b. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npxpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
tsdown.devgithub.comrolldown.rsFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tsdown loads about 3k tokens when it runs, and up to ~43k if it reads all its reference files. Until then it costs about 52 tokens; SKILL.md has 528 words of instructions outside code blocks.
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.
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.
The full file from JetBrains/skills at commit e0f258b, republished under its MIT licence (© JetBrains). 528 words, ~3,005 tokens.
.claude/skills/tsdown/SKILL.md (or your agent's skills folder). This skill also uses 41 other files; get the full folder from GitHub.Blazing-fast bundler for TypeScript/JavaScript libraries powered by Rolldown and Oxc.
# Install
pnpm add -D tsdown
# Basic usage
npx tsdown
# With config file
npx tsdown --config tsdown.config.ts
# Watch mode
npx tsdown --watch
# Migrate from tsup
npx tsdown-migrateimport { defineConfig } from 'tsdown'
export default defineConfig({
entry: ['./src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
clean: true,
})| Topic | Description | Reference |
|---|---|---|
| Getting Started | Installation, first bundle, CLI basics | guide-getting-started |
| Configuration File | Config file formats, multiple configs, workspace | option-config-file |
| CLI Reference | All CLI commands and options | reference-cli |
| Migrate from tsup | Migration guide and compatibility notes | guide-migrate-from-tsup |
| Plugins | Rolldown, Rollup, Unplugin support | advanced-plugins |
| Hooks | Lifecycle hooks for custom logic | advanced-hooks |
| Programmatic API | Build from Node.js scripts | advanced-programmatic |
| Rolldown Options | Pass options directly to Rolldown | advanced-rolldown-options |
| CI Environment | CI detection, 'ci-only' / 'local-only' values | advanced-ci |
| Option | Usage | Reference |
|---|---|---|
| Entry points | entry: ['src/*.ts', '!**/*.test.ts'] | option-entry |
| Output formats | format: ['esm', 'cjs', 'iife', 'umd'] | option-output-format |
| Output directory | outDir: 'dist', outExtensions | option-output-directory |
| Type declarations | dts: true, dts: { sourcemap, compilerOptions, vue } | option-dts |
| Target environment | target: 'es2020', target: 'esnext' | option-target |
| Platform | platform: 'node', platform: 'browser' | option-platform |
| Tree shaking | treeshake: true, custom options | option-tree-shaking |
| Minification | minify: true, minify: 'dce-only' | option-minification |
| Source maps | sourcemap: true, 'inline', 'hidden' | option-sourcemap |
| Watch mode | watch: true, watch options | option-watch-mode |
| Cleaning | clean: true, clean patterns | option-cleaning |
| Log level | logLevel: 'silent', failOnWarn: false | option-log-level |
| Feature | Usage | Reference |
|---|---|---|
| Never bundle | deps: { neverBundle: ['react', /^@myorg\//] } | option-dependencies |
| Always bundle | deps: { alwaysBundle: ['dep-to-bundle'] } | option-dependencies |
| Only bundle | deps: { onlyBundle: ['cac', 'bumpp'] } - Whitelist | option-dependencies |
| Skip node_modules | deps: { skipNodeModulesBundle: true } | option-dependencies |
| Auto external | Automatic peer/dependency externalization | option-dependencies |
| Feature | Usage | Reference |
|---|---|---|
| Shims | shims: true - Add ESM/CJS compatibility | option-shims |
| CJS default | cjsDefault: true (default) / false | option-cjs-default |
| Package exports | exports: true - Auto-generate exports field | option-package-exports |
| CSS handling | [experimental] css: { ... } — full pipeline with preprocessors, Lightning CSS, PostCSS, code splitting; requires @tsdown/css | option-css |
| CSS inject | css: { inject: true } — preserve CSS imports in JS output | option-css |
| Unbundle mode | unbundle: true - Preserve directory structure | option-unbundle |
| Root directory | root: 'src' - Control output directory mapping | option-root |
| Executable | [experimental] exe: true - Bundle as standalone executable, cross-platform via @tsdown/exe | option-exe |
| Package validation | publint: true, attw: true - Validate package | option-lint |
| Framework | Guide | Reference |
|---|---|---|
| React | JSX transform, React Compiler | recipe-react |
| Vue | SFC support, JSX | recipe-vue |
| Solid | SolidJS JSX transform | recipe-solid |
| Svelte | Svelte component libraries (source distribution recommended) | recipe-svelte |
| WASM | WebAssembly modules via rolldown-plugin-wasm | recipe-wasm |
export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
clean: true,
})export default defineConfig({
entry: {
index: 'src/index.ts',
utils: 'src/utils.ts',
cli: 'src/cli.ts',
},
format: ['esm', 'cjs'],
dts: true,
})export default defineConfig({
entry: ['src/index.ts'],
format: ['iife'],
globalName: 'MyLib',
platform: 'browser',
minify: true,
})export default defineConfig({
entry: ['src/index.tsx'],
format: ['esm', 'cjs'],
dts: true,
deps: {
neverBundle: ['react', 'react-dom'],
},
inputOptions: {
jsx: { runtime: 'automatic' },
},
})export default defineConfig({
entry: ['src/**/*.ts', '!**/*.test.ts'],
unbundle: true, // Preserve file structure
format: ['esm'],
dts: true,
})export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
failOnWarn: 'ci-only', // opt-in: fail on warnings in CI
publint: 'ci-only',
attw: 'ci-only',
})import { wasm } from 'rolldown-plugin-wasm'
import { defineConfig } from 'tsdown'
export default defineConfig({
entry: ['src/index.ts'],
plugins: [wasm()],
})export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
target: 'chrome100',
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "src/styles/variables" as *;`,
},
},
},
})export default defineConfig({
entry: ['src/cli.ts'],
exe: true,
})@tsdown/exe)export default defineConfig({
entry: ['src/cli.ts'],
exe: {
targets: [
{ platform: 'linux', arch: 'x64', nodeVersion: '25.7.0' },
{ platform: 'darwin', arch: 'arm64', nodeVersion: '25.7.0' },
{ platform: 'win', arch: 'x64', nodeVersion: '25.7.0' },
],
},
})export default defineConfig({
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
hooks: {
'build:before': async (context) => {
console.log('Building...')
},
'build:done': async (context) => {
console.log('Build complete!')
},
},
})Export an array for multiple build configurations:
export default defineConfig([
{
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
},
{
entry: ['src/cli.ts'],
format: ['esm'],
platform: 'node',
},
])Use functions for dynamic configuration:
export default defineConfig((options) => {
const isDev = options.watch
return {
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
minify: !isDev,
sourcemap: isDev,
}
})Use glob patterns to build multiple packages:
export default defineConfig({
workspace: 'packages/*',
entry: ['src/index.ts'],
format: ['esm', 'cjs'],
dts: true,
})# Basic commands
tsdown # Build once
tsdown --watch # Watch mode
tsdown --config custom.ts # Custom config
npx tsdown-migrate # Migrate from tsup
# Output options
tsdown --format esm,cjs # Multiple formats
tsdown -d lib # Custom output directory (--out-dir)
tsdown --minify # Enable minification
tsdown --dts # Generate declarations
tsdown --exe # Bundle as standalone executable
tsdown --unbundle # Bundleless mode
# Entry options
tsdown src/index.ts # Single entry
tsdown src/*.ts # Glob patterns
tsdown src/a.ts src/b.ts # Multiple entries
# Workspace / Monorepo
tsdown -W # Enable workspace mode
tsdown -W -F my-package # Filter specific package
tsdown --filter /^pkg-/ # Filter by regex
# Development
tsdown --watch # Watch mode
tsdown --sourcemap # Generate source maps
tsdown --clean # Clean output directory
tsdown --from-vite # Reuse Vite config
tsdown --tsconfig tsconfig.build.json # Custom tsconfigAlways generate type declarations for TypeScript libraries:
{ dts: true }Externalize dependencies to avoid bundling unnecessary code:
{ deps: { neverBundle: [/^react/, /^@myorg\//] } }Use tree shaking for optimal bundle size:
{ treeshake: true }Enable minification for production builds:
{ minify: true }Add shims for better ESM/CJS compatibility:
{ shims: true } // Adds __dirname, __filename, etc.Auto-generate package.json exports:
{ exports: true } // Creates proper exports fieldUse watch mode during development:
tsdown --watchPreserve structure for utilities with many files:
{ unbundle: true } // Keep directory structureValidate packages in CI before publishing:
{ publint: 'ci-only', attw: 'ci-only' }© JetBrains, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 41 other files (references) in tsdown of JetBrains/skills.
Open the folder on GitHubat commit e0f258b
We found 6 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 6 other GitHub owners. This page covers the copy in JetBrains/skills, which our catalogue first saw on October 7, 2026.
Tsdown 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tsdown this skillJetBrains/skills | 363 | 6 repos | ~3k | Automated safety check: Pass | MIT | |
| Tabler Bootstrap Component Rulestabler/tabler | 42k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Tabler Core JavaScripttabler/tabler | 42k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Typescript Best Practicesbretzel-app/crumbs | 127 | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Compare Array Bundle SizePostHog/posthog-js | 613 | — | ~599 | Automated safety check: Pass | Custom licence | |
| Language Supportlive-codes/livecodes | 1.5k | — | ~1.6k | Automated safety check: Pass | MIT |
tabler/tabler
Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.
tabler/tabler
Guidance for changing the Tabler framework's own JavaScript in core/js: the tabler.js and tabler-theme.js bundles, the Bootstrap port and their tests.
bretzel-app/crumbs
Provides TypeScript patterns for type-first development, making illegal states unrepresentable, exhaustive handling, and runtime validation.
PostHog/posthog-js
Quickly compare the posthog-js array.js bundle size in the current working tree against a git baseline using the repository's esbuild proxy.
live-codes/livecodes
Work with 90+ supported languages, compilers, CSS processors, and WASM-compiled languages for markup, style, and script editors.
dequelabs/cauldron
Add a Figma Code Connect (.figma.tsx) file for a Cauldron React component.
JetBrains/skills
A skill your agent uses when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via playwright-cli…
JetBrains/skills
Guide for creating effective skills. An agent skill from JetBrains/skills.
JetBrains/skills
A skill your agent uses when the user asks for text-to-speech narration or voiceover, accessibility reads, audio prompts, or batch speech generation via the OpenAI Audio API; run the bundled CLI…
JetBrains/skills
Transcribe audio files to text with optional diarization and known-speaker hints.
JetBrains/skills
A skill your agent uses when the user asks to generate or edit images via the OpenAI Image API (for example: generate image, edit/inpaint/mask, background removal or replacement, transparent…
JetBrains/skills
A skill your agent uses when the user explicitly asks for a desktop or system screenshot (full screen, specific app or window, or a pixel region), or when tool-specific capture capabilities are…
Works with
Categories
Bundle TypeScript and JavaScript libraries with blazing-fast speed powered by Rolldown. Tsdown is an agent skill from JetBrains/skills, published by the product's own GitHub organization. Bundle TypeScript and JavaScript libraries with blazing-fast speed powered by Rolldown.
Tsdown fits situations like: building libraries; generating type declarations; bundling for multiple formats; migrating from tsup.
Run `npx skills add JetBrains/skills --skill tsdown -a claude-code`. Or copy the skill folder (tsdown in JetBrains/skills) into .claude/skills/tsdown in your project. Claude Code loads it when a task matches its description.
Run `npx skills add JetBrains/skills --skill tsdown -a codex`. Or copy the skill folder (tsdown in JetBrains/skills) into .agents/skills/tsdown in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/skills --skill tsdown -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tsdown, .gemini/skills/tsdown, .github/skills/tsdown and .opencode/skills/tsdown in your project.
Going by SKILL.md and its folder, Tsdown needs the command-line tools its instructions call (npx and pnpm). Our summary lists: Node.js.
SKILL.md names 3 domains. As links in the text: tsdown.dev, github.com and rolldown.rs. This is read from the text; nothing was executed.
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.
Tsdown is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k 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 40k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Tsdown: Tabler Bootstrap Component Rules (tabler/tabler, 42k stars), Tabler Core JavaScript (tabler/tabler, 42k stars), Typescript Best Practices (bretzel-app/crumbs, 127 stars) and Compare Array Bundle Size (PostHog/posthog-js, 613 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/skills, which has 363 GitHub stars. The repository holds 79 skills in this directory. The repository was last updated on June 29, 2026.
Source: JetBrains/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.