// the find
deviceinsight/kafkactl
Command Line Tool for managing Apache Kafka
kafkactl is a full-featured CLI for Apache Kafka, covering topics, consumer groups, ACLs, producers, consumers, and schema registries (Avro, JSON Schema, Protobuf). It targets developers and ops teams who find the stock kafka-topics.sh scripts painful and want something with proper context management, shell completion, and Kubernetes support.
The Kubernetes tunnel mode is genuinely useful — it spawns a pod and wires stdin/stdout so you can talk to a cluster that isn't directly routable without setting up a port-forward manually. Shell completion is dynamic, meaning it actually queries the broker to complete topic names and consumer group IDs, not just static subcommand lists. The multi-format serialization support (Avro, JSON Schema, Protobuf) is first-class rather than bolted on; it respects schema registry wire format on both produce and consume. Password handling is well-thought-out: OS keyring integration with a --clear-keyring escape hatch beats the typical 'put it in the config file' approach.
Kubernetes mode is still marked experimental and the implementation (spawning a pod per command) is slow and resource-wasteful for anything interactive. The config file is YAML-only with no environment variable story beyond the SCREAMING_CAPS convention — in CI pipelines you end up with verbose env var names like CONTEXTS_DEFAULT_SASL_PASSWORD which is awkward. There's no built-in way to stream metrics or monitor consumer lag continuously; you run describe and parse output, which means you're either scripting around it or reaching for a proper monitoring tool anyway. OAuth plugin support is limited to Azure and AWS, with a generic script escape hatch that works but pushes token refresh logic into bash.