A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.
Project description
kafka-shell
A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.
Kafka shell allows you to configure a list of clusters, and properties such as --bootstrap-server
and --zookeeper
for the currently selected cluster will automatically be added when the command is run. No more remembering long server addresses or ports!
Installation
Kafka shell requires python
and pip
. Kafka shell is a wrapper over the existing Kafka command-line tools, so
those must exist within your PATH
.
You can install kafka-shell using pip:
pip install kafka-shell
Usage
Kafka shell is an interactive shell. You can run it from the terminal by:
kafka-shell
From here, you can start typing kafka
and the autocomplete will kick in.
Key Commands
- Change Cluster: The selected cluster commands are run against can be cycled through by pressing
F2
. - Fuzzy Search: By default, fuzzy search of commands is enabled. This can be toggled on & off by pressing
F3
. - In-line Help: By default, in-line help is shown along side the drop-down suggestion list. This can be toggled on & off by pressing
F9
. - Exit: The shell can be exited by pressing
F10
or by typingexit
.
Configuration
Kafka shell allows you to configure settings and Kafka clusters to run commands against through a configuration file.
By default, when kafka-shell
is first run, a directory in your home directory is generated at ~/.kafka-shell
. A configuration file called config.yaml
is generated in that new folder. It is a YAML file containing details about clusters, kafka-shell
configuration, and more.
See CONFIGURATION.md to add a cluster to your configuration or to set other kafka-shell
settings.
Features
Kafka shell simplifies running complex Kafka CLI commands as well as provides smart auto-completion of commands, options, and more. /Users/shawn/.kafka-shell/config.yaml
- Auto-completion of commands, options, and configurations
- Configure clusters to run commands against and switch between them
- Fish-style auto suggestions
- Command history
- Contextual help
- Toolbar options
Completion of Configurations
Auto completion of Kafka configuration keys and their values.
Configure Clusters, Schema Registries, & More
Configure clusters and their properties will automatically be added to commands being run.
Supported Commands
Currently, the following commands are supported:
kafka-topics
kafka-configs
kafka-console-consumer
kafka-console-producer
kafka-avro-console-consumer
kafka-avro-console-producer
kafka-verifiable-consumer
kafka-verifiable-producer
kafka-preferred-replica-election
kafka-replica-verification
kafka-reassign-partitions
kafka-broker-api-versions
kafka-consumer-groups
kafka-delete-records
kafka-log-dirs
kafka-dump-log
kafka-acls
ksql
Helper Commands
Currently, kafka-shell has helper commands:
exit
: exit the shellclear
: clear the shellcluster-select
: select a clustercluster-describe
: describe a cluster config
In-line help for each command and option is shown by default. This can be toggled by F9
.
Contributing
Contributions are very welcome. See CONTRIBUTING.md for details.
Acknowledgement
This project was inspired by multiple amazing shells & prompts, such as saws, kube-shell, kube-prompt, http-prompt, and wharfee. It was built using prompt-toolkit. Much ❤️ to Apache Kafka and Confluent for their helpful CLI tools.
License
Copyright (c) 2019 Shawn Seymour.
Licensed under the Apache 2.0 license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file kafka-shell-0.1.4.tar.gz
.
File metadata
- Download URL: kafka-shell-0.1.4.tar.gz
- Upload date:
- Size: 30.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bd4bda672ef34f8045173ca27ab84721c435a2558514a12e5251c085cb87a79 |
|
MD5 | 123c41df80f6ed99c5de4f7680adb521 |
|
BLAKE2b-256 | 265dbbb152ff0448358fa8d5cea006a15a64bba84f02fbb7f13e084c040c23cb |
File details
Details for the file kafka_shell-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: kafka_shell-0.1.4-py3-none-any.whl
- Upload date:
- Size: 45.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.6.0 requests-toolbelt/0.8.0 tqdm/4.31.1 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 891e6e7e53967a7ff4330dde9a6ce2beba1fef0d905acea04cd09d9b38b76d46 |
|
MD5 | e8bb9b7a10f879f3ab04451ff83b2f6c |
|
BLAKE2b-256 | 6b3b7e06a2888c230fa9ac910fe8049a4dc1b3c60525b7a68ce4d2e9c951482e |