Content
<div align="center">
# Bowline
[](https://github.com/Kuestenlogik/Bowline/actions/workflows/ci.yml)
[](https://www.nuget.org/packages/KL.Bowline)
[](LICENSE)
**A multi-protocol API workbench for .NET — gRPC, REST, GraphQL, MQTT, SignalR, WebSocket, SSE, MCP, OData, Socket.IO, DIS, UDP — runs against any service URL with zero code changes.**
[Quickstart](https://kuestenlogik.github.io/Bowline/quickstart.html) · [Features](https://kuestenlogik.github.io/Bowline/features.html) · [Why Bowline](https://kuestenlogik.github.io/Bowline/why-bowline.html) · [Docs](https://kuestenlogik.github.io/Bowline/docs/) · [Downloads](https://kuestenlogik.github.io/Bowline/downloads.html)
[](https://kuestenlogik.github.io/Bowline/)
</div>
## What it is
Bowline is the workbench API engineers reach for when they need to **explore, invoke, record, mock, and replay** real network traffic — locally, embedded next to an ASP.NET service, or as a sidecar in CI. No cloud account, no SaaS, no proxy: it speaks the live wire across more than ten protocols and saves what it sees in a single, replayable format.
## Install
```bash
# Windows (Winget)
winget install KuestenLogik.Bowline
# macOS / Linux (Homebrew)
brew tap kuestenlogik/bowline && brew install bowline
# Cross-platform (.NET tool)
dotnet tool install -g KL.Bowline.Tool
# Container
docker run --rm -p 5080:5080 ghcr.io/kuestenlogik/bowline:latest
```
→ **[Read the 5-minute Quickstart](https://kuestenlogik.github.io/Bowline/quickstart.html)** — covers the standalone CLI path *and* embedded ASP.NET integration.
## Embedded mode
Mount Bowline inside an existing ASP.NET app — discovery picks up your services from the live `IServiceProvider`:
```bash
dotnet add package KL.Bowline
```
```csharp
var app = WebApplication.Create(args);
app.MapBowline(); // visit /bowline
app.Run();
```
→ See [Setup → Embedded](https://kuestenlogik.github.io/Bowline/docs/setup/embedded.html) for the per-protocol wiring.
## What's in it
- **Multi-protocol discovery** — gRPC Reflection, OpenAPI, GraphQL introspection, SignalR hub metadata, MCP `initialize`, MQTT topic scan, OData `$metadata`. One tool, one mental model.
- **All call types** — unary, server-streaming, client-streaming, duplex. Wireshark-style streaming UI with append-only frame list and per-frame detail.
- **Recordings + replay** — capture sessions, replay against any URL, export as HAR or self-contained HTML CI report.
- **Mock server** — `bowline mock --recording <file>` replays a recording as a local API endpoint. Chaos injection, schema-only mocks (OpenAPI / proto / GraphQL SDL), and capture-on-miss for spec-by-example.
- **AI bridge (MCP)** — Bowline exposes its own discover / invoke / record operations as MCP tools so agents (Claude Desktop, Cursor, Copilot) can drive it directly.
- **Standalone or embedded** — `bowline` CLI tool, OCI container, or `app.MapBowline()` next to your services. Same engine.
- **Plugins** — extend with `IBowlineProtocol`. First-party plugins ship as separate NuGet packages so the host stays light (DIS, UDP, Socket.IO, OData, …).
## Why this and not Postman / grpcurl / Insomnia
| | Bowline | Postman | grpcurl |
|---|---|---|---|
| Multi-protocol (gRPC + REST + WS + MQTT + …) | yes | partial | gRPC only |
| Embedded into your service | yes | no | no |
| Local-first, no cloud account | yes | no | yes |
| Recordings → mocks → replay end-to-end | yes | no | no |
| Open source, plugin architecture | yes (Apache 2.0) | no | yes |
→ Full feature-by-feature breakdown in the [Why Bowline](https://kuestenlogik.github.io/Bowline/why-bowline.html) tour.
## Documentation
- [Quickstart](https://kuestenlogik.github.io/Bowline/quickstart.html) — zero to first call in five minutes
- [Features](https://kuestenlogik.github.io/Bowline/features.html) — guided tour of every workbench surface
- [Setup](https://kuestenlogik.github.io/Bowline/docs/setup/) — embedded, standalone, Docker, sidecar
- [Protocols](https://kuestenlogik.github.io/Bowline/docs/protocols/) — per-protocol setup, conventions, gotchas
- [Architecture](https://kuestenlogik.github.io/Bowline/docs/architecture/) — plugin model, host packages, ALC isolation
- [API reference](https://kuestenlogik.github.io/Bowline/docs/api/) — DocFX-generated reference for every public type
## Roadmap & Community
- [ROADMAP.md](ROADMAP.md) — what shipped, what's planned, what's deliberately out of scope
- [Community](https://kuestenlogik.github.io/Bowline/community.html) — Discord, Discussions, Issues, Contributions
- [CONTRIBUTING.md](CONTRIBUTING.md) — how to write a plugin, run the smoke tests, prepare a PR
## License
[Apache 2.0](LICENSE)
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
servers
Model Context Protocol Servers
servers
Model Context Protocol Servers
Time
A Model Context Protocol server for time and timezone conversions.