The command center for event-driven systems.
Test, debug, and understand Kafka and Pulsar messages without leaving your desktop.
$ brew install wharf-dev
Debugging event streams still means duct tape.
- No single view. Consumer lag lives in one tool, payloads in another, offsets in a third.
- CLI-only inspection. Reading a message means piping console consumers through jq and squinting.
- Replays are risky. Testing a fix against a real topic usually means writing a one-off script and hoping.
$ kafka-console-consumer --bootstrap-server $BROKER --topic orders --from-beginning | jq .
$ pulsar-admin topics stats persistent://public/default/orders
$ kafka-consumer-groups --describe --group orders-service
$ python replay_dlq.py --topic orders.dlq --limit 500
$ watch -n1 'kafka-run-class kafka.tools.GetOffsetShell...'
One visual surface for everything moving through your topics.
Wharf connects directly to your Kafka and Pulsar clusters and gives you a native desktop view of what's actually happening — no scripts, no relay server, nothing installed on the broker.
See it
Every topic, message, and payload rendered as readable, structured data.
Search it
Filter by key, header, or partition without writing a query.
Act on it
Publish a test message or replay one straight from the inspector.
Built to feel like a real developer tool, because it is one.
Connect a broker and Wharf gives you topics, partitions, offsets, headers, and payloads in one native window — the same information you'd assemble from four terminal tabs, laid out the way you'd actually want to read it.
From broker to fixed, in one window.
- 1
Connect
Point Wharf at a Kafka or Pulsar cluster with your existing credentials.
- 2
Explore
Browse every topic and partition without a single CLI flag.
- 3
Inspect
Read headers, offsets, and payloads exactly as they were sent.
- 4
Publish
Send a test message straight from the same window.
- 5
Debug
Spot the malformed event before it reaches your on-call.
What Wharf does today
No fake capabilities, no roadmap dressed up as a feature. This is what's in the app right now.
- topic-exploration
- Browse every topic and partition on a connected cluster, with live counts as messages arrive.
- message-inspection
- Read full payloads, headers, offsets, and timestamps for any message, formatted for humans instead of a raw console dump.
- search-and-filter
- Filter a topic's messages by key, header value, or partition without writing a consumer.
- publish
- Send a message to any topic directly from the inspector, starting from a real or hand-edited payload.
- kafka-and-pulsar
- Native support for both, using the same interface regardless of which broker you are connected to.
- local-first
- Wharf talks directly to your broker. No relay server, and nothing is stored outside your session.
Fits the stack you already run.
Wharf connects to your existing infrastructure. It doesn't ask you to route traffic through anything new.
More brokers are on the roadmap. Nothing beyond Kafka and Pulsar is supported yet.
Where this is headed
The place developers go to understand event-driven systems.
Today, Wharf is a desktop client for inspecting and debugging Kafka and Pulsar. Over time, the goal is bigger: a single surface where teams can understand, test, and operate the event-driven systems their products run on — not just look at them. That's the direction, not a shipped feature.
Build with Wharf.
Early access is rolling out gradually. Leave your email and we'll reach out when a spot opens up.