Bowire

All Your Protocols. One UI. One Setup.

The multi-protocol API workbench. Discover, invoke, record, replay, mock, scan.
All across 20+ protocols out of the box, and any custom one you ship.
Embedded or Standalone. UI, CLI or AI agent.
No cloud, no account, free and open source.
Built for API testing with even more swag than Swagger.

Ship Bowire: skip to the dock ↓

See it in action

Discovery, request, response, switch protocol — a full round-trip against the BowireDemo sample with gRPC, SignalR, REST, and WebSocket.

A single tool, every protocol — gRPC, REST, GraphQL, SignalR, MCP, SSE, WebSocket, MQTT, Socket.IO, OData, Surgewave, Kafka, DIS, UDP. No browser plugin, no separate desktop app, no protocol-specific UI quirks.

A single Bowire for every situation

Bowire understands your setup and shows the most useful tools and guidance depending on your task — from first-run welcome through single request and daily streaming workflows to recording and replays.

Walk the deck: tour every feature →

Straight into the water

From zero to running in three steps. Pick the boat — install + run snippets tailor themselves.

Which boat are you launching today?

Different rig: see every download →

Why Bowire?

What makes Bowire different from Postman, Insomnia, Scalar, and other API tools.

20+

Protocols in One Workbench

  • gRPC
  • REST
  • SOAP
  • GraphQL
  • SignalR
  • WebSocket
  • SSE
  • MQTT
  • AMQP
  • NATS
  • Socket.IO
  • OData
  • MCP
  • JSON-RPC
  • Surgewave
  • Kafka
  • Pulsar
  • DIS
  • UDP
  • AsyncAPI
  • Akka.NET
  • TacticalAPI
  • Custom

Built for every protocol you need plus your own via Bowire's plugin API.

No schema files to maintain — each protocol auto-discovers through its native mechanism (e.g. reflection, OpenAPI, introspection).

Bonus for Embedded Mode: Bowire wires the server-side prerequisites in for you.

Apache 2.0

Free and open source — and staying that way

Every feature on this page is in the free tier, because there is no other tier. Clone it, fork it, embed it in commercial products, audit the code, hack on it — no asterisks, no seat count, no "commercial use requires…".

Hull-to-hull: see the comparison table ↓

Built for modern APIs

Everything you need to discover, test, record, and debug your services across every protocol.

Discover & build

Auto-discovery with hot reload

Zero manual configuration. Drop in a protocol plugin and Bowire uses its native mechanism to enumerate services — then re-scans every few seconds so new endpoints show up without a refresh or restart.

All call types

Unary, server streaming, client streaming, duplex channels, REST verbs, GraphQL queries / mutations / subscriptions, SignalR hub methods, raw WebSocket frames — every pattern in one UI.

Form & JSON

Switch between auto-generated form fields (typed, validated, nested) and raw JSON editing per request. Schema-driven validation catches errors before they hit the wire.

Test & measure

Test assertions

Newman-style assertions that auto-run after every successful response. Eleven operators (eq, ne, gt, contains, matches, type, …). Pass / fail badges right in the response pane.

Performance graphs

Repeat any call N times, watch the latency histogram + timeline render in real time. P50 / P90 / P99 / P99.9 percentiles, success rate, throughput. No external load tester needed.

Recorder

Postman Collection-Runner parity. Click record, run a sequence of calls, click stop. Replay with current environment variables, convert into test assertions, or export as HAR for sharing.

Mock server

bowire mock turns any captured recording into a live endpoint — REST, gRPC (unary + streaming + bidi), WebSocket, SSE, SignalR, Socket.IO, MQTT, GraphQL subscriptions. Hot-reload, chaos injection, capture-on-miss.

Security scan

bowire scan against any HTTP-class target with Bowire's own templates plus the 8000+ Nuclei templates via --nuclei. Findings emit as SARIF 2.1.0 — straight into GitHub Code Scanning, GitLab, or Azure DevOps.

Fuzz

Schema-aware field-level fuzzer. bowire fuzz knows not to throw SQL-injection at a latitude (lat) field; image.bytes gets magic-byte mutation, not XSS strings. Categories: sqli / xss / pathtrav / cmdinj with baseline-diff oracle.

Connect & scale

Auth helpers

Bearer, Basic, API Key (header or query), JWT (HS / RS / ES), OAuth 2.0 client_credentials + authorization_code with PKCE, custom token endpoint with auto-refresh, AWS Signature v4 — per environment.

Environments & variables

