tag:github.com,2008:https://github.com/kriasoft/srcpack/releases Release notes from srcpack 2026-01-30T16:06:41Z tag:github.com,2008:Repository/1136520392/v0.1.15 2026-01-30T16:08:54Z v0.1.15 <h3>External Pattern Support</h3> <p>Patterns referencing parent directories (<code>../</code>) now skip <code>.gitignore</code> filtering since it only applies to files within the working directory.</p> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="// srcpack.config.ts export default { bundles: { context: { include: [ &quot;src/**/*.ts&quot;, // Respects .gitignore &quot;../shared/utils/**/*&quot;, // Skips .gitignore (external) ], }, }, };"><pre><span class="pl-c">// srcpack.config.ts</span> <span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-kos">{</span> <span class="pl-c1">bundles</span>: <span class="pl-kos">{</span> <span class="pl-c1">context</span>: <span class="pl-kos">{</span> <span class="pl-c1">include</span>: <span class="pl-kos">[</span> <span class="pl-s">"src/**/*.ts"</span><span class="pl-kos">,</span> <span class="pl-c">// Respects .gitignore</span> <span class="pl-s">"../shared/utils/**/*"</span><span class="pl-kos">,</span> <span class="pl-c">// Skips .gitignore (external)</span> <span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">;</span></pre></div> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/kriasoft/srcpack/compare/v0.1.14...v0.1.15"><tt>v0.1.14...v0.1.15</tt></a></p> koistya tag:github.com,2008:Repository/1136520392/v0.1.14 2026-01-24T21:02:59Z v0.1.14 <h2>What's Changed</h2> <ul> <li>ci: add npm publish workflow by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/koistya/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/koistya">@koistya</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3851897185" data-permission-text="Title is private" data-url="https://github.com/kriasoft/srcpack/issues/7" data-hovercard-type="pull_request" data-hovercard-url="/kriasoft/srcpack/pull/7/hovercard" href="https://github.com/kriasoft/srcpack/pull/7">#7</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/kriasoft/srcpack/compare/v0.1.13...v0.1.14"><tt>v0.1.13...v0.1.14</tt></a></p> koistya tag:github.com,2008:Repository/1136520392/v0.1.13 2026-01-24T10:02:50Z v0.1.13 <p>fix: resolve absolute outDir paths correctly (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3850795680" data-permission-text="Title is private" data-url="https://github.com/kriasoft/srcpack/issues/6" data-hovercard-type="pull_request" data-hovercard-url="/kriasoft/srcpack/pull/6/hovercard" href="https://github.com/kriasoft/srcpack/pull/6">#6</a>)</p> koistya tag:github.com,2008:Repository/1136520392/v0.1.10 2026-01-24T09:16:56Z v0.1.10 <h2>New Features</h2> <h3>Prompt Option</h3> <p>Prepend instructions or file content to bundles for LLM context:</p> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="export default defineConfig({ bundles: { review: { include: &quot;src/**/*&quot;, prompt: &quot;./prompts/review.md&quot;, // load from file }, analyze: { include: &quot;lib/**/*&quot;, prompt: &quot;Analyze this code for performance issues.&quot;, // inline }, }, });"><pre><span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-en">defineConfig</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">bundles</span>: <span class="pl-kos">{</span> <span class="pl-c1">review</span>: <span class="pl-kos">{</span> <span class="pl-c1">include</span>: <span class="pl-s">"src/**/*"</span><span class="pl-kos">,</span> <span class="pl-c1">prompt</span>: <span class="pl-s">"./prompts/review.md"</span><span class="pl-kos">,</span> <span class="pl-c">// load from file</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-c1">analyze</span>: <span class="pl-kos">{</span> <span class="pl-c1">include</span>: <span class="pl-s">"lib/**/*"</span><span class="pl-kos">,</span> <span class="pl-c1">prompt</span>: <span class="pl-s">"Analyze this code for performance issues."</span><span class="pl-kos">,</span> <span class="pl-c">// inline</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <h3>Root Option</h3> <p>Bundle from a subdirectory (useful for monorepos):</p> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="export default defineConfig({ root: &quot;./packages/app&quot;, bundles: { app: &quot;src/**/*&quot;, // matches packages/app/src/**/* }, });"><pre><span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-en">defineConfig</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">root</span>: <span class="pl-s">"./packages/app"</span><span class="pl-kos">,</span> <span class="pl-c1">bundles</span>: <span class="pl-kos">{</span> <span class="pl-c1">app</span>: <span class="pl-s">"src/**/*"</span><span class="pl-kos">,</span> <span class="pl-c">// matches packages/app/src/**/*</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> <h3>emptyOutDir Option</h3> <p>Control output directory cleaning:</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npx srcpack --emptyOutDir # always empty npx srcpack --no-emptyOutDir # never empty"><pre>npx srcpack --emptyOutDir <span class="pl-c"><span class="pl-c">#</span> always empty</span> npx srcpack --no-emptyOutDir <span class="pl-c"><span class="pl-c">#</span> never empty</span></pre></div> <p>Auto-enabled when <code>outDir</code> is inside project root; shows warning otherwise.</p> <h3>Upload Exclude</h3> <p>Skip specific bundles from upload:</p> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="upload: { provider: &quot;gdrive&quot;, clientId: &quot;...&quot;, clientSecret: &quot;...&quot;, exclude: [&quot;local&quot;, &quot;debug&quot;], }"><pre>upload: <span class="pl-kos">{</span> <span class="pl-c1">provider</span>: <span class="pl-s">"gdrive"</span><span class="pl-kos">,</span> <span class="pl-c1">clientId</span>: <span class="pl-s">"..."</span><span class="pl-kos">,</span> <span class="pl-c1">clientSecret</span>: <span class="pl-s">"..."</span><span class="pl-kos">,</span> <span class="pl-c1">exclude</span>: <span class="pl-kos">[</span><span class="pl-s">"local"</span><span class="pl-kos">,</span> <span class="pl-s">"debug"</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-kos">}</span></pre></div> <h2>Bug Fixes</h2> <ul> <li>Fix gitignore negation pattern support (e.g., <code>!build/keep.txt</code> now works correctly)</li> <li>Optimize gitignore handling by passing patterns to fast-glob for better performance</li> </ul> <h2>Other Changes</h2> <ul> <li>Add GitHub Actions CI workflow for automated testing</li> <li>Update dependencies (ora, prettier, vue, rollup)</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/kriasoft/srcpack/compare/v0.1.6...v0.1.10"><tt>v0.1.6...v0.1.10</tt></a></p> koistya tag:github.com,2008:Repository/1136520392/list 2026-01-24T09:14:13Z list <p>feat: add prompt, root, emptyOutDir options and CI workflow (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3850692129" data-permission-text="Title is private" data-url="https://github.com/kriasoft/srcpack/issues/5" data-hovercard-type="pull_request" data-hovercard-url="/kriasoft/srcpack/pull/5/hovercard" href="https://github.com/kriasoft/srcpack/pull/5">#5</a>)</p> koistya tag:github.com,2008:Repository/1136520392/v0.1.6 2026-01-18T12:21:38Z v0.1.6 <h2>Features</h2> <ul> <li><strong>Force-include patterns</strong> — Use <code>+</code> prefix to include gitignored files (e.g., <code>+docs/**/*.local.md</code>)</li> <li><strong>Node.js compatibility</strong> — Works with both Node.js and Bun runtimes</li> </ul> <h2>Example</h2> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="bundles: { docs: [ &quot;docs/**/*&quot;, // respects .gitignore &quot;+docs/**/*.local.md&quot;, // force-include local notes ], }"><pre>bundles: <span class="pl-kos">{</span> <span class="pl-c1">docs</span>: <span class="pl-kos">[</span> <span class="pl-s">"docs/**/*"</span><span class="pl-kos">,</span> <span class="pl-c">// respects .gitignore</span> <span class="pl-s">"+docs/**/*.local.md"</span><span class="pl-kos">,</span> <span class="pl-c">// force-include local notes</span> <span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-kos">}</span></pre></div> <h2>Other Changes</h2> <ul> <li>Add comprehensive documentation site at <a href="https://kriasoft.com/srcpack/" rel="nofollow">kriasoft.com/srcpack</a></li> <li>Add <code>llms.txt</code> and <code>llms-full.txt</code> for LLM discoverability</li> <li>Add community section with Discord link</li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/kriasoft/srcpack/compare/v0.1.3...v0.1.6"><tt>v0.1.3...v0.1.6</tt></a></p> koistya tag:github.com,2008:Repository/1136520392/v0.1.5 2026-01-18T12:16:33Z v0.1.5: feat: add force-include patterns and Node.js compatibility <ul> <li>Support <code>+</code> prefix to bypass .gitignore (e.g., <code>+docs/**/*.local.md</code>)</li> <li>Migrate from Bun APIs to Node.js standard APIs for broader runtime support</li> <li>Add community section and social links</li> </ul> koistya tag:github.com,2008:Repository/1136520392/v0.1.3 2026-01-17T22:32:21Z v0.1.3 <p>Initial release of srcpack — a zero-config CLI for bundling code into LLM-optimized context files.</p> <h3>Features</h3> <ul> <li><strong>Semantic bundles</strong> — Split by domain (web, api, db) not arbitrary size</li> <li><strong>Indexed output</strong> — File list with line numbers for easy LLM reference</li> <li><strong>Safe defaults</strong> — Respects <code>.gitignore</code>, excludes binaries and secrets</li> <li><strong>Zero config</strong> — Works out of the box, optional <code>srcpack.config.ts</code> for customization</li> <li><strong>Google Drive upload</strong> — Sync bundles to Drive for use with ChatGPT, Gemini, etc.</li> </ul> <h3>Usage</h3> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="npx srcpack # Bundle all, upload if configured npx srcpack web api # Bundle specific bundles only npx srcpack init # Interactive config setup npx srcpack login # Authenticate with Google Drive"><pre>npx srcpack <span class="pl-c"><span class="pl-c">#</span> Bundle all, upload if configured</span> npx srcpack web api <span class="pl-c"><span class="pl-c">#</span> Bundle specific bundles only</span> npx srcpack init <span class="pl-c"><span class="pl-c">#</span> Interactive config setup</span> npx srcpack login <span class="pl-c"><span class="pl-c">#</span> Authenticate with Google Drive</span></pre></div> <h3>Configuration</h3> <div class="highlight highlight-source-ts notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import { defineConfig } from &quot;srcpack&quot;; export default defineConfig({ bundles: { web: &quot;apps/web/**/*&quot;, api: [&quot;apps/api/**/*&quot;, &quot;!**/*.test.ts&quot;], }, });"><pre><span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">defineConfig</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"srcpack"</span><span class="pl-kos">;</span> <span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-en">defineConfig</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">bundles</span>: <span class="pl-kos">{</span> <span class="pl-c1">web</span>: <span class="pl-s">"apps/web/**/*"</span><span class="pl-kos">,</span> <span class="pl-c1">api</span>: <span class="pl-kos">[</span><span class="pl-s">"apps/api/**/*"</span><span class="pl-kos">,</span> <span class="pl-s">"!**/*.test.ts"</span><span class="pl-kos">]</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">,</span> <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div> koistya