Bowire

All Your Protocols. One UI. One Setup.

The multi-protocol API workbench. Discover, invoke, record, replay, mock, scan.
Across 20+ protocols in the plugin family: a dozen bundled, the rest one bowire plugin install away, plus 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 — a dozen bundled in the standalone install, the rest one bowire plugin install away.

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 {{prev.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

Surgewave tap-stream subscription, Connect (Buf) phases 1 + 3 (unary + bidi-streaming over HTTP/2). OTLP receive-side has already shipped as a first-party plugin (Kuestenlogik.Bowire.Protocol.Otlp). 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
GraphQL partial
SignalR
MCP client only
JSON-RPC
SSE
WebSocket
MQTT
AMQP
NATS
Socket.IO
OData
AsyncAPI partial
Surgewave
Kafka
Apache Pulsar
DIS (IEEE 1278)
UDP (raw datagrams)
Akka.NET (mailbox tap)
TacticalAPI (situational awareness)
OTLP (OpenTelemetry listener)
Custom protocol plugins
manual OpenAPI OpenAPI manual manual
gRPC Reflection
OpenAPI / Swagger import
GraphQL introspection
Proto file loading
Service catalogue (Consul / Kubernetes) paid cloud
Schema drift watch paid cloud
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
Correlated multi-protocol timeline
Native export format .bwr Collection JSON Insomnia JSON .bru
Replay as mock server Free tier Free tier (1k req/mo)
Mock from schema (no recording) examples REST only
Mock engine depth basic basic
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
CI test runner (JUnit / SARIF / HTML) Inso CLI
Contract testing (consumer / provider) schema checks
Snapshot testing
Data-driven test runs Inso CLI CLI
Endpoint test coverage
Security scanning ✓ OWASP API Top 10 secrets + governance
Out-of-band (OAST) detection
API monitoring / scheduled probes ✓ local cloud
Traffic interception / reverse proxy capture only
AI assistant (local-first, BYOK) cloud
Local-first, no account account required cloud-hosted
Git-native workspace Git Sync (cloud)
internal ✓ / public via 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 ✓ built-in 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
Streamable HTTP transport
✓ 15 tools
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-08. 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.

The Security pillar v2.3

bowire scan runs the full OWASP API Security Top 10 — 10/10, with protocol-specific probes for GraphQL, gRPC, WebSocket, SSE, MQTT and MCP — plus an opt-in active attack tier and a complete out-of-band (OAST) chain with a self-hosted bowire oast serve catcher. bowire vulndb update keeps the curated template corpus fresh, and the new Monitoring rail runs saved recordings as scheduled health probes with Slack / PagerDuty / OTLP signalers.

The Test pillar v2.2

Flow expectations, snapshot testing (exact | structural, git-committed baselines), data-driven runs (inline / CSV / generator), Pact-style contract testing (bowire contract publish|verify), and the headless CI runner bowire test with JUnit / SARIF / HTML reports and --fail-on gates. Regression-coverage chips in the sidebar show which endpoints your runs actually touch.

Compose + the pluggable workbench v2.1

The Compose rail builds free-form requests next to the discovered tree, and the workbench itself became plugins all the way down: Bundle.Workbench for the full tool, Bundle.Minimal for a tiny embedded probe, UI rails and heavy dependencies in installable sibling packages. app.UseBowireInterceptor() turns any ASP.NET host into a transparent traffic tap.

Workbench 2.0 + git-backed workspaces v2.0

The IDE-shaped workbench — rail strip, command palette, statusbar — on top of committable workspaces: bowire workspace init materialises a project as a folder of per-entity JSON files that your team reviews, diffs and merges like any other code, secrets kept in a gitignored sibling tree.

MCP, all four roles SDK 2.0

On the official MCP C# SDK 2.0 (revision 2026-07-28): Bowire is an MCP client (discover + invoke tools, resources and prompts over streamable HTTP), an MCP server (bowire mcp serve, stdio + HTTP — 15 tools, 8 resources, 4 prompts, mutating actions behind a confirmation gate), an adapter that exposes any discovered API as MCP tools for your agents, and bowire scan ships OWASP-mapped MCP security probes.

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.