Postman-style ${var} substitution in URLs, headers, and bodies. Switch between Dev / Staging / Prod, or connect to several servers in parallel — per-URL status indicators, per-service origin tagging.

CLI & standalone tool

bowire list, describe, call for scripting against any server. Or run as a global tool with the browser UI — every protocol plugin built in. No host code changes required.

Power tools

Vim-style keyboard navigation

j/k to hop methods, f to flip form/JSON, r to repeat, t to cycle themes, Ctrl+Enter to execute. Power users never touch the mouse.

Command palette

Press / anywhere to search methods, jump environments, apply protocol filters, or pin a name filter. Recently-used methods surface when the query is empty.

Click-to-chain responses

Hover any value in a response — click it and paste ${response.path.to.value} straight into the next request's body or URL. Works in JSON, tree, and streaming views.

Walk the deck: tour every feature →

Multi-protocol by design

One UI for every protocol your service stack speaks.
Each protocol is a plugin — install only what you need.

gRPC

Server Reflection, proto schema browser, all four streaming types (unary / server / client / duplex) over native HTTP/2 or gRPC-Web. Auto-generated request templates from protobuf definitions, plus HTTP transcoding for methods with google.api.http annotations.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Grpc

REST

OpenAPI / Swagger document discovery with full path / query / header / body parameter forms. AWS Sig v4 signing built in. Drop in any swagger.json as a fallback when introspection isn't available.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Rest

GraphQL

Schema introspection via __schema, visual selection-set picker for picking which fields you want returned, support for queries, mutations, and graphql-transport-ws subscriptions.

$ dotnet add package Kuestenlogik.Bowire.Protocol.GraphQL

SignalR

Hub auto-discovery via endpoint metadata, method invocation with parameter type reflection, real-time bidirectional channels with the same UI as gRPC duplex streaming.

$ dotnet add package Kuestenlogik.Bowire.Protocol.SignalR

MCP

AI agent integration for Claude Desktop, Cursor, and Copilot. Discovered methods are exposed as MCP tools with JSON Schema input. Bidirectional MCP server browser for inspecting tools published by other agents.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Mcp

SSE

Server-Sent Events — register endpoints via attribute or fluent API, watch live event streams render in the response pane. The same plugin powers GraphQL subscriptions and MCP server-push.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Sse

WebSocket

Raw WebSocket frame editor with text + binary support, sub-protocol selection, per-frame type toggle. Open a channel, send a frame, watch responses arrive — same UI as the duplex gRPC and SignalR channels.

$ dotnet add package Kuestenlogik.Bowire.Protocol.WebSocket

MQTT

Broker connect over TCP or WebSocket, topic subscribe with wildcards, retained-message inspection, QoS 0/1/2 publishes. Bidirectional channel reuses the same Wireshark-style stream pane as gRPC and SignalR.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Mqtt

NATS

Built on the official NATS.Net 2.x client. Three discovery sources fan out from one shared connection: subject sampling on the > wildcard, JetStream stream enumeration, and the Services API via $SRV.PING broadcast. Pub / sub / request reuse the same Wireshark-style stream pane.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Nats

SOAP

WSDL 1.1 discovery (operations → methods, port types → services), SOAP 1.1 + 1.2 envelopes, automatic Fault detection. No WCF or SoapCore dependency — the wire is hand-rolled XML over HTTP, so the plugin works on every .NET LTS.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Soap

JSON-RPC

Generic JSON-RPC 2.0 client over HTTP. Discovery via OpenRPC's rpc.discover reflection method; servers that don't advertise OpenRPC still work with a freeform fallback so you can invoke any method by name.

$ dotnet add package Kuestenlogik.Bowire.Protocol.JsonRpc

Apache Pulsar

Built on the Apache-maintained DotPulsar 3.5.x client. Topic discovery via Pulsar's HTTP admin API; produce (Unary) and subscribe (ServerStreaming) over the binary protocol with an exclusive subscription that auto-acks so the cursor advances.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Pulsar

AMQP

RabbitMQ, ActiveMQ, Solace, Azure Service Bus — one plugin covers both AMQP 0.9.1 and AMQP 1.0. URL scheme picks the wire: amqp:// for 0.9.1, amqp1:// for 1.0. Discovery uses the RabbitMQ Management HTTP API; consume streams render in the same Wireshark-style pane.

$ dotnet add package Kuestenlogik.Bowire.Protocol.Amqp

Socket.IO

Namespace + room aware client, event emit / ack with JSON payloads, auto-reconnect with exponential backoff, binary event support. Works against any v2/v3/v4 Socket.IO server.

$ dotnet add package Kuestenlogik.Bowire.Protocol.SocketIO

