Export and copy

Four ways out of the browser, all of them already masked. What the file says about its own scope, and the one thing the export dialog refuses to claim.

Updated

Get evidence out of the browser and into a ticket in one step, already masked: as a HAR or JSON file, or as text or a cURL command on the clipboard.

Select, export, and a confirmation that says only what the page can know.

Export a file

  1. Select the rows you want, filter the table down to them, or leave both alone for everything.
  2. Click Export in the toolbar; its count is the number of requests captured.
  3. Under Requests to include, choose the scope, and under Format, the format.
  4. Click Export in the dialog.
The export dialog: Everything captured selected with a count of 17, two other scopes, HAR and Loupewire JSON as formats, and a summary reading Requests 17, Values covered 29
Three scopes, two formats, and the two numbers that describe the file before it exists.
Scope Exports
Everything captured every row in the view on screen
Selected rows the rows you selected, including any the filter now hides
Shown in the table exactly the rows the filter shows
  • Each scope shows its count, and a scope with no rows cannot be chosen.
  • The dialog opens on Selected rows when rows are selected, otherwise on Everything captured: of the two ways to be wrong, the narrower cannot over-share. It opens on HAR 1.2 every time; your last choice is not remembered.
  • The summary Requests: N · Values covered: M comes from the same masking pass that writes the file.
  • A file holding part of the capture says so inside it, in the HAR log comment ("SUBSET: this file holds only…") and in a scope field of the JSON, so nobody reads it as a whole session. When the tracker had already dropped its oldest requests, the file says that too.
  • With nothing captured, the dialog says "Nothing has been captured yet, so there is nothing to export."

HAR or Loupewire JSON

Format Choose it when
HAR 1.2 someone else will open it: vendors, developers and every network tool read HAR
Loupewire JSON you need what HAR has nowhere to put: each redirect leg, partial records, how a multipart field was read, a value that was missing rather than empty, which patterns covered the file and why a request has no response body

The file is named loupewire-YYYYMMDD-HHMM.har or .json, in your local time. Nothing from the traffic goes into the name.

What the file covers

Everything the panel covers is covered in the file: headers, cookies, form and multipart fields, and JSON values by key, in request and response bodies. The file then covers more than the screen does, because a URL stays readable on screen: query parameters, a fragment shaped like parameters, the redirect target, and the Location, Content-Location and Refresh headers. Details in Mask and the secret preset.

  • Response bodies are in the file where a row has one: the page's own fetch and XHR calls on sites turned on under Bodies, and every body of an imported HAR. They are written whole, masked to their end, though the panel shows only the first 64 KiB.
  • Request bodies keep the 64 KiB the panel shows.
  • A request without a response body carries the reason in the file, as the panel shows it.
  • With the secret preset off, the dialog warns before you export; see the mask guide.

Built, not "saved"

After Export, the dialog reads Built and the file name, the two numbers, the scope, and "Handed to the browser. If it asks where to save, the file exists only once you choose." It never says the file was saved: the page gets the same answer whether the file reached your downloads folder or you cancelled the save dialog, so "saved" would be a claim it cannot support. If building fails, it says "The export failed:" and the reason.

The confirmation after an export: Built and the file name, Requests 17, Values covered 29, Scope Everything captured, and a line reading Handed to the browser
Built, and handed over. Every word of that is something the page can know.

Export an imported HAR again

With an imported file on screen (the Live / file switch beside Import), Export takes that file's rows, masked like live ones. The new file says the requests were imported and masked by Loupewire, not captured by it, and lists what it dropped rather than write unmasked: WebSocket messages, initiator stacks, page titles, comments, cookies listed without a Cookie or Set-Cookie header, custom _ fields and malformed headers. It never contains the imported file's name.

Copy one request

  1. Select a request and click the copy icon, Copy this request, on the panel's tab strip.
  2. Choose Redacted text ("For a ticket or a chat message. Covered values stay covered.") or Redacted cURL ("For a shell. It will not authenticate until the covered values are replaced.").

The confirmation reads Copied:, what was copied, and how many values were covered. A copy can be checked, so this one is definite. It copies the request shown in the panel only; for several, export Selected rows. Text includes the response body, cut at 64 KiB; cURL cannot carry one.

The copy menu after choosing Redacted text, with a green confirmation reading Copied, Redacted text, Values covered 2
Copied, and it names what it covered.

There is no unmasked copy. To read a real value, switch the secret preset off for the tracker, where a warning comes with it.

Common mistakes

  • Exporting with the secret preset off. The dialog warns you; read the warning.
  • Pasting the cURL command and expecting a 200. It carries covered values on purpose.
  • Comparing the file's URLs with the table's. A secret in a query parameter is covered in the file and readable on screen, by design.

Not in this version

A masking report and per-request notes that travel into the file are planned, and so are saved sessions; today an export is the only way to keep captured traffic after the tracker closes.