<?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: 飯野竜矢</title>
    <description>The latest articles on DEV Community by 飯野竜矢 (@tatsuya03).</description>
    <link>https://dev.to/tatsuya03</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%2F4115586%2Fc327dccd-fe80-403a-a370-f55462ee38f7.png</url>
      <title>DEV Community: 飯野竜矢</title>
      <link>https://dev.to/tatsuya03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tatsuya03"/>
    <language>en</language>
    <item>
      <title>Thunder Client collections to `.http` files without rewriting them by hand</title>
      <dc:creator>飯野竜矢</dc:creator>
      <pubDate>Tue, 08 Sep 2026 11:18:53 +0000</pubDate>
      <link>https://dev.to/tatsuya03/thunder-client-collections-to-http-files-without-rewriting-them-by-hand-2ci4</link>
      <guid>https://dev.to/tatsuya03/thunder-client-collections-to-http-files-without-rewriting-them-by-hand-2ci4</guid>
      <description>&lt;p&gt;Thunder Client moved &lt;strong&gt;git-sync&lt;/strong&gt; behind a paid plan. The usual advice in 2026 is still: export the collection, then rewrite every request as a &lt;code&gt;.http&lt;/code&gt; file for REST Client.&lt;/p&gt;

&lt;p&gt;That last step is the part people stall on. A 40-request collection is not “usually straightforward.”&lt;/p&gt;

&lt;p&gt;This post is the missing middle: export JSON → files on disk → commit → send with REST Client (or httpYac). You do not need another GUI client.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you are leaving
&lt;/h2&gt;

&lt;p&gt;Free Thunder Client still sends requests. What you lost is collections as files in the repo.&lt;/p&gt;

&lt;p&gt;REST Client wants the opposite: one (or many) &lt;code&gt;.http&lt;/code&gt; files next to the code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET {{host}}/me
Authorization: Bearer {{token}}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Those files diff. They review. They do not live in extension storage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Export the collection you already have
&lt;/h2&gt;

&lt;p&gt;In Thunder Client:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Right-click the collection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Export&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Pick &lt;strong&gt;Thunder Client JSON&lt;/strong&gt; (Postman JSON also works)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep that file out of git if it still has live tokens. The conversion step below replaces Authorization values with &lt;code&gt;{{placeholders}}&lt;/code&gt; by default.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the files should look like
&lt;/h2&gt;

&lt;p&gt;A tiny Thunder collection with “Me” (GET + bearer) and “Login” (POST JSON) becomes two files:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;users/me.http&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;# @name me
GET {{host}}/me
Authorization: {{authorization}}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;login.http&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;# @name login
POST {{host}}/login?nudge=1

{"user":"a"}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Folder names follow the collection. Existing &lt;code&gt;.http&lt;/code&gt; files in that folder should be left alone — a converter that overwrites handmade edits is worse than no converter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Do it in VS Code
&lt;/h2&gt;

&lt;p&gt;Install &lt;a href="https://marketplace.visualstudio.com/items?itemName=buildnestlab.httpcopy" rel="noopener noreferrer"&gt;HttpCopy&lt;/a&gt; (I am the publisher; say so if you reply).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Drop the export &lt;code&gt;.json&lt;/code&gt; into the workspace&lt;/li&gt;
&lt;li&gt;Right-click it → &lt;strong&gt;HttpCopy: Convert Collection File&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Open &lt;code&gt;httpcopy-out/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Install REST Client (or any &lt;code&gt;.http&lt;/code&gt; runner) and send&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Free converts the &lt;strong&gt;first 12 requests&lt;/strong&gt; in a run so you can see the files are real before you pay. Pro is &lt;strong&gt;$9 once&lt;/strong&gt;, not a new monthly client.&lt;/p&gt;

&lt;p&gt;HttpCopy does not send HTTP. It does not upload the collection. It does not run pre-request scripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you only have Postman
&lt;/h2&gt;

&lt;p&gt;A free browser converter (Karve) already covers Postman → &lt;code&gt;.http&lt;/code&gt;. Do not pay $9 for Postman-only if that tool is enough.&lt;/p&gt;

&lt;p&gt;HttpCopy is for the Thunder Client export sitting on disk, plus Postman in the same editor pass, with secrets redacted and no overwrite.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you would rather run a script
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;thunder-client-to-rest-client&lt;/code&gt; on GitHub still exists. It expects the older &lt;code&gt;thunder-tests&lt;/code&gt; layout and JSON bodies only. Clone, copy, &lt;code&gt;node .&lt;/code&gt;, then move files. Fine if you like that.&lt;/p&gt;

&lt;p&gt;The in-editor path is the same conversion without the clone step.&lt;/p&gt;

&lt;h2&gt;
  
  
  After the files exist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Commit &lt;code&gt;httpcopy-out/&lt;/code&gt; (or move the &lt;code&gt;.http&lt;/code&gt; files where you want them)&lt;/li&gt;
&lt;li&gt;Put real tokens in a local env / REST Client environment, not in the files&lt;/li&gt;
&lt;li&gt;Delete the JSON export if it still has secrets&lt;/li&gt;
&lt;li&gt;Uninstall Thunder Client when you are ready — not before you have opened one converted request and seen it send&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Honest limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Multipart file bodies are not invented&lt;/li&gt;
&lt;li&gt;Pre-request scripts are not replayed&lt;/li&gt;
&lt;li&gt;This does not replace Thunder Client as a GUI&lt;/li&gt;
&lt;li&gt;April 2026 writeups that say “no automated converter exists” are out of date for Thunder JSON → &lt;code&gt;.http&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If a converted file is wrong for your collection, comment with the request shape (no tokens). That is more useful than a star.&lt;/p&gt;

&lt;p&gt;Listing: &lt;a href="https://marketplace.visualstudio.com/items?itemName=buildnestlab.httpcopy" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=buildnestlab.httpcopy&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>thunderclient</category>
      <category>http</category>
      <category>rest</category>
    </item>
  </channel>
</rss>