OData

CSDL metadata discovery, entity-set browser with typed filters ($filter, $orderby, $expand), batch requests, navigation-property follow-through. Works with ASP.NET's Microsoft.AspNetCore.OData.

$ dotnet add package Kuestenlogik.Bowire.Protocol.OData

AsyncAPI

Discovery source — not a wire. Drop in an asyncapi.yaml or .json document (2.x + 3.0); Bowire walks channels, operations, and per-message overloads, then dispatches each call through the wire plugin its bindings: block declares. Today that means MQTT, Kafka, AMQP, WebSocket, and HTTP — every binding resolves to a shipped first- or third-party plugin. NATS follows.

$ dotnet add package Kuestenlogik.Bowire.AsyncApi

Surgewave

Küstenlogik's Surgewave broker — native protocol via the Kuestenlogik.Surgewave.Client SDK or Kafka-compatible wire (?protocol=kafka). Topic browse, produce, server-streaming consume, in-process tap via surgewave://embedded.

$ bowire plugin install Kuestenlogik.Bowire.Protocol.Surgewave

Kafka

Apache Kafka via Confluent.Kafka. Topic discovery via the Admin API, produce / consume with the standard JSON envelope, mTLS + SASL auth, plus optional ?schema-registry=… for live Avro decode of consumed messages.

$ bowire plugin install Kuestenlogik.Bowire.Protocol.Kafka

DIS

IEEE 1278 Distributed Interactive Simulation. UDP multicast listener for live PDU traffic, structured rendering of EntityState / Fire / Detonation / Collision PDUs, on-wire hex dump for binary inspection. Standalone-mode plugin for simulation environments.

$ bowire plugin install Kuestenlogik.Bowire.Protocol.Dis

UDP

Raw UDP datagram listener — feed any UDP source into the Bowire streaming pane. Auto-detects UTF-8 text payloads, falls back to base64 + canonical hex dump for binary. Sibling to the DIS plugin via the same IBowireMockEmitter contract.

$ bowire plugin install Kuestenlogik.Bowire.Protocol.Udp

Akka.NET

Live tap on any Akka.NET ActorSystem — the BowireTapMailbox wraps the standard mailbox and streams every Tell into the workbench. Embedded mode only; opt in globally via the default-mailbox swap or per-actor with Props.WithMailbox.

$ bowire plugin install Kuestenlogik.Bowire.Protocol.Akka

TacticalAPI

Rheinmetall's TacticalAPI — gRPC interface for situational-awareness systems. Bundled schema means the Situation service tree shows up in the sidebar even without Server Reflection. v1.0: discovery + typed unary CRUD + server-streaming pump all wired through, mTLS client-cert via metadata for the field-default deployment shape, recording-replay via TacticalApiMockEmitter.

$ dotnet add package Kuestenlogik.Bowire.Protocol.TacticalApi

Coming soon

OTLP for OpenTelemetry receive-side, Surgewave tap-stream subscription, Connect (Buf) phases 1 + 3 (unary + bidi-streaming over HTTP/2). More on the roadmap →

Planned plugins

Your Protocol

Scaffold a new plugin with the bowire-plugin template — implements IBowireProtocol, ships as a NuGet package with <PackageType>BowirePlugin</PackageType>, picked up by assembly scanning at startup.

$ dotnet new install Kuestenlogik.Bowire.Templates
$ dotnet new bowire-plugin --name MyProtocol

Want to ship one? Join the crew

Built for your workflow

Bowire isn't a Postman replacement — it's a workbench for the situations where Postman doesn't fit. Pick the workflow that sounds most like yours.

Backend developers

embedded mode · zero account walls

You're building an ASP.NET service and you want a debug UI inside your app for your team and your users — not a separate Electron app behind a sign-up flow. Add app.MapBowire(), ship the binary, every endpoint is browsable at /bowire.

→ gRPC reflection · OpenAPI · GraphQL introspection · SignalR endpoint scan · AsyncAPI discovery

API integration testers

recorder · environments · assertions

You're verifying that an external API behaves the way the docs claim. Click Record, run a sequence of calls, click stop. Replay against Dev / Staging / Prod with environment-variable substitution. Convert the captured responses into regression assertions with one click.

→ Postman Collection-Runner parity · HAR export · Newman-style assertions

AI agent builders

MCP adapter · Claude / Cursor / Copilot

You're wiring an AI agent up to internal services. Bowire's MCP adapter exposes every discovered method as an MCP tool with JSON Schema input — without writing the MCP server boilerplate yourself. Drop the URL into your agent config and your assistant has typed access to your service surface.

