Bowire

All Your Protocols. One UI. One Setup.

The multi-protocol API workbench for .NET with support for gRPC, REST, GraphQL, SignalR, WebSocket, SSE, MQTT, Socket.IO, OData, MCP, Storm, Kafka, DIS, UDP, and your custom protocol — all in a single tool.
No cloud restriction. No account required. 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, Storm, 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.

Straight into the water

Three steps from slipway to running Bowire.

Which boat are you stepping into today?

Different rig: see every download →

Why Bowire?

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

15+

Protocols in One UI

  • gRPC
  • REST
  • GraphQL
  • SignalR
  • WebSocket
  • SSE
  • MQTT
  • Socket.IO
  • OData
  • MCP
  • Storm
  • Kafka
  • DIS
  • UDP
  • 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 (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.

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). 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

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

Storm

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

$ bowire plugin install Kuestenlogik.Bowire.Protocol.Storm

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

Coming soon

SOAP for enterprise legacy, NATS for cloud-native messaging, AMQP for RabbitMQ / ActiveMQ, Connect (Buf) over HTTP/1.1+JSON. More on the roadmap →

Planned plugins

Your Protocol

Implement IBowireProtocol to add support for any protocol. Bowire discovers plugins automatically via assembly scanning — drop a DLL into ~/.bowire/plugins/ and it's loaded at the next startup.

// implement IBowireProtocol in your own package

For another protocol: join the crew

Built for four kinds of workflows

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

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

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 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
15+ 7 1 1 5 4
gRPC partial
REST / HTTP
GraphQL partial
SignalR
MCP
SSE
WebSocket
MQTT
Socket.IO
OData
Storm
Kafka
DIS (IEEE 1278)
UDP (raw datagrams)
Akka.NET (mailbox tap)
Custom (plugin)
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 planned
Compose manifest planned
Kubernetes / Helm planned manual
Air-gapped install Enterprise (paid) Enterprise (paid)
SSO / SCIM Enterprise (paid) Enterprise (paid) Enterprise (paid)
Native .NET (no Electron) via Scalar.AspNetCore
Collections partial
Record session
Replay against env
HAR export
Convert to test assertions via Inso CLI
Native export format .blr Collection JSON Insomnia JSON .bru
Replay as mock server paid cloud self-host (Enterprise)
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 k6 (separate)
Local-first, no account account required cloud-hosted account required
Git-native workspace planned Git Sync (cloud)
via Storm 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 Storm Registry Pro (paid) manual
Catalog / search via Storm Registry Public API Network
any protocol full MCP server REST docs only client only
Tools capability
Resources capability planned docs-as-resources
Prompts capability planned
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 →

What’s next

A short look at what’s on the roadmap.

Replay recordings as a mock server

A bowire mock CLI that turns any captured recording into a live endpoint — same services, same payloads, same timing. Swap protocols on match, simulate latency, hot-reload on edit.

More protocols: SOAP, NATS, Akka.NET

SOAP for the enterprise legacy that still runs your invoicing, NATS for cloud-native messaging, Akka.NET actor inspection for distributed-system introspection. One UI, three very different wire protocols, zero context-switching.

Full MCP spec + AI-driven testing

Expose Bowire’s own discovery / invoke / record primitives as MCP tools so an agent can chain discover → invoke → assert → switch env → replay. Ship the full MCP spec — resources + prompts alongside tools, plus SSE / HTTP transport so remote clients like Cursor and Copilot can connect without stdio.

Sidecar packaging for non-.NET teams

First-class Docker / Compose / Kubernetes images so teams running Go, Rust, Python, or Node services can drop Bowire next to their API with a single manifest — no .NET toolchain on the host required.

Schema registry + proto / Hyperion decoding

Ship a message-type registry (Storm-compatible) that feeds the protocol plugins. Binary Proto payloads and Akka.NET Hyperion-serialized messages decode inline — no need to pre-load every .proto file or manually register types.

Doubles as a developer-to-developer schema distribution channel: publish your API’s schemas to the registry, and any Bowire instance can pull and explore them — the OSS alternative to Postman Public Workspaces or hosted Scalar docs, without a marketing portal.

Kafka / Storm topics

Browse topics as services, produce & consume messages with consumer-group awareness, decode payloads through the schema registry (Avro, Proto, Hyperion). One UI for request/response and event-stream surfaces in the same stack.

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 →

Ship Bowire in 60 seconds

Four ways to run Bowire — from builtin to scripting. Pick what fits your workflow.

Add Bowire to your ASP.NET app. Auto-discovery for every protocol you install.

bash
# Add Bowire core
dotnet add package Kuestenlogik.Bowire

# Add gRPC protocol (pick the ones you need)
dotnet add package Kuestenlogik.Bowire.Protocol.Grpc
csharp
builder.Services.AddBowire(); // auto-configure installed protocols

// ... your app setup ...

app.MapBowire();              // mount UI + API at /bowire

Set sail: downloads →

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 catch. No paid tier, no account wall, no telemetry. Every feature on this page is in the free tier, because there is no other tier. Fork it, audit it, embed it in commercial products.

Cast off: ship Bowire →

Set sail. Discover APIs.