Already have a Thunder Client collection export and want requests as files in Git? This guide takes you from that JSON to separate .http files, then explains the settings you still need before sending a request.
I publish HttpCopy, the VS Code converter used below. It converts the first 12 requests per run for free. Pro removes that limit for $9 once. Try the output before buying.
1. Start with an exported collection
Use a Thunder Client JSON collection export, or a Postman Collection v2.x export. Keep a backup outside Git. Do not remove your original client yet.
Thunder Client documents right-clicking a collection and choosing Export. Availability can depend on your installed version and plan; check the official export documentation. HttpCopy needs the exported JSON. It does not unlock another extension's paid features or recover its internal storage.
2. Convert in VS Code
- Install Thunder Client to .http (HttpCopy) from the Marketplace.
- Open your exported JSON in the workspace.
- Right-click it and choose HttpCopy: Convert Collection File.
- Inspect the generated files in
httpcopy-out/.
The following example is from a small synthetic collection, not a customer's data. Its two requests become users/me.http and login.http.
Relevant generated lines in users/me.http:
# @name me
GET {{host}}/me
Authorization: {{authorization}}
Relevant generated lines in login.http:
# @name login
POST {{host}}/login?nudge=1
{"user":"a"}
That is the conversion output, not a claim that these requests are ready to send. In particular, host and authorization still need values.
3. Configure and check one request before migrating everything
For the free REST Client extension, you can adapt the first file as follows:
@host = https://api.example.invalid
# @name me
GET {{host}}/me
Authorization: Bearer {{$processEnv HTTPCOPY_API_TOKEN}}
Replace the example host with your own test API, and make the token available in the environment of the VS Code process. The .invalid example domain deliberately does not point to a working service. Only send requests to systems you are authorized to use.
The generated {{authorization}} placeholder represents the whole header value. If you supply that variable instead, include the authentication scheme, such as Bearer, as well as the token.
For the JSON POST above, add Content-Type: application/json before the blank line if your API requires it. HttpCopy 0.1.2 preserves the supplied headers; it does not infer this header for that sample.
Compare the URL, headers and body against your original request. Start with a harmless GET. Once you have verified the converted requests and reviewed their contents, commit the files you want to keep.
What “redaction” covers
By default, HttpCopy replaces recognized sensitive header values and supported authentication values with placeholders. It runs locally and does not upload the collection or send the requests.
It is not a complete secret scanner. Secrets in URLs, query strings, request bodies or collection variables can remain in the output. Review those fields before committing. Do not post real tokens, customer data or complete private collections in comments.
Other limits: pre-request scripts are not executed, multipart file bodies are not recreated, and converting a collection does not prove that the resulting requests behave identically. Existing output files are skipped instead of overwritten; use a new output folder when checking a different conversion.
When the $9 version is useful
Use the free conversion to check your request shapes first. If you have a larger exported collection and want it converted in one run, HttpCopy Pro costs $9 USD once.
After payment, follow the receipt-email instructions on Stripe's confirmation page. License delivery is currently manual, not instant. Paste the delivered key using HttpCopy: Enter License Key, then rerun the conversion. Files already present are left untouched.
For a few requests, writing .http files manually may be enough. HttpCopy is an option for saving that repetitive conversion work, not a replacement HTTP client.
If you try it, which step stops you: obtaining an export, converting it, configuring the first request, or deciding whether Pro is useful? A description with made-up values is enough; no private collection is needed.
Top comments (0)