--enable-mcp-adapter · auto-tool generation · streaming support

Documentation teams

interactive docs · live examples · code export

You're writing API docs and you want every example to be runnable without a curl-paste-and-pray loop. Embed Bowire next to your written guides — readers click a method, edit the JSON, hit Send, see the actual response. Export the call as curl, grpcurl, or a typed C# / TypeScript snippet.

→ Live examples · per-language code export · embedded in your own docs site

Security engineers

scan · SARIF · intercepting proxy · templates

You're auditing an API surface that spans gRPC, GraphQL, MQTT, SignalR — protocols where Burp Suite and ZAP stop being useful. Recordings double as vulnerability templates; bowire scan replays each one against the target, emits SARIF for GitHub Code Scanning / GitLab / Azure DevOps, and the intercepting proxy with HTTPS MITM captures live traffic the way you're used to.

bowire scan · SARIF 2.1.0 · CA-trusted proxy · JWT toolkit

DevOps & platform engineers

CI/CD container · scan · mock · fuzz

You're wiring the CI/CD pipeline. Bowire ships as a single binary + Docker image that drops into any runner — bowire scan as a SAST gate, bowire mock spun up as an integration-test fixture for ephemeral environments, bowire fuzz as a security-regression step. Real exit codes, native SARIF output, no translation layer between the runner and your Code-Scanning surface.

bowire scan · bowire mock · bowire fuzz · GitHub Actions / GitLab CI / Azure DevOps

For another workflow: join the crew

Pick the right tool

Postman, Scalar, Swashbuckle, Insomnia, Bruno — every API tool has its sweet spot.
Here's where Bowire lands.

Bowire .NET + multi-protocol deployment

Shell tools (curl, HTTPie) aren’t listed — Bowire exports every call as a curl snippet when you need one.

Pick a tool above to see when it fits better than Bowire — and when Bowire is the right call.

Dig into the details

The positioning above is the quick read. The table below is the exhaustive top-5-competitors check — useful when you're evaluating Bowire for a specific project.

  • Full support
  • Partial / limited (hover for details)
  • Not supported
Bowire Postman Scalar Swashbuckle Insomnia Bruno
20+ 7 1 1 5 4
gRPC
REST / HTTP
SOAP (WSDL 1.1 discovery, 1.1 + 1.2 envelopes)
GraphQL partial
SignalR
MCP client only
JSON-RPC (OpenRPC rpc.discover)
SSE
WebSocket
MQTT
AMQP (0.9.1 RabbitMQ + 1.0)
NATS (core + JetStream + Services API)
Socket.IO
OData
AsyncAPI (discovery source — routes to MQTT / Kafka / WS wires) partial
Surgewave
Kafka
Apache Pulsar
DIS (IEEE 1278)
UDP (raw datagrams)
Akka.NET (mailbox tap)
TacticalAPI (situational awareness)
Custom protocol plugins
manual OpenAPI OpenAPI manual manual
gRPC Reflection
OpenAPI / Swagger import
GraphQL introspection
Proto file loading
Schema registry lookup planned
Embedded in ASP.NET app
Standalone tool
CLI mode
Enterprise (paid) Enterprise (paid)
Docker image
Compose manifest
Kubernetes / Helm planned manual
Air-gapped install Enterprise (paid) Enterprise (paid)
SSO / SCIM via host app (embedded) Enterprise (paid) Enterprise (paid) Enterprise (paid)
Native .NET via Scalar.AspNetCore
Collections partial
Record session
Replay against env
HAR export
Convert to test assertions via Inso CLI
Native export format .bwr Collection JSON Insomnia JSON .bru
Replay as mock server Free tier Free tier (1k req/mo)
Multiple duplex channels one at a time one at a time one at a time
paid cloud
Branching (if / else) paid cloud
Loops paid cloud
Delays / wait steps paid cloud
Variable forwarding paid cloud
Per-step assertions paid cloud
Performance / load testing
Security scanning secrets + governance
Local-first, no account account required cloud-hosted
Git-native workspace Git Sync (cloud)
via Surgewave Registry Public Workspaces Swagger UI partial
Hosted docs page Kong portal
Custom domain Enterprise (paid) Pro (paid)
Try-It-Out widget via client
API versioning via Surgewave Registry Pro (paid) manual
Catalog / search via Surgewave Registry Public API Network
✓ every protocol REST only REST docs only client only
Tools capability
Resources capability docs-as-resources
Prompts capability
stdio transport client only
SSE transport planned
HTTP transport planned
Recording start / stop
Environment list
Replay execute
Mock spin-up
Collection / workspace mgmt
License Apache 2.0 Proprietary MIT MIT Apache 2.0 (core only!) MIT
Price Free Freemium Freemium Free Freemium Free

