The questions people ask most, grouped roughly in the order you'd meet them. If your question isn't here, Getting Help & Reporting Issues says where to look next and how to ask us.
About KafkIO
What is KafkIO?
A desktop application for working with Apache Kafka: browse, search, stream and produce messages, manage topics, consumer groups, schemas, ACLs, Kafka Connect connectors and ksqlDB, and keep an eye on cluster health. It runs on Windows, macOS and Linux. Introduction has the full tour, and the features page the highlights.
Is KafkIO free?
Yes, for personal and commercial use, with no ads, paid tiers or accounts. It's free but not open source: the licence lets you install, use and redistribute it unchanged, but not modify it (Licence sums it up). Donations (Help ▸ Donate to KafkIO, or the heart in the toolbar) help cover the cost of building and hosting it (Supporting KafkIO).
What do I need to run it? Do I need Java?
A 64-bit Windows PC, a Mac (Apple Silicon or Intel, each with its own build) or a 64-bit Linux desktop. You don't need Java: every download includes the runtime KafkIO uses, and leaves any Java you already have alone. Besides that, KafkIO only needs network access to your clusters, and internet access to check for updates. See System requirements and Which file to download.
Does KafkIO collect telemetry or send my data anywhere?
No. KafkIO has no telemetry, and your cluster details, credentials and messages go only to the clusters and services you configure. The one call KafkIO makes on its own is the check for new versions, which you can turn off (Turning off update notifications). A bug report you choose to send contains only what you typed in the form (What's sent). See Privacy.
How do I update KafkIO, and how often are there new versions?
New versions come out every few weeks. KafkIO checks shortly after it starts and then daily, and offers to open
the download page when there's a newer one; Help ▸ Check for Updates checks
straight away. It doesn't install anything itself: install the new version over the old one, or use
scoop update kafkio or brew upgrade kafkio if you installed it that way
(Updating KafkIO). What changed is in the
release notes.
Which version am I running?
Help ▸ About KafkIO shows the version and build details (About KafkIO).
Connecting
Which Kafka distributions and cloud services does it work with?
Anything that speaks the Kafka protocol: Apache Kafka (including Kafka 4 and KRaft clusters), Confluent Platform and Confluent Cloud, Amazon MSK, Azure Event Hubs, Aiven, Strimzi and WarpStream, among others. Provider Recipes lists what to enter for each.
Which security and authentication options are supported?
Plaintext, SSL/TLS (including mutual TLS) and SASL with PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, GSSAPI (Kerberos), OAUTHBEARER and AWS MSK IAM, with built-in examples for Amazon MSK, Azure Event Hubs and Strimzi OAuth. See Security & Authentication; for Kerberos, Kerberos preferences set the realm and KDC.
Do I need to convert my certificates to JKS?
Usually not. KafkIO reads JKS, PKCS12 (.p12, .pfx) and PEM files directly: choose the
matching Truststore type or Keystore type
(Supported certificate and key
formats). For a managed service with a public certificate authority, leave the truststore blank. If you
do want a Java keystore, the JKS Converter makes one.
Why does connecting time out?
A Kafka client that gets no usable answer can't tell why, so a closed port, the wrong security settings and a broker advertising an address you can't reach all end in the same timeout. Check, in this order, that the port is reachable (the Network Tool), that the security type matches that listener, and that the brokers' advertised addresses work from your machine. Troubleshooting Connections: Timeouts walks through each.
Kafka runs in Docker on my machine and the port is open, but KafkIO can't connect. Why?
The broker answered, then told KafkIO to use the address in its advertised.listeners, typically
the container's name, which only resolves inside Docker. The fix is on the broker: advertise
localhost and the published port (Kafka
in Docker). Tools ▸ Sample Docker Compose gives you a setup that already
works (Sample Docker Compose).
I'm connected, but some topics, consumer groups or broker details are missing.
That's almost always your login's ACLs: KafkIO shows only what the cluster lets you describe, without saying that something is hidden, and actions you aren't allowed fail when you try them (Limited permissions). Ask your Kafka administrator for the operations you're missing.
Can KafkIO connect through a proxy?
For HTTP only: the update check, and the Schema Registry, Kafka Connect and ksqlDB endpoints on which you tick Use proxy (if configured). Connections to Kafka brokers never use a proxy, so you need to be on the brokers' network or its VPN. Set the proxy up under Network, Proxy & Trust; Proxies and corporate networks covers the usual problems.
Does it support a Schema Registry that needs a login or TLS?
Yes: basic authentication, OAuth (client credentials or a static token), extra HTTP headers and TLS, with several URLs for failover. See Schema Registry Connection. Kafka Connect and ksqlDB have the same options, and a cluster can have several of each (Kafka Connect Connections, ksqlDB Connections).
My Schema Registry, Connect or ksqlDB uses a self-signed certificate. What do I do?
Either set a truststore holding that certificate on the endpoint's tab, or leave it blank and rely on the trust settings in File ▸ Preferences ▸ Network, which accept any certificate by default (Self-signed certificates on REST endpoints). Brokers are different: their certificates are checked against the truststore on the cluster's Kafka Security tab (Truststores).
Topics and messages
How do I find a message containing some text?
Type it into the search form's Text filter and choose whether to look in the key,
the value or the headers. Plain text is case-sensitive; regular expressions are supported, and
(?i) ignores case (Filtering by
text). The filter matches the decoded text, so pick the right deserializer first.
How do I see the messages from a particular time or offset?
Change the search type to start from a date and time, or from an offset, and narrow the search to particular partitions if you like (Search types).
Why do my messages look like garbled text?
They're binary (Avro, Protobuf, a number) shown with a text deserializer. When a deserializer can't decode a
message, KafkIO falls back to showing it as text rather than failing. If the bytes start with 00
followed by a four-byte schema ID, choose Schema Registry
(When decoding fails).
Can KafkIO read Avro, Protobuf and JSON Schema messages?
Yes, through the cluster's Schema Registry, for both reading and producing. Set up the registry (Schema Registry Connection), then choose the Schema Registry deserializer (Schema Registry formats). Strings, JSON, numbers and raw bytes have their own built-in deserializers.
Can I watch new messages arrive?
Yes: a live stream shows messages as they're written, can wait for one that matches a filter, and can play a sound for each (Streaming Messages Live).
How do I produce lots of test messages, each slightly different?
Set the number of messages in the Produce dialog and put ${…} variables such as
${counter} or ${random.int:1:20} in the key, value or headers: each message gets
fresh values (Variable substitution).
Save a message you send often as a template.
You can have several Produce dialogs open at once, for the same topic or different ones.
Can I export a topic's messages to a file?
Yes: a dump writes the messages your search describes to a delimited text file, with the fields you choose, in the foreground or in the background (Dumping a Topic to a File).
Why is Clear Messages greyed out for a topic?
The topic is compacted (cleanup policy compact), and Kafka doesn't allow deleting messages by
offset on a compacted topic. Re-create it instead, with its settings included
(Compacted topics).
Can I reduce a topic's partitions?
No: Kafka can add partitions but never remove them. Adding them also moves keyed messages to different partitions from then on (Increasing partitions). To have fewer, create a new topic.
Can I hide topics like __consumer_offsets?
There's no switch, but a regex filter of ^[^_] leaves them out
(Internal topics). To keep the topics you use most
within reach, star them as favourites.
Working with a cluster
How do I see consumer lag?
The Consumers section lists every consumer group with its state and total lag; select one for the lag per topic and partition (Understanding consumer lag). A topic's own Consumers tab shows the groups that read it (Consumers tab).
How do I reset a consumer group's offsets?
Stop the group's consumers first: Kafka only lets you move the offsets of an inactive (EMPTY)
group. Then use Offsets Tweak to move them to the start, the end, a point in
time or a specific offset (Tweaking offsets).
Where do I see under-replicated partitions and other problems?
On the cluster's Overview, and per topic on its Overview tab. The Health Log checks every connected cluster every 30 seconds and shows when one stops answering.
Can I manage schemas, ACLs, Kafka Connect and ksqlDB?
Yes, each in its own section of the cluster: register and evolve schemas and set compatibility levels (Schema Registry), create and delete ACLs (Access Control Lists), create, pause, restart, duplicate and delete connectors (Kafka Connect), and run KSQL statements and push queries (ksqlDB).
The workspace
Can I have several clusters, sections or topics open at once?
Yes. Connect as many clusters as you like; each gets its own tab. To see two sections of one cluster side by side, or two topics, click Duplicate Tab beside a section's title (Duplicating a tab). Give each cluster a colour (green for development, red for production) so you never mistake one for another (Cluster colours).
Is there a light theme? Can I make the text bigger?
Both are in File ▸ Preferences: Visual theme switches between Dark (the default) and Light, and you can override the font size (General & Appearance). View ▸ Compact Tables fits more rows on screen.
How much memory is KafkIO using?
The right end of the status bar shows it; click the figures for more detail (The status bar). On busy topics, a smaller page size and keeping long streams light keep it down.
Settings and files
Where are my cluster configurations stored? How do I move them to another computer?
In one file, clusters.json, which Tools ▸ Show Config In opens
(Where configurations are
stored). There's no import or export for clusters: copy the file, with KafkIO closed, and the certificate
files it points to (Sharing
configurations between machines). Preferences have their own
export and import.
Are my passwords encrypted?
No. Cluster passwords (in JAAS configurations, truststores and keystores, Schema Registry logins) are saved in
clusters.json in plain text, so treat that file like a password file. The proxy password is the
exception: if you save it, it goes into your system's keychain
(How passwords are stored).
A setting broke something. How do I reset it?
Reset preferences in the Preferences window puts everything back to its defaults
(your clusters are kept). If KafkIO won't start or is unusable, start it from a terminal with
--delpr and the preference's name, or --delpr all
(Resetting preferences).
Can I run KafkIO from a USB stick?
On Windows and Linux, yes: run the portable version and turn on Memory Stick Mode, which keeps your clusters, certificates and preferences next to the program (Memory Stick Mode).
Where are the log files?
Tools ▸ Show Logs In opens them, and Help ▸ View Event
Log shows everything logged since KafkIO started. For more detail, start KafkIO with
--debug (Log files and debug
mode).
Getting help
How do I report a bug or ask for a feature?
Use Help ▸ Feedback / bug?, or Report in any error dialog, which fills in the error's details for you. Both send the form straight to the KafkIO team and give you a ticket ID (Reporting bugs and requesting features). You can also use the contact page.
Is paid support available?
Yes: custom features, training and direct support are described on the Support page.