wharf
Now in early access

The command center for event-driven systems.

Test, debug, and understand Kafka and Pulsar messages without leaving your desktop.

wharf — orders-cluster-prod
orders.created · partition 3Publish
watched by @jt_dev · started 2m ago
○ord_92833#184293
○ord_92832#184292
○ord_92831#184291

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

wharf — orders-cluster-prod
inventory.updated · partition 0-3Publish
watched by @priyar · started 5m ago
○sku_18820#12043
✕sku_null_ref#12044
○sku_18821#12045
○sku_18822#12046

From broker to fixed, in one window.

  1. 1

    Connect

    Point Wharf at a Kafka or Pulsar cluster with your existing credentials.

  2. 2

    Explore

    Browse every topic and partition without a single CLI flag.

  3. 3

    Inspect

    Read headers, offsets, and payloads exactly as they were sent.

  4. 4

    Publish

    Send a test message straight from the same window.

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

Apache KafkaApache Pulsar

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.