Skip to content

ntk v1.0.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 12:50
7071e62

The first stable release of ntk, a CLI and terminal UI for Apache Kafka. It covers the day-to-day work of inspecting clusters, moving messages, watching lag and fixing things, in a single binary.

Highlights

  • Profiles for every cluster: keep connection details for all your clusters in one file and switch with -p. Supports plaintext, TLS, mTLS (including encrypted keys) and SASL PLAIN or SCRAM. ntk profile create walks you through it, can import a Java client.properties, and ntk profile test checks DNS, TCP, TLS, SASL and metadata one step at a time.
  • Topics: list, describe, create with presets, change configs with human units like 7d or 4MiB, add partitions, truncate, reassign replicas and run leader elections.
  • Consume and produce as raw bytes: no decoding, no surprises. Read from any position (--from -1h, -10, @offset), pipe values to other tools, export to lossless JSON Lines and replay them with produce --in jsonl.
  • A command per message: consume -o exec:<command> runs a command for each message with the bytes on stdin and the key, partition and offset in NTK_* variables.
  • Mirroring: copy a topic between clusters with produce --from-topic --from-profile, through a pipe with -m, or over a Unix socket with consume -o unix: and produce --in unix:. Keys, headers and tombstones are kept.
  • Consumer groups: lag per partition, members and assignments, and offset resets that show a dry run until you add --execute, in the CLI and in the TUI, where partition lists like orders:0,3-5 work too. Classic groups, the new consumer protocol and share groups are all understood.
  • Monitoring: live throughput and lag with topic watch and group watch, rankings with top, time lag and an ETA to catch up, stuck-consumer detection, and ntk health for a one-line cluster check. group lag and health exit non-zero on problems, so they work in scripts and CI.
  • Access control: ACLs granted by role (acl grant consumer, producer, streams-app and more), acl check to see why a principal can or can't do something, export and import, SCRAM users and quotas.
  • Transactions: find hanging transactions that block consumers, and abort them.
  • Terminal UI: run ntk to browse topics, messages, groups, ACLs and cluster health, with the same safety checks as the CLI.
  • Safe by default: risky changes show a plan and ask before doing anything, and --dry-run previews any change to the cluster without touching it, including produce. Read-only profiles refuse writes. Deleting topics by pattern, and anything destructive on a prod profile, needs a typed confirmation, and acl delete refuses filters that would match ACLs across the whole cluster.

Install

  • Binaries for Linux (amd64, arm64, armv7), macOS (Intel and Apple silicon), Windows (amd64, arm64) and FreeBSD (amd64) are attached below, with a checksums file.
  • Docker: ghcr.io/ntailio/ntk:v1.0.0, also tagged latest
  • Go: go install github.com/ntailio/ntk/cmd/ntk@v1.0.0

Good to know

  • Tested against Apache Kafka 4.3 in KRaft mode.
  • OAUTHBEARER, AWS MSK IAM and Kerberos authentication aren't supported yet.
  • On Windows, everything works except the Unix socket input and output.
  • Coming from v1.0.0-rc.1? topic delete --regex with -y now also needs --confirm, and acl delete needs a --principal or a resource.