Skip to content

jonas-grgt/ktea

Repository files navigation

Latest Release Build Status Go Coverage

🫖 ktea - kafka terminal client

ktea is a tool designed to simplify and accelerate interactions with Kafka clusters.

If you're a k9s user you'll love ktea!

topics-page.png

record-detail-page.png

record-page.png

Installation

Mac

brew tap jonas-grgt/ktea
brew install ktea

Linux

Binaries available at the release page.

Windows

Binaries available at the release page.

Usage

Navigation

All tables can be navigated using vi like bindings:

  • up: j
  • down: k
  • page down: d
  • page up: u

Configuration

All configuration is stored in ~/.config/ktea/config.conf

Cluster Management

Multiple clusters can be added. Upon startup when no cluster is configured you will be prompted to add one.

Supported Auth Methods

  • No Auth
  • SASL (SSL)
    • PLAIN

Features

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

Todo

  • 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!

Development

Dev cluster setup

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

Generate data

After the local cluster is up and running, you can generate some data to work with, usinggo run ./cmd/generate.

Run ktea

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.

Run tests

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