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: [
"src/**/*.ts", // Respects .gitignore
"../shared/utils/**/*", // 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: "src/**/*",
prompt: "./prompts/review.md", // load from file
},
analyze: {
include: "lib/**/*",
prompt: "Analyze this code for performance issues.", // 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: "./packages/app",
bundles: {
app: "src/**/*", // 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: "gdrive",
clientId: "...",
clientSecret: "...",
exclude: ["local", "debug"],
}"><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: [
"docs/**/*", // respects .gitignore
"+docs/**/*.local.md", // 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 "srcpack";
export default defineConfig({
bundles: {
web: "apps/web/**/*",
api: ["apps/api/**/*", "!**/*.test.ts"],
},
});"><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