<?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: Mateusz Daniluk</title>
    <description>The latest articles on DEV Community by Mateusz Daniluk (@kulawydzik).</description>
    <link>https://dev.to/kulawydzik</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%2F3871880%2F997cf0d2-bd65-471c-b454-348d065ba394.jpeg</url>
      <title>DEV Community: Mateusz Daniluk</title>
      <link>https://dev.to/kulawydzik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kulawydzik"/>
    <language>en</language>
    <item>
      <title>I got tired of copy-pasting GitHub issues into AI chats. So I fixed it.</title>
      <dc:creator>Mateusz Daniluk</dc:creator>
      <pubDate>Fri, 10 Apr 2026 15:44:14 +0000</pubDate>
      <link>https://dev.to/kulawydzik/i-got-tired-of-copy-pasting-github-issues-into-ai-chats-so-i-fixed-it-1fdi</link>
      <guid>https://dev.to/kulawydzik/i-got-tired-of-copy-pasting-github-issues-into-ai-chats-so-i-fixed-it-1fdi</guid>
      <description>&lt;p&gt;Every developer I know has done this.&lt;/p&gt;

&lt;p&gt;You're debugging something and find a GitHub issue that looks exactly like your problem. 40 comments. Code snippets. Someone from the core team explaining the root cause. Gold.&lt;/p&gt;

&lt;p&gt;So you paste the URL into Claude or ChatGPT - and what the model gets is a mess.&lt;/p&gt;

&lt;p&gt;Navigation bars. Sidebar labels. Reaction emojis. Repo metadata. Random page chrome. The actual issue thread is buried somewhere in between.&lt;/p&gt;

&lt;p&gt;That means more tokens, more noise, worse answers.&lt;/p&gt;

&lt;p&gt;Sometimes it gets even worse. The model starts referencing unrelated UI text or picks up junk from the page layout, confidently reasoning about something that has nothing to do with your original issue. So now you're debugging the AI context itself before you can debug the real bug.&lt;/p&gt;

&lt;p&gt;Sure, you can manually copy the title, description, comments, and code blocks. But that's easily 2 minutes every time. Do that 5 times a day and you're losing 10+ minutes daily to pure workflow friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix
&lt;/h2&gt;

&lt;p&gt;So I built &lt;a href="https://github2md.com" rel="noopener noreferrer"&gt;github2md.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The idea is embarrassingly simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;github.com/facebook/react/issues/24502
↓
github2md.com/facebook/react/issues/24502
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. You get clean Markdown: title, description, all comments, labels, and code blocks, pulled directly from the GitHub API. No HTML noise. No sidebars. No irrelevant page chrome. Just clean context ready for AI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Markdown
&lt;/h2&gt;

&lt;p&gt;GitHub's REST API already returns issue bodies in Markdown. That means no scraping, no brittle HTML parsing, no CSS selector maintenance, no DOM cleanup.&lt;/p&gt;

&lt;p&gt;Markdown is also far more token-efficient for structured debugging context. Less noise means the model focuses on what actually matters: the bug, repro steps, maintainer comments, the fix.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real numbers
&lt;/h2&gt;

&lt;p&gt;I benchmarked the React issue &lt;code&gt;facebook/react#24502&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raw GitHub issue HTML:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-L&lt;/span&gt; &lt;span class="nt"&gt;-A&lt;/span&gt; &lt;span class="s2"&gt;"Mozilla/5.0"&lt;/span&gt; https://github.com/facebook/react/issues/24502
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;114,332 tokens&lt;/li&gt;
&lt;li&gt;313,657 characters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;github2md output:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-L&lt;/span&gt; &lt;span class="nt"&gt;-A&lt;/span&gt; &lt;span class="s2"&gt;"Mozilla/5.0"&lt;/span&gt; https://github2md.com/api/facebook/react/issues/24502
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;6,075 tokens&lt;/li&gt;
&lt;li&gt;24,452 characters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Token counts measured using the OpenAI Tokenizer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's a 94.7% reduction in tokens.&lt;/strong&gt; The same issue thread dropped from 114k noisy HTML tokens to just 6k clean Markdown. The difference between wasting your context window on GitHub's UI and giving the model only the debugging signal. Same issue. Same comments. Same code blocks. 18.8× fewer tokens.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger idea
&lt;/h2&gt;

&lt;p&gt;What really inspired this was &lt;a href="https://context7.com" rel="noopener noreferrer"&gt;Context7&lt;/a&gt;. Watching it fetch fresh docs as a subagent made something click:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Fetching context is a mechanical task, not a reasoning task.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A GitHub issue fetcher doesn't need an expensive reasoning model. It just needs to reliably pull the right text. That means this can run on something cheap like Claude Haiku, while the stronger model focuses only on reasoning.&lt;/p&gt;

&lt;p&gt;Cheap model fetches. Expensive model thinks. That split just makes sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  Also works inside Claude Code
&lt;/h2&gt;

&lt;p&gt;If you want zero browser tab switching, I also turned it into a Claude Code skill:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add ptu14/github2md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now Claude can fetch and convert GitHub issues directly inside your workflow.&lt;/p&gt;




&lt;p&gt;Small tool. Very specific problem. Huge reduction in token waste.&lt;/p&gt;

&lt;p&gt;If you regularly feed GitHub issues into AI, this makes the workflow dramatically smoother.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github2md.com" rel="noopener noreferrer"&gt;github2md.com&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>github</category>
    </item>
  </channel>
</rss>
