ktea is a tool designed to simplify and accelerate interactions with Kafka clusters.
If you're a k9s user you'll love ktea!
brew tap jonas-grgt/ktea
brew install ktea
Binaries available at the release page.
Binaries available at the release page.
All tables can be navigated using vi like bindings:
- up:
j
- down:
k
- page down:
d
- page up:
u
All configuration is stored in ~/.config/ktea/config.conf
Multiple clusters can be added. Upon startup when no cluster is configured you will be prompted to add one.
- No Auth
- SASL (SSL)
- PLAIN
- Multi-Cluster Support: Seamlessly connect to multiple Kafka clusters and switch between them with ease.
- Topic Management: List, create, delete, and modify topics, including partition and offset details.
- Record Consumption: Consume records in text, JSON, and Avro formats, with powerful search capabilities.
- Consumer Group Insights: Monitor consumer groups, view their members, and track offsets.
- Schema Registry Integration: Browse, view, and register schemas effortlessly.
- Kafka Connect Integration: Browse, view, and Update clusters.
- Add more authentication methods
- Add support for more message formats such as protobuf.
- Add ACL management.
- File based import/export of topics.
- Add ability to delete specific schema versions.
- Add consumption templating support.
- Many more, just file an issue requesting a feature!
A docker-compose setup is provided to quickly spin up a local Kafka cluster with pre-created topics, consumer groups, commited offsets etc ...
cd docker
docker-compose up -d
After the local cluster is up and running, you can generate some data to work with,
usinggo run ./cmd/generate
.
Use go run -tags dev cmd/ktea/main.go
to run ktea
from the root of the repository.
Note: running the tui with dev build tag will simulate an artificial slow network by sleeping for 2 seconds when doing network IO. This way the loaders and spinners can be visually asserted.
Because of interfering testcontainers kafka brokers the tests, for now, can't be run in parallel. This will be fixed in the future.
go test -count=1 ./... -p 1