Skip to main content

A supercharged, interactive Kafka shell built on top of the existing Kafka CLI tools.

Project description

kafka-shell

Build Status codecov PyPI PyPI - Python Version License

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 typing exit.

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 shell
  • clear: clear the shell
  • cluster-select: select a cluster
  • cluster-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

kafka-shell-0.1.4.tar.gz (30.1 kB view details)

Uploaded Source

Built Distribution

kafka_shell-0.1.4-py3-none-any.whl (45.0 kB view details)

Uploaded Python 3

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

Hashes for kafka-shell-0.1.4.tar.gz
Algorithm Hash digest
SHA256 7bd4bda672ef34f8045173ca27ab84721c435a2558514a12e5251c085cb87a79
MD5 123c41df80f6ed99c5de4f7680adb521
BLAKE2b-256 265dbbb152ff0448358fa8d5cea006a15a64bba84f02fbb7f13e084c040c23cb

See more details on using hashes here.

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

Hashes for kafka_shell-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 891e6e7e53967a7ff4330dde9a6ce2beba1fef0d905acea04cd09d9b38b76d46
MD5 e8bb9b7a10f879f3ab04451ff83b2f6c
BLAKE2b-256 6b3b7e06a2888c230fa9ac910fe8049a4dc1b3c60525b7a68ce4d2e9c951482e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page