<?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: OxainZ</title>
    <description>The latest articles on DEV Community by OxainZ (@oxainz).</description>
    <link>https://dev.to/oxainz</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3840075%2Fd4a028f9-3278-4c92-8ee0-f0c4d6eac415.png</url>
      <title>DEV Community: OxainZ</title>
      <link>https://dev.to/oxainz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oxainz"/>
    <language>en</language>
    <item>
      <title>Pasting a whole repo into ChatGPT or Claude from VS Code: Send to AI vs Repomix vs gitingest</title>
      <dc:creator>OxainZ</dc:creator>
      <pubDate>Sun, 01 Nov 2026 23:31:21 +0000</pubDate>
      <link>https://dev.to/oxainz/pasting-a-whole-repo-into-chatgpt-or-claude-from-vs-code-send-to-ai-vs-repomix-vs-gitingest-1b9e</link>
      <guid>https://dev.to/oxainz/pasting-a-whole-repo-into-chatgpt-or-claude-from-vs-code-send-to-ai-vs-repomix-vs-gitingest-1b9e</guid>
      <description>&lt;p&gt;Every AI chat has a bigger context window than it did a year ago, and every developer I know still copies files into the chat one at a time. The tools that fix this fall into two groups: command-line bundlers that turn a repository into one text file, and editor extensions that do the same from inside VS Code. I maintain one of the latter, so take the comparison with that in mind, and check the numbers yourself; every claim below has a link.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed in 2026, and why it matters for all three tools
&lt;/h2&gt;

&lt;p&gt;The limits moved, and the chat apps changed how they handle big pastes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Context windows, per plan.&lt;/strong&gt; These are total windows, input plus output. ChatGPT gives Free users 27K tokens on instant models, Go/Plus/Business 54K on instant and 256K on thinking models, and Pro 128K/400K (&lt;a href="https://chatgpt.com/pricing" rel="noopener noreferrer"&gt;chatgpt.com/pricing&lt;/a&gt;, tabulated by &lt;a href="https://www.toolcolumn.com/learn/chatgpt-context-window-by-plan" rel="noopener noreferrer"&gt;ToolColumn&lt;/a&gt;). In the claude.ai chat app, paid plans give 1M to Fable 5.1, Opus 5/5.5, Sonnet 5/5.5 and Haiku 5.5, 500K to Fable 5 and the 4.6 to 4.8 generation, and 200K to older models (&lt;a href="https://support.claude.com/en/articles/8606394-how-large-is-the-context-window-on-paid-claude-plans" rel="noopener noreferrer"&gt;Claude help&lt;/a&gt;; Claude Code gets 1M on all of them). Gemini without a plan is 32K, AI Plus 128K, AI Pro and Ultra 1M (&lt;a href="https://support.google.com/gemini/answer/16275805" rel="noopener noreferrer"&gt;Google help&lt;/a&gt;). A tool that still assumes "8K for ChatGPT Free" trims far more than it needs to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Big pastes become attachments.&lt;/strong&gt; ChatGPT started converting pastes over 5,000 characters into a file attachment for Plus, Pro and Business in March 2026 (&lt;a href="https://www.notebookcheck.net/ChatGPT-now-turns-long-pastes-into-attachments-for-Plus-Pro-and-Business-users.1259699.0.html" rel="noopener noreferrer"&gt;release note coverage&lt;/a&gt;); since June it does it on every plan, with the threshold raised to 10,000 characters (&lt;a href="https://help.openai.com/en/articles/6825453-chatgpt-release-notes" rel="noopener noreferrer"&gt;ChatGPT release notes&lt;/a&gt;). Claude's web app does the same for large pastes (&lt;a href="https://simonwillison.net/2026/Jun/2/pasted-file-editor/" rel="noopener noreferrer"&gt;Simon Willison&lt;/a&gt;); Anthropic does not publish the cutoff, and user tests put it a little under 4,000 characters. So whichever tool you use, a bundle arrives as a file. That is fine, the model reads all of it, but it means "save as .txt and attach" and "paste" are now the same thing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code tokenises differently on every model.&lt;/strong&gt; The 4-characters-per-token rule of thumb is roughly right for OpenAI's tokenizer on code, and badly wrong for Claude. One measurement of the same TypeScript file gives about 4.2 characters per token on GPT, 3.7 on Gemini, and 2.4 on the tokenizer that Claude 4.7 and later use (&lt;a href="https://playcode.io/blog/real-price-of-frontier-models" rel="noopener noreferrer"&gt;playcode.io&lt;/a&gt;). Anthropic's own docs say that newer tokenizer produces roughly 30 percent more tokens than earlier Claude models for the same text (&lt;a href="https://platform.claude.com/docs/en/build-with-claude/token-counting" rel="noopener noreferrer"&gt;Anthropic token counting&lt;/a&gt;). So a tool that estimates at chars/4 is close for ChatGPT and about 40 percent low for Claude, and a bundle that "fits" by that estimate may not.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three tools
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Repomix&lt;/th&gt;
&lt;th&gt;gitingest&lt;/th&gt;
&lt;th&gt;Send to AI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Runs&lt;/td&gt;
&lt;td&gt;CLI, MCP server, browser extension, web app, GitHub Action&lt;/td&gt;
&lt;td&gt;web app, CLI and Python package, browser extension&lt;/td&gt;
&lt;td&gt;VS Code sidebar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output&lt;/td&gt;
&lt;td&gt;XML, Markdown, JSON, plain&lt;/td&gt;
&lt;td&gt;plain text digest&lt;/td&gt;
&lt;td&gt;Standard, Claude XML, Compact, Minimal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Picks files by&lt;/td&gt;
&lt;td&gt;include/exclude globs, .gitignore&lt;/td&gt;
&lt;td&gt;include/exclude patterns, file-size cap, .gitignore&lt;/td&gt;
&lt;td&gt;tick boxes, Open Tabs, Git Changes, relevance to your prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Token count&lt;/td&gt;
&lt;td&gt;yes, o200k&lt;/td&gt;
&lt;td&gt;yes, o200k&lt;/td&gt;
&lt;td&gt;yes, 3.3 chars/token, between GPT and Claude&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bundles the Problems panel&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes, "Bundle Errors"&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Applies the AI's reply back&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes, with diff preview and undo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Price&lt;/td&gt;
&lt;td&gt;free, MIT&lt;/td&gt;
&lt;td&gt;free, MIT&lt;/td&gt;
&lt;td&gt;free tier; Pro $14.99 once, Team $39&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stars/installs (Nov 2026)&lt;/td&gt;
&lt;td&gt;29k stars&lt;/td&gt;
&lt;td&gt;16k stars&lt;/td&gt;
&lt;td&gt;about 200 installs, new&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Repomix (&lt;a href="https://github.com/yamadashy/repomix" rel="noopener noreferrer"&gt;yamadashy/repomix&lt;/a&gt;) is the most complete bundler: a mature CLI with an MCP server so agents can call it, a browser extension, a web app at repomix.com, a GitHub Action, and a long list of output options. If you want bundles in CI, or you drive an agent framework, it is the right tool. gitingest (&lt;a href="https://github.com/coderamp-labs/gitingest" rel="noopener noreferrer"&gt;coderamp-labs/gitingest&lt;/a&gt;) is the fastest way to get a digest of a &lt;em&gt;public&lt;/em&gt; repository without installing anything: swap &lt;code&gt;hub&lt;/code&gt; for &lt;code&gt;ingest&lt;/code&gt; in any github.com URL. Neither touches your editor, and neither knows what you are working on right now.&lt;/p&gt;

