Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
To capture audit-ready screenshots of AI agent web actions, save explicit images at important action boundaries and tie each image to a run ID, an ordered action record, browser context, and a verified file digest. Keep a Playwright trace for sequence and browser context, preserve originals with a custody record, and document capture gaps. A screenshot records pixels; by itself, it does not prove that an agent performed every claimed action or that the record is complete.
This is a practical evidence workflow, not a universal legal certification or retention rule. What would let another person verify what the agent saw and did? Start by defining that claim, then collect only the records needed to support it.
What makes a screenshot audit-ready?
An audit-ready record connects a captured browser state to a specific run and event, preserves the original bytes, and gives a reviewer enough context to assess sequence, integrity, and gaps. A folder of images with filenames such as step1.png is not enough to establish which run produced them or what action preceded each image.
Recommended Free Tools
Separate four questions that are often conflated:
- What was visible? A screenshot records the rendered view at capture time.
- What action was attempted? An action trace or run log records the operation and its target.
- What happened afterward? A later screenshot, trace state, or application response can show a resulting state, but does not alone establish why it changed.
- Is the record complete and intact? A manifest, digest checks, custody history, and checks for missing expected events help a reviewer assess those properties.
Playwright can save a PNG, a full-page image, or an element screenshot. Its Trace Viewer provides action order, DOM snapshots before and after actions, a screenshot filmstrip, console and network information, and browser or viewport metadata. The filmstrip helps navigate a run; a separately saved screenshot is a discrete file that can be included in an evidence package. Neither should be mistaken for the other. See Playwright screenshot documentation and Playwright Trace Viewer documentation.
Popular on Amazon
- Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
- Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
- Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
- Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
- 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
How should I capture screenshots and traces in Playwright?
Start tracing before the first material navigation or agent action. At consequential boundaries, save explicit screenshots and record the corresponding action and outcome. Stop tracing after the run and retain the trace archive alongside, not instead of, the selected screenshot files.
Install the browser tooling
For a standalone Node.js script, install Playwright and its Chromium browser:
npm install playwright
npx playwright install chromium
The example below creates a run directory, starts tracing before navigation, saves before-and-after screenshots around a click, records basic event details in a separate JSON manifest, and hashes each PNG with SHA-256. Replace the target URL and selector with the page and action your workflow is meant to capture. This example records only the events it explicitly wraps; it is not a complete record of every action an external agent might perform.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsRunnable example
const { chromium } = require('playwright');
const fs = require('node:fs/promises');
const crypto = require('node:crypto');
const path = require('node:path');
(async () => {
const runId = crypto.randomUUID();
const runDir = path.join('evidence', runId);
await fs.mkdir(runDir, { recursive: true });
const events = [];
const hashFile = async (file) => {
const bytes = await fs.readFile(file);
return crypto.createHash('sha256').update(bytes).digest('hex');
};
const recordScreenshot = async (page, sequence, label) => {
const file = `${sequence}-${label}.png`;
const fullPath = path.join(runDir, file);
const capturedAtUtc = new Date().toISOString();
await page.screenshot({ path: fullPath, type: 'png' });
events.push({
runId,
sequence,
label,
capturedAtUtc,
pageUrl: page.url(),
viewport: page.viewportSize(),
file,
digestAlgorithm: 'SHA-256',
digest: await hashFile(fullPath)
});
};
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext({ viewport: { width: 1280, height: 800 } });
await context.tracing.start({ screenshots: true, snapshots: true });
const page = await context.newPage();
let traceStopped = false;
try {
await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
await recordScreenshot(page, 1, 'before-action');
const actionStartedAtUtc = new Date().toISOString();
const target = page.getByRole('link', { name: 'More information' });
await target.click();
events.push({
runId,
sequence: 2,
eventAtUtc: actionStartedAtUtc,
action: 'click',
target: 'link named More information',
outcome: 'click completed',
resultingUrl: page.url()
});
await recordScreenshot(page, 3, 'after-action');
} catch (error) {
events.push({
runId,
eventAtUtc: new Date().toISOString(),
event: 'capture-or-action-failure',
error: String(error)
});
throw error;
} finally {
try {
await context.tracing.stop({ path: path.join(runDir, 'trace.zip') });
traceStopped = true;
} finally {
events.push({
runId,
event: 'trace-stop',
eventAtUtc: new Date().toISOString(),
traceFile: traceStopped ? 'trace.zip' : null,
traceStopped
});
await fs.writeFile(
path.join(runDir, 'manifest.json'),
JSON.stringify({ runId, events }, null, 2)
);
await browser.close();
}
}
})().catch((error) => {
console.error(error);
process.exitCode = 1;
});
The manifest is an implementation example, not an automatic Playwright export or a guarantee of completeness. Add your actual agent or service identity, recorder identity, action identifier, destination, capture settings, evidence classification, and custody or transfer events. Record event time and capture time separately when they differ. A manifest stored beside the image is not metadata embedded in the PNG.
Also popular on Amazon
- 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
- 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
- Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
- 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
- What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
Choose capture boundaries deliberately
Capture before a consequential click or submission when the pre-action state matters, then capture after the resulting page state settles. Capture on failure as well, where possible, so a reviewer can distinguish a failed action from a missing record. For a long workflow, avoid treating every animation frame as a separate evidence item: select the states that answer the reviewer’s questions, and retain the trace to navigate the broader sequence.
- Full-page image: useful when content below the viewport matters; confirm that lazy-loaded content has appeared before capture.
- Element image: useful when a specific region is material and a whole-page capture would expose unrelated information.
- Viewport image: useful for documenting what was visible at the action boundary, with the viewport recorded in the manifest.
- Trace filmstrip: useful for sequence review, but preserve separately saved original files for discrete evidence handling.
What should the manifest record?
A reviewer needs to join each file to the run, the action, the capture context, and its integrity record. OWASP logging guidance recommends recording the when, where, who, and what of events; use those as a minimum rather than relying on image filenames alone. See the OWASP Logging Cheat Sheet.
| Manifest field | What to record |
|---|---|
| Run and event identity | A stable run ID and ordered action or sequence ID that link the screenshot, trace, and event record. |
| Time | UTC event time and capture time, with enough precision for the workflow. Identify the recorder’s clock source or synchronization approach if timing is consequential. |
| Actor and recorder | The agent or service identity that initiated the action, and the process or component that captured the evidence. |
| Action and result | The attempted operation, target description, outcome, and resulting page or destination. Avoid putting secrets in the target description. |
| Browser context | Browser and version where available, viewport, page URL or destination, and relevant capture settings. |
| Artifact identity | Filename, media type, digest algorithm, digest value, and the related trace or event-record identifier. |
| Evidence handling | Classification, storage location or reference, access or transfer events, and whether an item is an original or a derivative. |
This is a proposed schema, not a Playwright-generated standard. OWASP’s Autonomous Penetration Testing Standard describes screenshot metadata, hashing, and custody expectations specifically within its autonomous penetration-testing platform scope. Its screenshot guidance calls for lossless PNG, preserved provenance and resolution, a cryptographic hash, and a custody record; its evidence-integrity requirement specifies SHA-256 or stronger. Treat those as a technical benchmark for that defined scope, not as a rule automatically binding every web agent. See the OWASP APTS auditability standard.
How do I preserve originals and verify integrity?
Keep the original screenshot and trace unchanged in restricted storage, retain their manifest, and recompute digests after transfer. A digest match establishes that the current bytes match the bytes represented by the reference digest; it does not prove when capture occurred, whether the action happened, or whether the run record includes every relevant event.
Also popular on Amazon
- Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
- Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
- Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
- Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
- What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
- Write the original file and its digest into the run record as soon as practical after capture.
- Store originals in a location with access controls appropriate to the sensitivity of the page and trace.
- When transferring evidence, recompute each digest and compare it with the manifest; record the transfer and the result.
- If reviewers need a redacted image, create a separate derivative, label it as edited, and retain the original under restricted access.
- Check expected action IDs against the manifest and trace. Record capture, trace-writing, or delivery failures as gaps rather than silently treating a missing file as evidence that nothing happened.
For protected originals, an appropriately configured immutable archive may help prevent alteration during a defined retention period. Microsoft documents time-based retention and legal holds for Azure Blob Storage. Microsoft says a time-based retention policy must be locked for its specified compliant immutable state and notes limits to policy audit logging; a storage setting alone does not establish that a particular legal obligation has been met. See Azure Blob Storage immutable storage documentation. Establish retention duration and reviewer access under the policies and obligations applicable to your organization; there is no universal duration established for all AI-agent screenshots.
What can screenshots, traces, and activity outputs each establish?
Use the artifact that answers the question, and link the artifacts together. No one artifact supplies visible state, action sequence, independent completeness, integrity, and protected custody all at once.
| Record type | What it is useful for | What it does not establish by itself |
|---|---|---|
| Explicit PNG | A discrete view of the page at a selected moment; can be named, hashed, and handled as an individual file. | Whether the image corresponds to a particular action unless linked to the run record, or whether the record is complete. |
| Trace filmstrip and trace archive | Reviewing action order alongside DOM snapshots, screenshots, console and network context, and browser or viewport information. | That every action by an agent outside the trace’s observation boundary was recorded, or that the trace is a complete test report. |
| Platform activity output | Recording operations the platform reports, where the platform documents those outputs. | Events or image bytes that the platform does not expose, or independent truth of a supplier’s assertions. |
Playwright’s standalone context tracing documents browser operations and network activity, but does not capture Playwright Test assertions. Do not label its archive as a complete test report. Playwright’s agent CLI also documents tracing-start and tracing-stop and separate trace, network, and resource outputs; use the CLI documentation for the specific interface and options you deploy: Playwright Test CLI documentation.
For OpenAI’s documented computer-use API specifically, browser operations are reported as computer_use_call items. Its guide says screenshot output is excluded by default unless include_screenshots is enabled, and even then some operations return no image. It advises retaining images from streamed completion events because subsequently retrieved history may omit image bytes. This is a platform-specific distinction, not a claim about every OpenAI product or browser agent. See the computer-use guide.
Also popular on Amazon
- Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
- Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
- Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
- Widely Compatible: Transform any USB-C port into a USB-A port and USB-A port into a USB-C port, and connect up a wide range of USB-C(including MacBook, iPad Pro/Air/Mini, iPhone models with USB C ports, Samsung Galaxy series, and Google Pixel series. ) and USB A devices(including external hard drives, phones, mice, printers, and more)
- Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
How should I handle sensitive data and independent corroboration?
Protect images, DOM snapshots, network data, and application logs as separate sensitive-data surfaces: each can reveal information the others do not. Playwright’s screenshot mask option can cover selected regions in an image, but should not be treated as sanitizing separate trace snapshots or network bodies. OWASP logging guidance recommends removing, masking, sanitizing, hashing, or encrypting secrets and sensitive personal data in logs.
Restrict access to originals, document who can view or transfer them, and use a clearly labeled derivative for wider sharing. If an independent observer or gateway log records events, state its observation boundary: it can corroborate events it actually sees, not activity outside that boundary. The OWASP guidance on third-party agent evidence cautions that signatures and timestamps do not independently establish truth or complete coverage. As it puts it, “A signature may establish who made an assertion without establishing that the assertion is true.” See the OWASP Verifying Third-Party Agent Execution Evidence Cheat Sheet.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.How do I test capture failures and review a run?
Before relying on the workflow, make failure behavior visible. A missing screenshot must be distinguishable from an action that never occurred, a blocked page, and a capture or delivery error.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →- Capture failure: record the error and action ID; do not silently advance the sequence as if a screenshot exists.
- Trace-write failure: record that the trace is absent or incomplete, and preserve any explicit screenshots and action records that did succeed.
- Delivery failure: keep the local original under controlled storage and record that transfer did not complete; verify the digest again after a successful transfer.
- Unexpected page or bot check: capture the observed state if safe, classify the outcome accurately, and do not describe it as a successful target-page action.
- Reviewer check: compare expected events to manifest entries and trace actions; inspect sequence, relevant page state, and network context; verify file digests; identify gaps, redactions, and derivatives.
Capture adds work and produces more artifacts to protect. Scope screenshots to consequential states, avoid unnecessary full-page captures, and account for the trace, manifest, and sensitive-data review in storage and access planning. No independently verified prevalence, failure-rate, cost-saving, or accuracy statistic for this workflow is established by the cited materials, so do not treat a feature specification as a measured reliability claim.
Also popular on Amazon
- 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
- Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
- Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
- HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
- What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.
Or skip the browser setup
ScreenshotNeo is a screenshot API and MCP server, so it can handle image capture without setting up a browser script. It does not replace the action trace, run manifest, digest verification, or custody process described above; a returned image alone is not proof of an agent’s actions.
One GET request can return a screenshot or PDF. The following cURL request saves a WebP screenshot of the example page; see the ScreenshotNeo API documentation for available parameters.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
- Cookie banners are accepted and removed before the shot, along with 60+ known consent platforms, newsletter popups, and chat widgets; each step can be turned off.
- Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing; response headers identify the page verdict and billing status.
- An MCP server provides
take_screenshot,get_page_info, andcapture_pdftools for AI agents and MCP clients. - The Free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Every feature is on every plan.
For an image-capture step, that can remove browser setup while leaving evidence integrity and action corroboration to your workflow. Sign up for 1,000 free screenshots a month with no card.
Frequently Asked Questions
Can I use JPEG instead of PNG for evidence?
Playwright supports screenshot output as PNG, JPEG, or WebP in the documented screenshot API. If you are following the OWASP APTS screenshot benchmark, use lossless PNG because that standard specifies PNG within its autonomous penetration-testing platform scope.
Does a screenshot file include the manifest fields automatically?
Do not assume that it does. Keep the run, action, timing, context, and digest information in a separate manifest or evidence record, and link the image to that record by a stable identifier.
Can an immutable storage setting make the evidence legally compliant?
No storage feature alone establishes legal compliance. Azure documents controls such as locked time-based retention and legal holds, but the applicable retention period, access rules, and legal obligations depend on the organization and context.
Should I capture every step of an agent run?
Not necessarily. Select moments that answer the reviewer’s material questions, and preserve a trace or run record for sequence context; capturing every frame increases the volume of sensitive information that must be protected.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallOutdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchQuick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

