<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GXY Gomi</title>
    <description>The latest articles on DEV Community by GXY Gomi (@gxy_gomi_316f14abb66c18e9).</description>
    <link>https://dev.to/gxy_gomi_316f14abb66c18e9</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3560466%2Fcf8cd97b-6f8e-496c-9467-89f843fe6ec0.jpg</url>
      <title>DEV Community: GXY Gomi</title>
      <link>https://dev.to/gxy_gomi_316f14abb66c18e9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gxy_gomi_316f14abb66c18e9"/>
    <language>en</language>
    <item>
      <title>Addfox 0.2.0: Architecture Refactoring &amp; Dependency Slimming</title>
      <dc:creator>GXY Gomi</dc:creator>
      <pubDate>Sat, 30 May 2026 13:43:50 +0000</pubDate>
      <link>https://dev.to/gxy_gomi_316f14abb66c18e9/addfox-020-architecture-refactoring-dependency-slimming-3nek</link>
      <guid>https://dev.to/gxy_gomi_316f14abb66c18e9/addfox-020-architecture-refactoring-dependency-slimming-3nek</guid>
      <description>&lt;h2&gt;
  
  
  Addfox 0.2.0: Architecture Refactoring &amp;amp; Dependency Slimming
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6lle7000e3mdafemhhc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6lle7000e3mdafemhhc.png" alt="Addfox Architecture" width="800" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We are excited to share the latest progress on the &lt;a href="https://addfox.dev" rel="noopener noreferrer"&gt;Addfox&lt;/a&gt; framework (&lt;a href="https://github.com/addfox/addfox" rel="noopener noreferrer"&gt;https://github.com/addfox/addfox&lt;/a&gt;). Version &lt;code&gt;0.2.0&lt;/code&gt; is now officially released, featuring a significant architecture refactoring. This update focuses on three core goals: &lt;strong&gt;reducing dependencies&lt;/strong&gt;, &lt;strong&gt;replacing black-box tools with built-in alternatives&lt;/strong&gt;, and &lt;strong&gt;improving the developer experience&lt;/strong&gt; for browser extension development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dependency Slimming &amp;amp; Supply Chain Security
&lt;/h2&gt;

&lt;p&gt;One of the most impactful changes in this refactoring is the aggressive removal of third-party dependencies that carried large transitive trees. Every external dependency is a potential supply-chain risk—whether through deprecation, malicious takeover, or breaking changes in transitive packages. By replacing large third-party tools with focused, built-in utilities, we have drastically shrunk the attack surface for Addfox users.&lt;/p&gt;

