{
  "schemaVersion": "1.0",
  "item": {
    "slug": "bun",
    "name": "Bun",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/bun",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/bun",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/bun",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=bun",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "bundler.md",
      "node-compat.md",
      "packages.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/bun"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/bun",
    "agentPageUrl": "https://openagent3.xyz/skills/bun/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bun/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bun/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "When to Use",
        "body": "User needs Bun expertise — fast JavaScript/TypeScript runtime, bundler, and package manager. Agent handles migration from Node, bundling for web/server, and troubleshooting compatibility issues."
      },
      {
        "title": "Quick Reference",
        "body": "TopicFileNode.js API differencesnode-compat.mdBundler configurationbundler.mdPackage managementpackages.md"
      },
      {
        "title": "Runtime Compatibility Traps",
        "body": "process.nextTick timing differs from Node — race conditions appear that didn't exist before, use queueMicrotask for cross-runtime code\n__dirname and __filename don't exist in ESM — use import.meta.dir and import.meta.file, forgetting causes ReferenceError\nfs.watch misses events that Node catches — file watcher scripts silently miss changes, add polling fallback\nchild_process.spawn options subset — some stdio configurations silently ignored, test subprocess code explicitly\ncluster module not supported — app crashes immediately if code uses cluster, must refactor to workers\nvm module partial — sandboxed code may escape or behave differently, security implications"
      },
      {
        "title": "Bundler Traps",
        "body": "--target=browser strips Node APIs silently — build succeeds, then runtime crashes on fs, path, etc.\n--splitting requires --format=esm — error message doesn't mention this, just fails cryptically\nEverything bundled by default — server code bundles node_modules, use --external:package for server deps\nTree-shaking assumes no side effects — code with side effects may be removed, add \"sideEffects\": false to package.json or lose code\nCSS imports work differently than webpack — url() paths resolve wrong, test in actual browser\n--minify mangles names aggressively — debugging production crashes is harder, use --minify-syntax for safer minification"
      },
      {
        "title": "Package Manager Traps",
        "body": "bun.lockb is binary format — can't diff, can't merge, Git conflicts require delete and regenerate\nPeer dependencies auto-installed unlike npm — version conflicts appear silently, different versions than npm would pick\nbun install resolves differently than npm — \"works on my machine\" when teammate uses npm\nWorkspaces link: protocol behaves differently — imports from workspace packages may fail\nbun add modifies package.json formatting — unwanted diff noise in commits\nNo npm audit equivalent — security vulnerabilities not surfaced automatically"
      },
      {
        "title": "TypeScript Traps",
        "body": "Bun runs TypeScript directly without tsc — type errors don't stop execution, bugs ship to production\nType-only imports may be kept — bundle size larger than expected\ntsconfig.json paths work differently — imports that worked in Node+tsc may fail\nDecorators experimental — behavior may differ from tsc, especially with legacy decorators"
      },
      {
        "title": "Testing Traps",
        "body": "bun test has different assertion API — tests written for Jest need adaptation\nMock timing differs — tests that pass in Jest may fail or flake\nNo native coverage like c8/nyc — need different tooling\nSnapshot format incompatible with Jest — can't share snapshots between runners"
      },
      {
        "title": "Hot Reload Traps",
        "body": "bun --hot doesn't reload native modules — changes require restart\nState preserved across reloads — bugs from stale state hard to debug\nWebSocket connections not re-established — clients appear connected but dead"
      }
    ],
    "body": "When to Use\n\nUser needs Bun expertise — fast JavaScript/TypeScript runtime, bundler, and package manager. Agent handles migration from Node, bundling for web/server, and troubleshooting compatibility issues.\n\nQuick Reference\nTopic\tFile\nNode.js API differences\tnode-compat.md\nBundler configuration\tbundler.md\nPackage management\tpackages.md\nRuntime Compatibility Traps\nprocess.nextTick timing differs from Node — race conditions appear that didn't exist before, use queueMicrotask for cross-runtime code\n__dirname and __filename don't exist in ESM — use import.meta.dir and import.meta.file, forgetting causes ReferenceError\nfs.watch misses events that Node catches — file watcher scripts silently miss changes, add polling fallback\nchild_process.spawn options subset — some stdio configurations silently ignored, test subprocess code explicitly\ncluster module not supported — app crashes immediately if code uses cluster, must refactor to workers\nvm module partial — sandboxed code may escape or behave differently, security implications\nBundler Traps\n--target=browser strips Node APIs silently — build succeeds, then runtime crashes on fs, path, etc.\n--splitting requires --format=esm — error message doesn't mention this, just fails cryptically\nEverything bundled by default — server code bundles node_modules, use --external:package for server deps\nTree-shaking assumes no side effects — code with side effects may be removed, add \"sideEffects\": false to package.json or lose code\nCSS imports work differently than webpack — url() paths resolve wrong, test in actual browser\n--minify mangles names aggressively — debugging production crashes is harder, use --minify-syntax for safer minification\nPackage Manager Traps\nbun.lockb is binary format — can't diff, can't merge, Git conflicts require delete and regenerate\nPeer dependencies auto-installed unlike npm — version conflicts appear silently, different versions than npm would pick\nbun install resolves differently than npm — \"works on my machine\" when teammate uses npm\nWorkspaces link: protocol behaves differently — imports from workspace packages may fail\nbun add modifies package.json formatting — unwanted diff noise in commits\nNo npm audit equivalent — security vulnerabilities not surfaced automatically\nTypeScript Traps\nBun runs TypeScript directly without tsc — type errors don't stop execution, bugs ship to production\nType-only imports may be kept — bundle size larger than expected\ntsconfig.json paths work differently — imports that worked in Node+tsc may fail\nDecorators experimental — behavior may differ from tsc, especially with legacy decorators\nTesting Traps\nbun test has different assertion API — tests written for Jest need adaptation\nMock timing differs — tests that pass in Jest may fail or flake\nNo native coverage like c8/nyc — need different tooling\nSnapshot format incompatible with Jest — can't share snapshots between runners\nHot Reload Traps\nbun --hot doesn't reload native modules — changes require restart\nState preserved across reloads — bugs from stale state hard to debug\nWebSocket connections not re-established — clients appear connected but dead"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/bun",
    "publisherUrl": "https://clawhub.ai/ivangdavila/bun",
    "owner": "ivangdavila",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/bun",
    "downloadUrl": "https://openagent3.xyz/downloads/bun",
    "agentUrl": "https://openagent3.xyz/skills/bun/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bun/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bun/agent.md"
  }
}