&lt;p&gt;Send to AI (&lt;a href="https://marketplace.visualstudio.com/items?itemName=oxainz.sendtoai" rel="noopener noreferrer"&gt;Marketplace&lt;/a&gt;, &lt;a href="https://open-vsx.org/extension/oxainz/sendtoai" rel="noopener noreferrer"&gt;Open VSX&lt;/a&gt;) is built for the daily loop inside the editor. You tick files, type what you want, and the bundle lands on the clipboard with a tree and a token count. Two things the CLIs cannot do because they do not run inside VS Code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bundle Errors&lt;/strong&gt; reads the Problems panel, collects every file with an error or warning plus the exact messages, and writes a prompt that says "fix these". One paste instead of an afternoon.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply AI Reply&lt;/strong&gt; parses the chat's answer, whether it came back as full files in fenced blocks or as SEARCH/REPLACE blocks, shows a diff preview, and writes the edits as one undoable change.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz32p1pfh9yy9hwlr63mc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz32p1pfh9yy9hwlr63mc.gif" alt="Send to AI demo" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The half nobody automates: getting the answer back into the files
&lt;/h2&gt;

&lt;p&gt;Bundling is the easy half. The hard half is applying what the model says. The agent tools solved this with their own edit formats: aider uses SEARCH/REPLACE blocks, and on its polyglot leaderboard GPT-5 at high reasoning produced a well-formed edit 91.6% of the time, Gemini 2.5 Pro 99.6 to 100% using the variant with the path inside the fence, and Claude Opus 4 97.3 to 98.7% (&lt;a href="https://aider.chat/docs/leaderboards/" rel="noopener noreferrer"&gt;aider leaderboards&lt;/a&gt;). Line-numbered diffs are the least reliable because models miscount; OpenAI's own guide says its &lt;code&gt;apply_patch&lt;/code&gt; format "does not use line numbers, as the context is enough to uniquely identify code" (&lt;a href="https://developers.openai.com/cookbook/examples/gpt4-1_prompting_guide" rel="noopener noreferrer"&gt;GPT-4.1 prompting guide&lt;/a&gt;, explained in depth in &lt;a href="https://codex.danielvaughan.com/2026/03/31/codex-cli-apply-patch-v4a-diff-format/" rel="noopener noreferrer"&gt;this V4A write-up&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Send to AI accepts both shapes. Full-file blocks are parsed from the fence line, the line above it, or a first-line comment. SEARCH/REPLACE blocks are matched exactly first, then with whitespace and line-ending differences ignored, and anything ambiguous is reported rather than guessed. The bundle itself ends with a short instruction asking the model to reply in one of those two shapes, which in practice is what makes the apply step reliable. If a match fails, you see it in the file picker before anything is written.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to use which
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Repomix&lt;/strong&gt; when you want bundles in scripts, CI or an agent pipeline, or you need XML for a specific prompt format.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;gitingest&lt;/strong&gt; when the code is public and you just need a quick digest link.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Send to AI&lt;/strong&gt; when you are in VS Code, on a chat plan with no API access, and you want the round trip: errors in, fixes out, applied with undo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Honest limits of Send to AI
&lt;/h2&gt;