Comparison reflects the public feature matrix as of 2026-04. Postman, Scalar, Swashbuckle, Insomnia and Bruno are excellent tools in their own niches — Bowire is designed for the .NET ecosystem and devs who want every protocol in one place, embeddable into their own service, with zero account walls.

Spotted something wrong? Tools move fast — if we’ve misrepresented a feature or missed one that has since shipped, please open an issue and we’ll update the matrix.

Below decks: tour every feature →

On course

A short look at what just landed — and what’s on the way.

AsyncAPI discovery source v1.5.0

Point Bowire at an AsyncAPI 2.x or 3.0 document and channels show up in the sidebar, routed through whichever wire plugin the doc’s bindings declare.

Nuclei template runner v1.5.1

The 8000+ Nuclei community templates feed the existing SARIF-emitting scan engine via bowire scan --nuclei. (v1.5.1 ships the CLI surface the engine has been waiting for.)

AMQP plugin reaches 1.0 v1.0.0

First sibling plugin to clear stable. One plugin, two wires (0.9.1 + 1.0) via URL scheme. Structured receive envelope, shared __bowireMtls__ + SASL marker, IBowireMockEmitter for recording replay, Testcontainers RabbitMQ integration suite covering publish + replay end-to-end. AsyncAPI bindings.amqp / bindings.amqp1 dispatch through it.

TacticalAPI plugin reaches 1.0 v1.0.0

Second sibling plugin out of RC. Rheinmetall situational-awareness gRPC, bundled-schema discovery, unary CRUD + server-streaming pump, shared __bowireMtls__ marker, TacticalApiMockEmitter for recording replay (unary + server-streaming) covered by in-process gRPC E2E suite. Sample server with MIL-2525C symbols + background mover.

Full MCP spec — resources + prompts v1.6.x

The MCP adapter now exposes Bowire’s primitives across all three MCP halves — tools (the actions: bowire.invoke, bowire.mock.start, …), resources (bowire://recordings, bowire://environments, per-service schema dumps), and prompts (canned AI workflows like replay-recording, scan-service).

Auth-provider extension SPI v1.6.x

Third extension type next to IBowireProtocol and IBowireUiExtensionIBowireAuthProvider, registered via assembly scan; --auth-provider <id> gates every workbench endpoint. First concrete impl: Kuestenlogik.Bowire.Auth.Oidc on Microsoft.Identity.Web, separate NuGet so the OIDC weight only lands when needed.

SOAP, NATS, JSON-RPC, Pulsar plugins

Four new in-tree wires shipped together. SOAP — WSDL 1.1 discovery + SOAP 1.1/1.2 envelopes, no WCF dependency. NATS — pub/sub, JetStream streams, Services API + queue groups on the official NATS.Net 2.x client. JSON-RPC — OpenRPC rpc.discover with named/positional params. Pulsar — topic discovery + produce/subscribe on DotPulsar 3.5.x.

Polyglot plugins via sidecar bridge

Plugins no longer have to be .NET assemblies. Run them as sidecar processes speaking JSON-RPC 2.0 over stdio (NDJSON) or HTTP + SSE — same dual-transport story as MCP. Install from a local zip, an http(s):// URL, or straight from an OCI registry (oci://ghcr.io/…). Python SDK out now (pip install bowire-plugin); Node / Go / Rust SDKs queued.

Mock as stand-in for the real service

Recordings now carry the original source schema (OpenAPI for REST, AsyncAPI for messaging, proto descriptors for gRPC). The mock serves the full contract back at /openapi.json, /asyncapi.yaml, or gRPC reflection — so peer Bowire (or any spec-aware tool) discovers the whole declared surface, not just the recorded slice. bowire export openapi|asyncapi turns it the other way: a live target back to a portable schema, with x-bowire-coverage showing which operations the recording replays deterministically vs. schema-generated.

Nothing on this list is a commitment — Bowire is built in the open, and priorities shift with what users actually hit in practice. If something here matters to you, file an issue or start a discussion.

Chart the course: roadmap on GitHub →

Join the crew

Bowire is Apache 2.0 and developed publicly on GitHub. Issues, pull requests, and the roadmap live in one place — all visible, all welcome.

All hands on deck: every community channel →

No paid tier, no account wall, no telemetry. Fork it, audit it, embed it.

Set sail. Discover APIs.