Repository navigation
Releases: ntailio/ntk
Release list
ntk v1.2.0
Log in to more managed Kafka services, with OAUTHBEARER and AWS MSK IAM, and decide per profile what happens with destructive commands.
Breaking changes
--confirmand typed confirmation are gone. Destructive commands no longer ask you to type a name. Each profile's newdeletion_preventionsetting decides instead (see below), and the default asks y/N. Remove--confirmfrom scripts;-yis all they need.- Profile labels are gone, and
prodis no longer special. Thelabelsfield and--labelsflag were removed, so aprodlabel no longer changes how ntk confirms anything. To protect a production profile, setntk profile edit prod --set deletion_prevention=always, or--set read_only=true. - Tombstones on compacted topics and unclean leader elections now count as destructive. With the default setting they ask first, so a script that sends tombstones without
-ywill stop and ask. Add-y, or setdeletion_preventiontoneveron that profile.
Highlights
- OAUTHBEARER authentication, for Confluent Cloud, Strimzi with Keycloak, Azure Event Hubs and other OAuth setups. The token comes from client credentials (ntk fetches it from your identity provider), a file another tool keeps up to date, or a command that prints it. Tokens from an identity provider are cached between runs until shortly before they expire. SASL extensions are supported for services that need them, such as Confluent Cloud's
logicalCluster. - AWS MSK IAM authentication. ntk finds AWS credentials the way the AWS CLI does (environment,
~/.awsprofiles including SSO, EC2, ECS and EKS roles), and you can name an AWS profile or a role to assume. deletion_preventionon every profile.alwaysrefuses destructive commands, even with-y;prompt, the default, shows the plan and asks;neverjust runs them.--dry-runalways works.- Every profile gets its own colour. New profiles get a colour no other profile uses, shown in prompts and the TUI header. You can still set one yourself, as a hex value like
#ff00eeor a name likered.
Install
- Binaries for Linux (amd64, arm64, armv7), macOS (Intel and Apple silicon), Windows (amd64, arm64) and FreeBSD (amd64) are attached below, each with a
.sha256file. - Docker:
ghcr.io/ntailio/ntk:v1.2.0, also taggedlatest - Go:
go install github.com/ntailio/ntk/cmd/ntk@v1.2.0
ntk v1.1.0
Windows gets the same pipe-friendly messaging as Linux and macOS: named pipes now do what Unix sockets do elsewhere.
Highlights
-
Named pipes on Windows.
consume -o npipe:<name>sends each Kafka message as one pipe message, andproduce --in npipe:<name>creates a pipe and produces every message written to it, from any number of senders at once. It works like the Unix socket support:-mcarries keys, headers and tombstones,--npipe-waitwaits for the pipe to appear,--receiptand--idle-timeoutwork as you'd expect, and ctrl-c produces whatever was already sent before exiting.ordersis short for\\.\pipe\orders.ntk -p staging p orders --in npipe:orders -m ntk -p prod c orders -f -m -o npipe:orders --npipe-wait
-
A
.sha256next to every binary. Instead of one combined checksums file, each download now has its own, sosha256sum -c ntk-v1.1.0-linux-amd64.sha256checks just the file you downloaded.
Fixes
topic add-partitionswaits until the new partitions are everywhere. It used to return as soon as the controller accepted the change, so adescribeorproduceright after it could still see the old partition count on some brokers.
Install
- Binaries for Linux (amd64, arm64, armv7), macOS (Intel and Apple silicon), Windows (amd64, arm64) and FreeBSD (amd64) are attached below, each with a
.sha256file. - Docker:
ghcr.io/ntailio/ntk:v1.1.0, also taggedlatest - Go:
go install github.com/ntailio/ntk/cmd/ntk@v1.1.0
Good to know
- Windows is now fully supported. Everything that used a Unix socket has a named pipe equivalent.
- Includes the fix from v1.0.1 for messages lost when stopping
produce --in unix:.
ntk v1.0.1
A bug fix release for the Unix socket input.
Fixes
- Stopping
produce --in unix:no longer loses messages. On ctrl-c or SIGTERM, ntk is meant to produce every message already waiting on the socket before it exits. A timing issue could make it stop reading too early, so messages that had already been sent to the socket were dropped. It now reads the whole queue every time.
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.1 - Go:
go install github.com/ntailio/ntk/cmd/ntk@v1.0.1
ntk v1.0.0
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 createwalks you through it, can import a Javaclient.properties, andntk profile testchecks DNS, TCP, TLS, SASL and metadata one step at a time. - Topics: list, describe, create with presets, change configs with human units like
7dor4MiB, 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 withproduce --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 inNTK_*variables. - Mirroring: copy a topic between clusters with
produce --from-topic --from-profile, through a pipe with-m, or over a Unix socket withconsume -o unix:andproduce --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 likeorders:0,3-5work too. Classic groups, the new consumer protocol and share groups are all understood. - Monitoring: live throughput and lag with
topic watchandgroup watch, rankings withtop, time lag and an ETA to catch up, stuck-consumer detection, andntk healthfor a one-line cluster check.group lagandhealthexit non-zero on problems, so they work in scripts and CI. - Access control: ACLs granted by role (
acl grant consumer,producer,streams-appand more),acl checkto 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
ntkto 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-runpreviews any change to the cluster without touching it, includingproduce. Read-only profiles refuse writes. Deleting topics by pattern, and anything destructive on aprodprofile, needs a typed confirmation, andacl deleterefuses 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 taggedlatest - 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 --regexwith-ynow also needs--confirm, andacl deleteneeds a--principalor a resource.
ntk v1.0.0-rc.1
The first release candidate 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. Please try it against your clusters and open an issue for anything that breaks or feels wrong before v1.0.0.
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 createwalks you through it, can import a Javaclient.properties, andntk profile testchecks DNS, TCP, TLS, SASL and metadata one step at a time. - Topics: list, describe, create with presets, change configs with human units like
7dor4MiB, 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 withproduce --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 inNTK_*variables. - Mirroring: copy a topic between clusters with
produce --from-topic --from-profile, through a pipe with-m, or over a Unix socket withconsume -o unix:andproduce --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. Classic groups, the new consumer protocol and share groups are all understood. - Monitoring: live throughput and lag with
topic watchandgroup watch, rankings withtop, time lag and an ETA to catch up, stuck-consumer detection, andntk healthfor a one-line cluster check.group lagandhealthexit non-zero on problems, so they work in scripts and CI. - Access control: ACLs granted by role (
acl grant consumer,producer,streams-appand more),acl checkto 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
ntkto browse topics, messages, groups, ACLs and cluster health, with the same safety checks as the CLI. - Safe by default: changes to topics, configs, groups and ACLs show a plan first and can be previewed with
--dry-run, read-only profiles refuse writes, andprodprofiles ask you to type the name before anything destructive.
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-rc.1 - Go:
go install github.com/ntailio/ntk/cmd/ntk@v1.0.0-rc.1
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.
- This is a release candidate, so command flags may still change before v1.0.0.