&lt;p&gt;The free tier bundles the 50 most relevant files for your prompt rather than the whole project; Pro ($14.99 once, five machines, 30-day refund) removes the cap and adds git-diff mode, presets and fit-to-window trimming. A Team pack ($39 once) covers five developers on one key. There is no agent mode and no API integration by design: it is for people who paste into a chat. And it only runs in VS Code and its forks.&lt;/p&gt;

&lt;p&gt;If you try it and something breaks, the &lt;a href="https://github.com/OxainZ/sendtoai-vscode/issues" rel="noopener noreferrer"&gt;issues page&lt;/a&gt; is where I look first.&lt;br&gt;
.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>vscode</category>
      <category>chatgpt</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built a VS Code extension that gives any AI your full codebase in one click</title>
      <dc:creator>OxainZ</dc:creator>
      <pubDate>Mon, 23 Mar 2026 15:20:42 +0000</pubDate>
      <link>https://dev.to/oxainz/i-built-a-vs-code-extension-that-gives-any-ai-your-full-codebase-in-one-click-4fjh</link>
      <guid>https://dev.to/oxainz/i-built-a-vs-code-extension-that-gives-any-ai-your-full-codebase-in-one-click-4fjh</guid>
      <description>&lt;p&gt;Every time I started a new Claude session I was manually re-uploading the same files over and over. Hit the 20-file limit constantly. Lost context mid-build. Got fed up.&lt;br&gt;
Built a VS Code extension called SendToAI. One click bundles your whole project into a single clipboard paste — paste it into Claude, ChatGPT, Gemini, whatever and it instantly has your full codebase.&lt;br&gt;
The token stuff is actually useful — it shows you exactly how much you’re sending before you send it:&lt;br&gt;
    ∙ Live token count as you pick files&lt;br&gt;
    ∙ Cost estimate per model (Haiku vs Sonnet vs Opus) so you’re not burning money blindly&lt;br&gt;
    ∙ Only 6% of Claude’s 200k context window for a typical project&lt;br&gt;
    ∙ Compact mode strips comments and saves ~20% tokens automatically&lt;br&gt;
Also has project notes that persist between sessions — your stack, architecture decisions, whatever — so Claude always has context without you typing it again.&lt;br&gt;
The meta moment: hit my context limit building the extension itself, used it to bundle its own source, pasted into a new chat and kept going. Didn’t lose a single thing.&lt;br&gt;
Free to install — search SendToAI in VS Code or here:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=OxainZ.sendtoai" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=OxainZ.sendtoai&lt;/a&gt;&lt;br&gt;
GitHub:&lt;br&gt;
&lt;a href="https://github.com/OxainZ/sendtoai-vscode" rel="noopener noreferrer"&gt;https://github.com/OxainZ/sendtoai-vscode&lt;/a&gt;&lt;br&gt;
Would love feedback from anyone who tries it.​​​​​​​​​​​​​​​​&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>vscode</category>
      <category>opensource</category>
      <category>developers</category>
    </item>
  </channel>
</rss>
