your Kafka desk clerk
A terminal UI for Kafka - topics, messages and consumer lag at a glance,
across all your environments. Built for AWS MSK: kitz signs in with your
~/.aws credentials (IAM, SASL OAUTHBEARER) - no cert or JAAS juggling - and
works just as well with any Kafka over plaintext or TLS.
- IAM-native auth - connects to MSK with your AWS credentials; plaintext and
plain-TLS clusters supported too (
auth = "iam" | "tls" | "plaintext"). - Environment hot-switch -
1–9to jump between stag / preprod / prod / regression without restarting. Prod is tagged red with a delete guardrail. - Topics - pick a topic and everything loads by itself: message count, partitions, replication, live msg/s, retention and limits in plain units, which consumer groups read it and how far behind they are, per-partition offsets. Under-replicated partitions are flagged.
- Consumer lag - every group (idle ones too) with its total lag; the group view breaks it down per partition and warns when nothing is consuming.
- Messages -
↵on a topic shows the latest messages, newest first, with pretty-printed JSON (key order kept); copy payload or key. - Admin - create topic, add partitions, delete topic/group, with typed confirmation on prod for anything irreversible.
kitz doctor <env>- layer-by-layer connectivity diagnosis.
Prebuilt binary (recommended) - no dependencies, nothing to compile:
# npm
npm install -g @harry-kp/kitz
# Homebrew
brew install Harry-kp/tap/kitz
# curl
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Harry-kp/kitz/releases/latest/download/kitz-installer.sh | sh
# cargo, prebuilt
cargo binstall kitzPrebuilt for macOS (Apple Silicon and Intel) and Linux x86_64. The Linux binary is fully static, so it runs on any distro - including the Amazon Linux bastion next to your MSK cluster. librdkafka and OpenSSL are baked in; there's nothing else to install. (Windows and Linux ARM aren't built yet.)
From source (cargo install) compiles librdkafka, so it needs cmake +
Xcode Command Line Tools:
brew install cmake
cargo install kitzkitz init # writes a commented starter config to ~/.config/kitz/config.toml
$EDITOR ~/.config/kitz/config.toml # your brokers, regions, auth
kitz # pick an environment - or `kitz stag` to open one directlyA single-environment config opens straight away. Config is read from
./kitz.toml, then ~/.config/kitz/config.toml, or --config <path>:
[[env]]
name = "stag"
bootstrap = "b-1.mycluster.xxxxx.kafka.eu-central-1.amazonaws.com:9092"
region = "eu-central-1"
auth = "plaintext" # 9092=plaintext · 9094=tls · 9098=iam
prod = falseCan't connect? MSK brokers live on private VPC addresses, so kitz has to run somewhere that can reach them (on a VPN that routes the VPC, or a bastion inside it).
kitz doctor <env>tells you whether it's the network, your credentials or the port, and the troubleshooting guide says what to do about each.
| Key | Action |
|---|---|
⇥ |
switch Topics ⟷ Consumer groups |
↑↓ / j k |
move · g / End top / bottom · PgUp PgDn scroll detail |
/ |
filter the list · esc clears |
↵ |
Topics: latest messages (r reload, y/Y copy) · Groups: open its topic |
c / a / d |
create / add partitions / delete |
y |
copy the selected name |
r |
refresh from the cluster |
1–9 / e |
switch environment / picker |
x · L · ? |
all actions · activity log · help |
q / ctrl-c |
quit |
kitz links librdkafka (built from source via cmake):
brew install cmake # macOS
cargo build --release- Troubleshooting - connection problems and what
kitz doctoroutput means - Security - what kitz does with your credentials and cluster
- Contributing - build, test, and what to discuss before a PR
MIT © Harry KP
Apache Kafka® is a registered trademark of the Apache Software Foundation. Amazon MSK and AWS are trademarks of Amazon.com, Inc. or its affiliates. kitz is not affiliated with or endorsed by either.
