User guide
WebForge Toolkit Help Center
Definitions, operating steps, examples, outputs, and browser limitations for every packaged WebForge feature.
Getting started
WebForge Toolkit is a browser-based workspace for request inspection, data conversion, page analysis, content export, developer transformations, and direct connections to endpoints selected by the user.
- Open the extension from the Chrome toolbar.
- Search for a utility on Home, use the hamburger menu, or select a matching utility card.
- Use the Home icon at any time to return to the utility catalog.
- Use the moon or sun icon to switch between Light and Dark mode. The preference is retained across WebForge pages.
- Use the expand icon for a larger popout workspace. The source tab remains available to page-aware tools.
- Turn on Monitor only when you want Network Inspector to retain request records.
Restricted pages: Chrome blocks extension scripting on pages such as chrome://, the Chrome Web Store, and some browser-owned documents. Open a normal HTTP, HTTPS, or permitted file page before using page-aware tools.
Common controls
| Control | Purpose | Example |
| Home | Returns to the searchable utility catalog. | Return from REST Client without reopening the menu. |
| Light / Dark | Switches the complete WebForge color theme and saves the preference. | Use Dark mode for a lower-luminance development workspace. |
| Full view | Opens a larger extension popout. | Compare large JSON documents side by side. |
| Menu | Shows grouped workspaces. | Open Page Analyzer or Client Utilities. |
| Copy | Copies the current output. | Copy generated cURL, JSON, timestamps, or reports. |
| Export | Downloads the displayed or filtered result. | Export filtered requests or an OWASP report. |
Observe
Network Inspector
Definition: Captures browser request metadata and page-level Fetch/XHR response bodies, then displays method, status, size, duration, generated cURL, and response text in separate sections.
Steps
- Open the target webpage and then open WebForge Toolkit.
- Enable Monitor.
- Reload or use the webpage so requests are generated.
- Open Network inspector and select Refresh.
- Filter by URL text, HTTP method, or status code.
- Select a row to inspect cURL and response. Use the copy icon in either section.
- Select Export to download filtered rows; if no filter is active, all retained rows are exported.
Examples
Filter an API/v2/ordersShows matching endpoints regardless of host.
Find failuresMethod: POST
Status: 500Shows failed POST calls with timing and response text when available.
Generated commandcurl -X POST \
-H 'Content-Type: application/json' \
--data '{"storeId":391}' \
'https://api.example.com/orders'
Response-body limitation: Chrome exposes metadata for browser-loaded scripts, images, stylesheets, and documents but not their response bodies through the normal WebRequest API. WebForge captures response text for page Fetch/XHR calls that its page hook can observe. Binary, opaque, cached-before-monitoring, service-worker, restricted, or browser-owned responses may show metadata only.
Page & assets
Webpage Export and Image Extractor
Webpage Export
Definition: Reads the current page title, URL, headings, links, and readable text, then prepares Markdown, plain text, or a text-based PDF.
- Open the source webpage.
- Select Webpage export and choose Markdown, Text, or PDF.
- Select Capture current page.
- Review the preview.
- Select Export or Copy.
Markdown# Product Guide
Source: https://example.com/guide
## Installation
Install the package...
TextProduct Guide
https://example.com/guide
Installation
Install the package...
PDFCreates a locally generated text PDF suitable for sharing or archiving. Complex page styling is intentionally not reproduced.
Image Extractor
Definition: Discovers images from img, srcset, picture sources, favicons, video posters, and CSS background-image values.
- Open the source page.
- Select Extract images.
- Review thumbnail, dimensions, type, and URL.
- Choose HTML Gallery, JSON, or CSV.
- Select Export, or copy all image URLs.
| Export | Use case |
|---|
| HTML gallery | Visual offline index of discovered images and source URLs. |
| JSON | Automation or structured asset inventory. |
| CSV | Spreadsheet review and deduplication. |
The exporter records references and metadata. Cross-origin restrictions, lazy loading, authorization, or expired signed URLs can prevent later image access.
Security
Passive OWASP Checker
Definition: Reviews browser-observable security signals and explains likely risk and remediation. It checks response headers, mixed content, forms, visible cookies, sensitive-looking storage keys, unsafe links, client-side secret patterns, and detected library versions.
- Open the target page and reload it if header data has not yet been observed.
- Select OWASP checker.
- Select Scan current page.
- Review counts by severity and open each finding.
- Copy or export the JSON report.
Example findings
| Finding | Meaning | Typical fix |
|---|
| Missing CSP | No observable Content-Security-Policy response header or meta policy. | Define a restrictive server response policy and explicitly allow required origins. |
| Mixed content | An HTTPS page references an HTTP resource. | Serve every active and passive resource through HTTPS. |
| Password form over HTTP | Credentials may travel without transport encryption. | Use HTTPS and HSTS; never submit credentials to HTTP. |
| Sensitive storage key | A key name resembles token, secret, password, or credential data. | Avoid long-lived secrets in web storage; prefer secure HttpOnly cookie or memory-only patterns. |
| Client-side secret pattern | Page source resembles a private key, JWT, API key, or token. | Remove and rotate exposed credentials; keep secrets server-side. |
Scope: This is passive guidance, not a complete vulnerability scanner. It cannot prove exploitability, authenticate into workflows, inspect server code, scan dependencies against live CVE databases, or replace SAST, DAST, configuration review, and penetration testing.
Observe
HAR Analyzer
Definition: Imports an HTTP Archive file and summarizes request count, combined body size, accumulated request time, errors, resource types, and timing phases.
- Export a HAR from Chrome DevTools Network panel or another compatible source.
- Open HAR Analyzer and select the
.har file. - Filter by URL, method, status, resource type, error, or requests slower than one second.
- Review timing phases such as blocked, DNS, connect, SSL, send, wait, and receive when present.
- Export the normalized report.
Requests: 146
Transferred: 4.8 MB
Errors: 3
Slowest: GET /api/report - 2840 ms
Timing: blocked 4, dns 18, connect 42, ssl 31, wait 2650, receive 96 ms
HAR files can contain URLs, query values, request bodies, cookies, and authorization headers. Review and sanitize them before sharing. WebForge processes the imported file locally.
Page analysis
Page Analyzer
Open the page you want to inspect, choose a mode, and select Analyze current page. Export downloads the current report as JSON; table mode also downloads CSV.
Performance
Definition: Reviews DOM size, resource count, transfer size, resource duration, classic render-blocking scripts, initially applicable stylesheets, and duplicate resource URLs.
- Reload the target page for complete performance entries.
- Choose Performance and analyze.
- Review blocking and duplicate signals first, then the longest/largest resources.
DOM nodes: 2,840
Resources: 118
Transfer: 3.2 MB
Blocking assets: 7
Duplicate: /assets/config.json requested 3 times
This is a quick browser snapshot, not a substitute for Chrome Lighthouse or a controlled lab/field performance study.
Accessibility Checker
Definition: Detects common browser-observable issues including images without alt attributes, unlabeled form controls, unnamed buttons/links, positive tabindex, skipped heading levels, and low text contrast.
- Choose Accessibility.
- Analyze the current rendered state.
- Review high and medium findings and verify each manually with keyboard and assistive technology.
HIGH: Image missing alt
MEDIUM: Form control missing label
MEDIUM: Heading level skipped (H2 -> H4)
MEDIUM: Low text contrast (ratio 2.83:1)
Automated checks find only part of WCAG conformance. Manual keyboard, zoom, screen-reader, content, focus-order, and task-flow testing remains necessary.
Browser Storage
Definition: Lists localStorage, sessionStorage, visible document cookies, and Chrome cookie records with Secure, HttpOnly, SameSite, path, domain, and expiration attributes.
- Choose Browser storage.
- Analyze the active page.
- Search the rendered records visually and export only when appropriate.
Cookie: session_id
Secure: true
HttpOnly: true
SameSite: lax
Expires: Session
Storage and cookies can contain authentication or personal data. Do not export or share values without authorization.
CSP & CORS
Definition: Explains observable Content-Security-Policy, Access-Control-Allow-Origin, HSTS, X-Content-Type-Options, Referrer-Policy, and Permissions-Policy values and flags broad CSP sources or invalid credentialed wildcard CORS.
- Reload the page so response headers can be observed.
- Choose CSP & CORS and analyze.
- Review missing and warning cards.
Content-Security-Policy:
default-src 'self'; script-src 'self' https://cdn.example.com
Access-Control-Allow-Origin:
https://admin.example.com
The main document's CORS headers do not describe every API response. Inspect the relevant API request in Network Inspector for endpoint-specific behavior.
HTML Table Extractor
Definition: Reads rendered HTML table captions, rows, and cells and previews them as structured tables.
- Choose HTML tables and analyze.
- Review each detected table.
- Select Export for JSON plus CSV.
Store ID,Name,Status
391,West,Active
449,Central,Inactive
Virtualized grids built entirely from div elements are not HTML tables and may not be detected.
Link Checker
Definition: Deduplicates page links, categorizes internal/external URLs, and checks up to 100 unique HTTP(S) links using HEAD with a GET fallback.
- Choose Link checker.
- Analyze and wait while selected destinations respond.
- Review Failed, 4xx, and 5xx results and duplicate counts.
200 internal /account
301 external https://docs.example.com/old
404 internal /missing-page
Skipped mailto:support@example.com
A protected endpoint may reject extension-origin requests even when it works during normal navigation. Link checking makes real requests to the listed destinations.
Client utilities
Client Utilities
Definition: Direct browser clients for HTTP APIs, WebSocket protocols, event streams, brokers with web transports, Elasticsearch, OAuth authorization URL construction, and reusable local request collections.
Network model: Requests go directly from Chrome to the endpoint entered by the user. WebForge has no proxy or backend. The destination must support browser/extension access, TLS, authentication, and the selected web transport.
Shared HTTP client behavior
- Select REST, GraphQL, SOAP, Webhook, Kafka REST, Redis HTTP, or OpenAPI.
- Enter name, method, URL, headers, authentication, variables, and body.
- Use
{{name}} placeholders in URL, headers, auth, or body. - Select Send, Generate cURL, or Save request.
- Review status, duration, response size, headers, and formatted response body.
Header examples
JSON{
"Accept": "application/json",
"X-Tenant": "west"
} One per lineAccept: application/json
X-Tenant: west
Authentication examples
| Type | Auth value | Generated header |
|---|
| Bearer | eyJ... | Authorization: Bearer eyJ... |
| Basic | username:password | Base64 Basic Authorization |
| API key | X-API-Key: abc123 | X-API-Key: abc123 |
| HMAC | X-Signature: shared-secret | Hex HMAC-SHA-256 signature of the request body |
Variables
Variables: {"baseUrl":"https://api.example.com","storeId":391}
URL: {{baseUrl}}/v2/stores/{{storeId}}
Resolved: https://api.example.com/v2/stores/391
REST Client
Definition: Sends GET, POST, PUT, PATCH, DELETE, HEAD, or OPTIONS requests with custom headers, authentication, variables, and body.
Method: POST
URL: https://api.example.com/v2/orders
Headers: {"Content-Type":"application/json"}
Body: {"storeId":391,"items":[{"sku":"PIZZA-01","qty":1}]}Common examples: health checks, CRUD APIs, configuration endpoints, test webhooks, and reproducing browser requests.
GraphQL Client
Definition: Wraps the query and Variables JSON into a standard GraphQL POST body.
Query:
query Store($id: ID!) {
store(id: $id) { id name active }
}
Variables:
{"id":"391"}Use the shared Headers and Authentication fields for bearer tokens or custom tenant headers.
SOAP Client
Definition: Sends XML SOAP envelopes with text/xml; charset=utf-8 by default.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetStore xmlns="https://example.com/store">
<StoreId>391</StoreId>
</GetStore>
</soap:Body>
</soap:Envelope>Add a SOAPAction header when required by the service.
Webhook Sender
Definition: Builds, signs, saves, and replays outbound HTTP webhook payloads.
URL: https://hooks.example.com/order
Auth: HMAC SHA-256
Auth value: X-Webhook-Signature: shared-secret
Body: {"event":"order.created","id":"ORD-391"}The generated signature is the hexadecimal HMAC-SHA-256 of the exact body sent. Confirm the receiver expects the same encoding and signing format.
OpenAPI Client
Definition: Parses OpenAPI JSON and performs a basic operation scan for YAML, listing title, version, servers, paths, methods, operation IDs, and summaries.
- Select OpenAPI.
- Paste a JSON or YAML specification into the body area.
- Select Parse OpenAPI.
- Review discovered operations and use them to prepare saved requests.
{
"openapi":"3.0.0",
"info":{"title":"Store API","version":"1.0.0"},
"paths":{"/stores/{id}":{"get":{"operationId":"getStore"}}}
}The YAML scanner is intentionally basic and does not fully resolve references, schemas, security inheritance, examples, or every YAML construct.
WebSocket Client
Definition: Opens a raw ws:// or wss:// connection, sends text messages, and records timestamped incoming/outgoing events.
- Select WebSocket.
- Enter the socket URL and select Connect.
- Enter a message and select Send.
- Review events, then Disconnect.
URL: wss://echo.example.com/socket
Message: {"type":"ping","sentAt":1720000000000}
RabbitMQ Client / STOMP
Definition: Connects to RabbitMQ through its Web STOMP endpoint using STOMP 1.2 frames.
- Enable RabbitMQ Web STOMP on the broker.
- Enter WebSocket URL, login, passcode, and destination.
- Connect, then Subscribe or Send.
- Disconnect when finished.
URL: wss://broker.example.com/ws
Destination: /topic/orders
Message: {"orderId":"ORD-391","status":"READY"}Native AMQP ports such as 5672 cannot be opened by a Chrome extension. A WebSocket STOMP endpoint is required.
Server-Sent Events
Definition: Reads event-stream responses through Fetch streaming with custom headers or through the browser EventSource API.
- Choose GET stream when headers are required, or EventSource for a standard unauthenticated stream.
- Enter URL and optional JSON headers.
- Select Connect and review event name, ID, and data.
- Select Disconnect to abort the stream.
event: order-status
id: 391
data: {"status":"READY"}
MQTT
Definition: Implements MQTT 3.1.1 messaging over a broker WebSocket endpoint with local profiles, connect, subscribe, publish, ping, and message logging.
- Enter
wss:// broker URL, client ID, and optional credentials. - Save the client if desired and select Connect.
- Enter a topic and Subscribe.
- Enter payload and Publish.
- Disconnect when finished.
Broker: wss://broker.example.com:8084/mqtt
Topic: stores/391/orders
Payload: {"orderId":"ORD-391","status":"READY"}The broker must expose MQTT over WebSocket and permit the extension origin. Native MQTT TCP ports cannot be used directly.
Elasticsearch
Definition: Sends REST requests to an Elasticsearch-compatible endpoint with no auth, API key, or Basic authentication.
- Enter and optionally save cluster base URL and auth.
- Select Test for the root endpoint.
- Choose method, enter path and optional JSON body.
- Select Send and review formatted output.
GET /_cluster/health
POST /orders/_search
{"query":{"term":{"storeId":391}}}Elasticsearch must permit direct browser/extension requests and provide a trusted TLS certificate.
Kafka REST Client
Definition: Uses the shared HTTP client to call a Kafka REST Proxy or another HTTP-compatible Kafka gateway.
POST http://localhost:8082/topics/orders
Content-Type: application/vnd.kafka.json.v2+json
{"records":[{"key":"391","value":{"status":"READY"}}]}Native Kafka protocol connections are not supported in Chrome. Configure and secure a REST proxy instead.
Redis HTTP Client
Definition: Calls a Redis-compatible HTTP gateway or provider REST API.
POST https://redis-gateway.example.com/command
Authorization: Bearer {{token}}
{"command":["GET","store:391:status"]}Native Redis TCP connections are not supported. Endpoint path, authentication, and request shape depend on the selected gateway.
OAuth 2.0 Helper / PKCE
Definition: Generates a cryptographically random PKCE verifier and S256 challenge and builds an authorization-code flow URL.
- Enter authorization endpoint, client ID, redirect URI, scope, and state.
- Select Generate PKCE.
- Select Build authorization URL.
- Review and select Open URL to navigate to the authorization server.
https://auth.example.com/authorize?
response_type=code&client_id=webforge-demo&
redirect_uri=https%3A%2F%2Fapp.example.com%2Fcallback&
scope=openid%20profile&code_challenge=...&
code_challenge_method=S256
The helper does not exchange codes using a confidential client secret. Token exchange requiring a secret belongs on a trusted backend.
Request Collections
Definition: Saves shared HTTP client requests locally and supports opening, deleting, importing, and exporting a portable collection.
- Configure a request and select Save request.
- Open Request collections to review saved entries.
- Select Open to return to the request editor.
- Export to JSON or import a WebForge collection file.
{
"format":"webforge-request-collection",
"version":1,
"requests":[{"name":"Health","mode":"rest","method":"GET"}]
}Authorization header values and the shared Auth value are redacted during export. Imported redacted credentials must be entered again.
About WebForge
Credits & Contributors
WebForge Toolkit is built and maintained through the contributions of the people listed below.
Contributor
Kumar Kartikeya Priyadarshi
Contributor
Raghavendra Rai
Thank you for helping shape WebForge Toolkit into a practical development and QA workspace.
Data handling
Privacy and Security
- WebForge has no analytics, advertising, remote code, or WebForge-operated backend.
- Formatter, converter, crypto, diff, HAR, timestamp, and generator data is processed locally.
- Client requests, link checks, WebSocket/SSE/MQTT/STOMP connections, and OAuth navigation contact destinations explicitly selected by the user.
- Request logs, rules, profiles, and saved requests use Chrome extension local storage.
- Saved MQTT and Elasticsearch profiles can include credentials. Use temporary, scoped non-production credentials whenever possible.
- Request collection exports redact known authorization fields, but every exported report should still be reviewed before sharing.
- The cookies permission is used when Browser Storage analysis is explicitly run for the active page.
Recommended operational practices
- Use least-privilege test credentials.
- Prefer HTTPS/WSS with trusted certificates.
- Remove saved profiles after temporary work.
- Clear Network Inspector logs after reviewing sensitive traffic.
- Review HAR, page, storage, and security reports before sharing.
- Never use repair or passive-check output as the sole production approval gate.
Contact & Support
For privacy questions, support requests, or locally stored data concerns, contact either contributor.
Support
Troubleshooting
| Problem | Likely reason | Action |
| No Network Inspector response body | The resource is not Fetch/XHR, was loaded before monitoring, is opaque/binary, or cannot be page-instrumented. | Enable Monitor before reload. Use Chrome DevTools for browser-owned resource bodies. |
| Page analyzer says restricted page | The active tab is Chrome-owned or disallows extension scripting. | Open a normal HTTP/HTTPS page and try again. |
| API request fails but works elsewhere | CORS, certificate trust, missing cookies, network/VPN, or authentication differences. | Check endpoint CORS, TLS, headers, credentials, and extension host access. |
| WebSocket/MQTT/STOMP does not connect | Native protocol URL, wrong path/subprotocol, TLS failure, origin rejection, or broker web transport disabled. | Use a documented WS/WSS endpoint and enable the broker's web transport. |
| SSE disconnects | Server closes stream, proxy buffers/terminates, CORS fails, or EventSource cannot send required headers. | Use Fetch stream mode for headers and inspect server/proxy logs. |
| Cookie list is incomplete | Wrong active URL, partitioning/domain/path restrictions, or Chrome permission state. | Analyze the exact target tab and confirm extension permissions. |
| Link checker reports Failed | Destination rejects extension-origin HEAD/GET requests, requires authentication, or is unreachable. | Verify through normal navigation and endpoint logs before treating it as broken. |
| Formatter cannot fix input | The source is ambiguous or structurally incomplete. | Use the validation error location and repair the source manually. |
Version: This guide describes WebForge Toolkit 1.2.3. Feature behavior is limited by Chrome Manifest V3 APIs and the target application's security configuration.
No matching help topic
Try a feature name such as JWT, HAR, GraphQL, accessibility, MQTT, or export.