Debugging HTTP, WebSocket, gRPC and GraphQL without switching apps
Production systems stopped being REST-only years ago. The gateway speaks HTTP, the notifications team streams over WebSocket, the pricing engine is gRPC, and the storefront aggregates everything through GraphQL. Then an incident starts at 1:40 am and you find yourself juggling four clients, four sets of saved requests and four places where credentials might be configured.
One navigator, one environment model
In Powerduck, every protocol lives in the same API navigator and shares one environment system. Switch from staging to production once, and HTTP headers, WebSocket URLs, gRPC metadata and GraphQL endpoints all move together. Pre-request and test scripts run across protocols too, so signing a request or capturing a token from a login call is written once.
Protocol icons and method badges make the tree scannable at a glance; non-HTTP operations show a compact icon so the list stays aligned.
What debugging each protocol actually feels like
HTTP
Requests are generated from the OpenAPI operations, with path and query parameters, auth and example bodies prefilled. Send, inspect timing and headers, then save the response as a test fixture or an example in the spec.
WebSocket
Open a connection from the navigator, watch the message timeline, replay frames, and run assertions against streamed messages. A flaky event order bug becomes a recorded scenario you can rerun.
gRPC
Pick the service and method straight from the protobuf description, send JSON-shaped request messages with metadata, and inspect the response — no separate grpcurl setup, no hand-written reflection commands.
GraphQL
Queries and mutations run against the configured endpoint with variables and headers in the same panels as everything else, so a mixed REST/GraphQL onboarding flow is one tab strip, not two tools.
From scratch request to spec operation
Investigations are messy: you fire off a scratch request with an ad-hoc URL, tweak it ten times, and only then realize it should be documented. Powerduck treats that as the normal path. A quick request lives in the tree as a scratch item, and when it proves itself, promote it into the specification — path, method, headers, body and all — with a confirmation dialog that checks whether the operation already exists and lets you pick the target tag or folder.
The reverse direction works just as well: every spec operation is one click from a real, authenticated request.
Scenarios tie the protocols together
Most bugs are cross-protocol stories: an HTTP mutation that should emit a WebSocket event, or a gRPC call whose result changes what the GraphQL gateway returns. Scenario execution chains requests and messages in order, with assertions between steps, so you can reproduce the whole chain instead of describing it in a ticket.
Scenarios run in the desktop app today — download it and point it at your trickiest service. One workspace, every protocol, same file.