&lt;p&gt;Here is what we removed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;web-ext&lt;/code&gt;&lt;/strong&gt; (~586 KB + &lt;strong&gt;26 transitive deps&lt;/strong&gt;) — completely removed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;chrome-launcher&lt;/code&gt;&lt;/strong&gt; — removed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;archiver&lt;/code&gt;&lt;/strong&gt; (~40 KB + &lt;strong&gt;9 transitive deps&lt;/strong&gt;) — replaced with a built-in zip alternative.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;cli-table3&lt;/code&gt;&lt;/strong&gt; (~46 KB + 1 transitive dep) — removed from &lt;code&gt;@addfox/core&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;chalk&lt;/code&gt;&lt;/strong&gt; (~44 KB), &lt;strong&gt;&lt;code&gt;kolorist&lt;/code&gt;&lt;/strong&gt;, &lt;strong&gt;&lt;code&gt;minimist&lt;/code&gt;&lt;/strong&gt; — removed from &lt;code&gt;create-addfox-app&lt;/code&gt; and replaced with lightweight built-in utilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result? The &lt;code&gt;pnpm-lock.yaml&lt;/code&gt; shrank by approximately &lt;strong&gt;2,156 lines&lt;/strong&gt;, meaning faster installs, smaller &lt;code&gt;node_modules&lt;/code&gt;, and fewer supply-chain risks for end users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Before vs. After: Third-Party Runtime Dependencies
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;0.1.1 Third-Party Deps&lt;/th&gt;
&lt;th&gt;Dev-Launch Third-Party Deps&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@addfox/cli&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;archiver&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(none)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@addfox/core&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;cli-table3&lt;/code&gt;, &lt;code&gt;jiti&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;jiti&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;create-addfox-app&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;chalk&lt;/code&gt;, &lt;code&gt;kolorist&lt;/code&gt;, &lt;code&gt;minimist&lt;/code&gt;, &lt;code&gt;prompts&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;code&gt;prompts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@addfox/rsbuild-plugin-extension-hmr&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;chrome-launcher&lt;/code&gt;, &lt;code&gt;web-ext&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(none)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@addfox/launcher&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;N/A (new package)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(none)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@addfox/common&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(none)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(none)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@addfox/pkg-manager&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(none)&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;(none)&lt;/em&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@addfox/utils&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@addfox/common&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@addfox/common&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rsbuild-plugin-extension-entry&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@addfox/core&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@addfox/core&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rsbuild-plugin-extension-manifest&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@addfox/core&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;@addfox/core&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;rsbuild-plugin-extension-monitor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;@addfox/common&lt;/code&gt;, &lt;code&gt;@addfox/core&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;@addfox/common&lt;/code&gt;, &lt;code&gt;@addfox/core&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;What remains?&lt;/strong&gt; Only two mature, tiny third-party runtime dependencies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;jiti&lt;/code&gt;&lt;/strong&gt; — a lightweight TypeScript config loader (~50 KB, zero transitive deps).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;prompts&lt;/code&gt;&lt;/strong&gt; — a minimal CLI prompt library (~30 KB, zero transitive deps).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything else is either internal (&lt;code&gt;@addfox/*&lt;/code&gt;) or handled by the build toolchain (&lt;code&gt;@rspack/core&lt;/code&gt; as a dev dependency).&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing &lt;code&gt;@addfox/launcher&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Previously, Firefox development relied on &lt;code&gt;web-ext run&lt;/code&gt;, a powerful tool with heavy dependencies. We have built &lt;strong&gt;&lt;code&gt;@addfox/launcher&lt;/code&gt;&lt;/strong&gt; from the ground up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero runtime dependencies&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Unified support for &lt;strong&gt;Chromium&lt;/strong&gt; (Chrome, Edge, etc.) and &lt;strong&gt;Gecko&lt;/strong&gt; (Firefox, Zen, etc.).&lt;/li&gt;
&lt;li&gt;Firefox HMR now uses the &lt;strong&gt;RDP protocol&lt;/strong&gt; to reload temporary add-ons directly, eliminating the need for &lt;code&gt;web-ext&lt;/code&gt;'s complex process management.&lt;/li&gt;
&lt;li&gt;Removed compatibility files such as &lt;code&gt;web-ext.d.ts&lt;/code&gt;, &lt;code&gt;web-ext-logger.d.ts&lt;/code&gt;, and &lt;code&gt;web-ext-console-stream-hook.ts&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the dev server faster to start, easier to debug, and fully under our control.&lt;/p&gt;

&lt;h2&gt;
  
  
  HMR Plugin Refactoring
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;@addfox/rsbuild-plugin-extension-hmr&lt;/code&gt; package saw the largest code reduction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;launcher.ts&lt;/code&gt; and &lt;code&gt;runner.ts&lt;/code&gt; were heavily simplified after dropping &lt;code&gt;web-ext&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The extension manager now handles profile directories and reload logic more cleanly.&lt;/li&gt;
&lt;li&gt;Keyboard reload and WebSocket server paths were streamlined.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, the workspace diff shows roughly &lt;strong&gt;50 files changed&lt;/strong&gt;, with a &lt;strong&gt;net reduction of ~1,641 lines&lt;/strong&gt; of code—less code to maintain, fewer edge cases, and better reliability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhanced Test Coverage
&lt;/h2&gt;

&lt;p&gt;We did not just delete code; we also invested in quality:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;rsbuild-plugin-extension-entry&lt;/code&gt;: +260 lines of tests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rsbuild-plugin-extension-hmr&lt;/code&gt;: +114 lines of tests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rsbuild-plugin-extension-manifest&lt;/code&gt;: +101 lines of tests&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;rsbuild-plugin-extension-monitor&lt;/code&gt;: +112 lines of tests&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Official Release
&lt;/h2&gt;

&lt;p&gt;The architecture refactoring and dependency slimming described above are now officially released as version &lt;code&gt;0.2.0&lt;/code&gt;. Upgrade today and thank you for using Addfox!&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Addfox: Build Better Browser Extensions for Developers and AI</title>
      <dc:creator>GXY Gomi</dc:creator>
      <pubDate>Sun, 22 Mar 2026 16:41:41 +0000</pubDate>
      <link>https://dev.to/gxy_gomi_316f14abb66c18e9/addfox-build-better-extensionsfor-developers-and-ai-30cc</link>
      <guid>https://dev.to/gxy_gomi_316f14abb66c18e9/addfox-build-better-extensionsfor-developers-and-ai-30cc</guid>
      <description>&lt;p&gt;🚀 A new open-source browser extension framework just dropped: &lt;strong&gt;Addfox (beta)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrey0fnbhow112hddthi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbrey0fnbhow112hddthi.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://addfox.dev/" rel="noopener noreferrer"&gt;https://addfox.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 github: &lt;a href="https://github.com/addfox/addfox" rel="noopener noreferrer"&gt;https://github.com/addfox/addfox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 npm: &lt;a href="https://www.npmjs.com/package/addfox" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/addfox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve built extensions recently, you’ve probably used tools like WXT or Plasmo.&lt;br&gt;&lt;br&gt;
They’ve pushed the ecosystem forward a lot — better DX, faster builds, less boilerplate.&lt;/p&gt;

&lt;p&gt;But I built something a bit different: &lt;strong&gt;Addfox("Addon + Fox").&lt;/strong&gt; I want to "Build Better Extensionsfor Developers and AI".&lt;/p&gt;

&lt;h1&gt;
  
  
  ⚡ What is Addfox?
&lt;/h1&gt;

&lt;p&gt;Addfox is a browser extension framework built on top of &lt;strong&gt;Rsbuild / Rstack&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ &lt;strong&gt;Rust-powered build performance&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;More predictable bundling behavior&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Content UI support. Built-in createContentUI method for easy integration of Iframe, ShadowDom, and native content.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Framework agnostic. Vanilla, Vue, React, Preact, Svelte, Solid — use what you like&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Zip on build. Build automatically outputs an extension zip package&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Enable terminal error output with --debug. Capture all extension errors without browser DevTools, so you can Ask AI directly in any editor&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Skills support for Agents&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;llms.txt and markdown metadata support&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;For more features, please visit the official website&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  📦 Current status
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Beta released&lt;/li&gt;
&lt;li&gt;Core workflow is stable&lt;/li&gt;
&lt;li&gt;Not supporting Safari right now&lt;/li&gt;
&lt;li&gt;Still iterating based on real-world usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve ever felt constrained by existing extension frameworks,&lt;br&gt;&lt;br&gt;
or just want something faster and more transparent, give it a try:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://addfox.dev/" rel="noopener noreferrer"&gt;https://addfox.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear how it compares to your current setup.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Supercharge Your Bun Workflow with bun-tasks</title>
      <dc:creator>GXY Gomi</dc:creator>
      <pubDate>Sun, 12 Oct 2025 11:35:30 +0000</pubDate>
      <link>https://dev.to/gxy_gomi_316f14abb66c18e9/supercharge-your-bun-workflow-with-bun-tasks-4lp2</link>
      <guid>https://dev.to/gxy_gomi_316f14abb66c18e9/supercharge-your-bun-workflow-with-bun-tasks-4lp2</guid>
      <description>&lt;h2&gt;
  
  
  Supercharge Your Bun Workflow with &lt;code&gt;bun-tasks&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;If you’ve ever wished Bun had a drop-in parallel runner like &lt;code&gt;concurrently&lt;/code&gt;, meet &lt;a href="https://www.npmjs.com/package/bun-tasks" rel="noopener noreferrer"&gt;&lt;code&gt;bun-tasks&lt;/code&gt;&lt;/a&gt;—a Bun-first CLI that streamlines multi-command orchestration without leaving the Bun ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why &lt;code&gt;bun-tasks&lt;/code&gt;?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bun-native:&lt;/strong&gt; Designed specifically for the Bun runtime—no Node shims, no compatibility hacks. Just run &lt;code&gt;bun --version&lt;/code&gt; to make sure Bun is ready and you’re good to go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple parallelism:&lt;/strong&gt; Launch any combination of scripts or executables in a single line using the intuitive &lt;code&gt;:::&lt;/code&gt; separator. Quoting, environment variables, and script expansions are handled for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart env handling:&lt;/strong&gt; Apply global flags with &lt;code&gt;--args/-a&lt;/code&gt;, then fine-tune each command with its own variables. Local overrides always win, so tweaking command-specific settings is effortless.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Package-script aware:&lt;/strong&gt; Referencing &lt;code&gt;dev&lt;/code&gt;, &lt;code&gt;serve&lt;/code&gt;, or another package script? &lt;code&gt;bun-tasks&lt;/code&gt; automatically expands it to &lt;code&gt;bun run &amp;lt;script&amp;gt;&lt;/code&gt;, keeping your commands DRY.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe programmatic API:&lt;/strong&gt; Import the exported &lt;code&gt;BunTasksCLI&lt;/code&gt; class for custom orchestration inside your own tools—nothing auto-executes on import.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;Install the CLI (and make sure Bun is installed first):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bun add &lt;span class="nt"&gt;-D&lt;/span&gt; bun-tasks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add a script that fans out to multiple tasks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"dev"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bun-tasks --args NODE_ENV=dev api ::: docs --args PORT=4000"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Define your commands in &lt;code&gt;package.json&lt;/code&gt; or point to executables directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"api"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bun run src/api.ts"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"docs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bun run docs:watch"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bun run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;bun-tasks&lt;/code&gt; merges your environment variables, launches both tasks in parallel, and prefixes their output—so you know exactly which command produced which logs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Usage
&lt;/h3&gt;

&lt;p&gt;Need fine-grained control? Import the CLI class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BunTasksCLI&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;bun-tasks&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cli&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BunTasksCLI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;cli&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;echo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;:::&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;echo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;stdoutPrefix&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`[job-&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;]`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;mirrorStderrToStdout&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Customize prefixes, control stream mirroring, or embed &lt;code&gt;bun-tasks&lt;/code&gt; inside a larger automation script.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built with Trust
&lt;/h3&gt;

&lt;p&gt;The codebase ships with full Bun test coverage (coverage display is fully supported on Linux/WSL; Windows coverage is still maturing). The CLI lives at &lt;code&gt;bin.ts&lt;/code&gt;, and build artifacts are carefully curated—no &lt;code&gt;.d.ts.map&lt;/code&gt; clutter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Acknowledgements
&lt;/h3&gt;

&lt;p&gt;Portions of this project were authored with assistance from GPT-5-Codex.&lt;/p&gt;




&lt;p&gt;Ready to simplify your Bun tooling? Dive into the docs and examples on GitHub:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/bun-tasks" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/bun-tasks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/gxy5202/bun-tasks" rel="noopener noreferrer"&gt;https://github.com/gxy5202/bun-tasks&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Give &lt;code&gt;bun-tasks&lt;/code&gt; a spin and keep your Bun workflow fast, clean, and parallel.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>bunjs</category>
    </item>
  </channel>
</rss>
