<a id="cp-all-cli"></a>

# CLI Tools Shipped With Confluent Platform

<style>
  input.search-bar {
    box-sizing: border-box;
    margin-bottom: 30px;
    font-size: 22px;
    padding: 20px;
    padding-left: 60px;
    border: 0;
    border-radius: 4px;
    box-shadow: none;
    flex: 1;
    width: 100%;
    color: #3B454F;
    line-height: 27.5px;
    background: #F1FAFF 20px 24px no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGqSURBVHgBrZRBTsJQEIZnHi6AkNiVeYRNDZC4xBMIN9AT0BuIJxBPwBHEExhPQDmB7NFYFiRNcNEFCZu2z5n2EUnpKwSd5KXT8vN15vWfh5AJy7KtSuXMiWNlI8I5AC7osev7Hy4cEbh7I2XrUQgYKAXWvlR5SkU93/c8OAYoZfsZUTn6dkpQNxEg2nS5ISBfgzDE3mo1nxUCuTJqb0griGO4y7Yn5ZUtRDiil9wydLMJL4PAC3KJLK7XW4qXlE0HCoI0k1TXGpo0AiDq6nzq+5/jAh5QhU9JWwj3RiBi3NFiFw7EzlZY7IZcoFLCghOiXIZ8INsBkgrVQTDv9zY32YeAaatCYN/Uxm+EfZ1MTQqh94WXVa2WRiZho9HusLU4p27GRqCu7oE9qBQ69Xrzi2zR3Qq4avYpjeK7fkT+i1wTEHcrIFO/6onIFycv5Y9hHkOxTZbL+UypUo/+9kIrK+RR7MXx2XX6G9LBUZpIadvGCrPBrbI1slXwl0aMJmkn+5UagUVRBD0JWAQ9GWiCluAPsV5/B7XaxRudo3ys2TTGC/iP0EfggPMf4IXM0qeAeMAAAAAASUVORK5CYII=);
    background-clip: padding-box;
    }
 </style>

 <script>
 function filterList() {
     // Get input value and convert to lowercase
     var input = document.getElementById("search-bar").value.toLowerCase();

     // Get all of the sections.
     var sections = document.getElementsByTagName("section")

     // Loop through the sections and check for h3s, which is the section type that contains the config values.
     for (var i = 0; i < sections.length; i++) {
     var section = sections[i];
     var h3Entries = section.getElementsByTagName("h3")
     // There is only 1 h3 in a section that contains a config value.
     if (h3Entries.length == 1) {
             // Now, check if the term matches the search input, and if so display the section. Otherwise, hide it.
         var h3text = h3Entries[0].textContent.toLowerCase();
         if (h3text.indexOf(input) > -1)
         section.style.display ="";
         else
         section.style.display = "none";
     }
     }
     }
   window.addEventListener('load', filterList);
 </script>

Confluent Platform provides several command-line (CLI) tools, which includes the Kafka CLI tools and
additional Confluent Platform-specific tools.

<!-- WARNING: THIS IS A SHARED FILE AND THE SOURCE IS LOCATED IN DOCS-COMMON. DO NOT ADD TO ANY OTHER REPO. -->

All of these tools can be found in the Confluent Platform `bin` directory. The
[confluent](#confluent-cli-tool) tool can be installed separately, but it is recommended that you use
the version provided with Confluent Platform.

You can find versions of some of these tools for use with Windows (`.bat` files), under `CONFLUENT_HOME/bin/windows/`.

Note that if you are using a Kafka CLI tool that is provided with Confluent Platform,
the tool does not have an `.sh` extension.

## Search by tool name

<form>

  <input type="text" id="search-bar"
    class="search-bar"
    aria-label="Search"
    placeholder="Enter search text..."
    onkeyup="filterList()"
    autocomplete="off"></input>
 </form>

## Tool list

<a id="confluent-cli-tool"></a>

### confluent

This tool manages Confluent Cloud and Confluent Platform, including RBAC, secrets, and the ability to
deploy a single-node Confluent Platform instance as well as creating, updating, and deleting topics.
For more information, see [Confluent CLI](https://docs.confluent.io/confluent-cli/current/index.html).

### confluent-hub

This tool installs and manages connectors. For more information,
see [Confluent Marketplace Command Reference](/kafka-connectors/self-managed/confluent-hub/command-reference/index.html).

### confluent-rebalancer

This tool balances data and partitions between brokers. For more
information, see [Quick Start for Auto Data Balancing in Confluent Platform](../clusters/rebalancer/quickstart.md#rebalancer).

### connect-distributed

This tool runs Connect in distributed mode. For more information,
see [Getting Started with Kafka Connect](/kafka-connectors/self-managed/userguide.html).

### connect-standalone

This tool runs Connect in standalone mode. For more information, see
see [Getting Started with Kafka Connect](/kafka-connectors/self-managed/userguide.html).

### control-center-console-consumer

This tool starts the Control Center console consumer.

### control-center-export

This tool exports data from Control Center to an output file.

### control-center-reset

This tool resets Control Center and deletes all data. For more information,
see This tool resets Control Center and deletes all data. For more information,
see [Control Center Installation](/control-center/current/installation/overview.html).

### control-center-run-class

This tool is a thin wrapper around the Control Center Java class. It is mainly used by the
start and stop scripts and should not be run by itself.

### control-center-set-acls

This tool is used to set the Control Center ACLs.

### control-center-start

This tool starts Control Center. For a usage example, see [Start Confluent Platform](../installation/installing_cp/zip-tar.md#start-c3-zip).

### control-center-stop

This tool stops Control Center. For a usage example, see [Enable and disable dynamic editing of broker configurations](/control-center/current/clusters.html#ff-c3-edit-broker-configs)

### kafka-acls

This tool adds, removes, and lists ACLs. For more information, see [Manage Access Control Lists (ACLs) for Authorization in Confluent Platform](../security/authorization/acls/manage-acls.md#kafka-acl-tool).

### kafka-add-brokers

This tool describes the status of the Confluent Balancer broker addition operations.
For more information, see [Add a broker](../clusters/sbc/sbc-tutorial.md#add-a-broker-sbc).

### kafka-alter-broker-health

This tool interacts with the Broker Health API to manage and describe the health status of Kafka brokers.
You can use this tool to set a broker component’s health status by specifying the component (for example, `UNSPECIFIED`, `STORAGE`,
`NETWORK`, or `EXTERNAL_CONNECTIVITY_STARTUP`) and applying a desired health status (`DEGRADED` or `HEALTHY`). The tool can also
provide details on degraded brokers, which are less preferred as partition leaders than healthy brokers.

### kafka-avro-console-consumer

This tool receives Avro data in JSON format from the console. For more
information, see [Formats, Serializers, and Deserializers](/platform/current/schema-registry/serdes-develop/index.html).

### kafka-avro-console-producer

This tool sends Avro data in JSON format to the console. For more
information, see [Formats, Serializers, and Deserializers](/platform/current/schema-registry/serdes-develop/index.html).

### kafka-broker-api-versions

This tool displays the API versions of all nodes in the cluster.

### kafka-cells-admin

This tool manages cells in a Kafka cluster.

### kafka-configs

This tool updates broker configs and topic configs. For more information, see
[Dynamically change broker settings](../kafka/dynamic-config.md#kafka-dyn-broker-config) and [Modifying topics](../kafka/post-deployment.md#modifying-topics).

### kafka-client-metrics

This tool enables you to describe and change client metric configuration values.
For example, use the following command to list client metrics.

```none
kafka-client-metrics --bootstrap-server <host:port> --list
```

### kafka-cluster

Use this tool to get the ID of a cluster or unregister a cluster.
For more information, see [Generate and format IDs](../kafka-metadata/config-kraft.md#generate-format-ids).

### kafka-cluster-links

This tool creates and manages Cluster Linking between Confluent Enterprise and Confluent Cloud clusters.

### kafka-console-consumer

This tool reads data from Kafka topics and sends output to STDOUT.
For more information, see [Kafka Consumer for Confluent Platform](../clients/consumer.md#kafka-consumer).

### kafka-console-producer

This tool sends data to Kafka topics. For more information, see
[Kafka Producer for Confluent Platform](../clients/producer.md#kafka-producer).

### kafka-consumer-groups

This tool gets a list of the active groups in the cluster. For more
information, see [Kafka consumer group tool](../clients/consumer.md#kafka-consumer-describe-group).

### kafka-consumer-perf-test

This tool tests the consumer performance for the Kafka cluster.

### kafka-delegation-tokens

This tool creates, renews, expires, and describes delegation tokens. For more
information, see [Use Delegation Tokens for Authentication in Confluent Platform](../security/authentication/delegation-tokens/overview.md#kafka-sasl-delegate-auth).

### kafka-delete-records

This tool deletes partition records.

### kafka-dump-log

This tool parses a log file and dumps its contents to the console. This is
useful for debugging log segments. For more information, see [Debug log segments](../kafka-metadata/config-kraft.md#debug-log-segments).

### kafka-features

This tool manages feature flags to disable or enable functionality at runtime in Kafka.

### kafka-get-offsets

This tool provides an interactive shell for getting topic-partition offsets.

### kafka-groups

This tool helps to list groups of all types.

### kafka-json-schema-console-producer

This tool sends JSON schema data in JSON format from the console. For more
information, see [Formats, Serializers, and Deserializers](/platform/current/schema-registry/serdes-develop/index.html).

### kafka-json-schema-console-consumer

This tool receives JSON schema data in JSON format from the console. For more
information, see [Formats, Serializers, and Deserializers](/platform/current/schema-registry/serdes-develop/index.html).

### kafka-leader-election

This tool initiates leader election for topic partitions.

### kafka-leader-exclusion

This tool makes calls to Leadership Priority API. It changes leadership priority and describes demoted brokers. Demoted brokers will be less
preferred as partition leaders compared to brokers with normal leadership priority.

### kafka-log-dirs

This tool gets a list of replicas per log directory on a broker.

### kafka-metadata-quorum

This tool describes the metadata quorum status. This tool is useful when you are debugging
a cluster in KRaft mode.
For more information, see [Describe runtime status](../kafka-metadata/config-kraft.md#describe-runtime-status).

### kafka-metadata-shell

This tool enables you to interactively examine the metadata stored in a KRaft cluster.
For more information, see [Inspect the metadata partition](../kafka-metadata/config-kraft.md#metadata-shell).

### kafka-mirror-maker

This tool runs MirrorMaker. For more information, see [Kafka MirrorMaker: A Comprehensive Guide](https://www.confluent.io/learn/kafka-mirrormaker/).

### kafka-mirrors

This tool creates and manages identical mirror topics between clusters using Cluster Linking.

### kafka-mqtt-run-class

This tool is a thin wrapper around the MQTT Proxy Java class. It is mainly used by the
start and stop scripts and should not be run by itself. For more information, see
[MQTT Proxy for Confluent Platform](../kafka-mqtt/intro.md#kafka-mqtt-intro).

### kafka-mqtt-start

This tool starts MQTT Proxy. For more information, see [MQTT Proxy for Confluent Platform](../kafka-mqtt/intro.md#kafka-mqtt-intro).

### kafka-mqtt-stop

This tool stops MQTT Proxy. For more information, see [MQTT Proxy for Confluent Platform](../kafka-mqtt/intro.md#kafka-mqtt-intro).

### kafka-preferred-replica-election

This tool transfers the leadership for each partition back to the “preferred replica”
and is used to balance leadership among the servers. For more information, see the
[Apache Kafka wiki](https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools).
This tool has been deprecated in Kafka 2.4 and was replaced by `kafka-leader-election`.

### kafka-producer-perf-test

This tool tests the producer performance for the Kafka cluster. For more
information, see [Quick Start for Auto Data Balancing in Confluent Platform](../clusters/rebalancer/quickstart.md#rebalancer).

### kafka-protobuf-console-producer

This tool sends Protobuf data in JSON format to the console. For more information, see
[Formats, Serializers, and Deserializers](/platform/current/schema-registry/serdes-develop/index.html).

### kafka-protobuf-console-consumer

This tool receives Protobuf data in JSON format from the console. For more
information, see [Formats, Serializers, and Deserializers](/platform/current/schema-registry/serdes-develop/index.html).

### kafka-reassign-partitions

This tool moves topic partitions between replicas. For more information,
see [Scaling the cluster (adding a node to a Kafka cluster)](../kafka/post-deployment.md#scaling-the-cluster).

<a id="kafka-rebalance-cluster-tool"></a>

### kafka-rebalance-cluster

This tool provides visibility into the status of Self-Balancing on a broker, reporting
whether Self-Balancing is disabled, starting up, or ready to serve requests.
For more information, see [Monitoring the balancer with kafka-rebalance-cluster](../clusters/sbc/configuration-options.md#sbc-kafka-rebalance-cluster).

### kafka-remove-brokers

This tool executes and describes broker removal operations. For more information, see [kafka-remove-brokers](../clusters/sbc/configuration-options.md#sbc-command-remove-brokers).

### kafka-replica-exclusions

This tool sets, removes and describes broker replica placement exclusion.

### kafka-replica-status

This tool prints out the replica status of partitions, including information
about their current mode and replication state. Use this tool to monitor
replica health, check In-Sync Replica (ISR) status, identify observer
replicas, and view cluster linking and mirror topic information.

#### NOTE
`kafka-replica-status` is a Confluent tool that is included in Confluent Platform
but is not available in Apache Kafka. You can also access this
functionality through the Confluent CLI using
[confluent kafka replica status](https://docs.confluent.io/confluent-cli/current/command-reference/kafka/replica/status/index.html).

The tool provides detailed information about each replica, including whether
it is a leader, observer, ISR-eligible, caught up with the leader, and various
lag metrics. This is useful for monitoring replication health and
troubleshooting partition replication issues.

For detailed usage examples and output field descriptions, see
[Monitoring replicas](../multi-dc-deployments/multi-region.md#mrr-monitoring-replicas). For cluster linking usage with
`--include-linked` and `--include-mirror` flags, see
[Check the replica status on the destination](../multi-dc-deployments/cluster-linking/topic-data-sharing.md#cl-check-replica-status).

Key options:

- `--bootstrap-server`: Specify the broker to connect to. Required.
- `--topics`: Comma-separated topics to retrieve replica status for.
- `--partitions`: Comma-separated list of partition IDs or ID ranges.
- `--verbose`: Print output in a verbose manner with one attribute per line.
- `--json`: Print output in JSON format.
- `--leaders`: Show only partition leaders, or exclude if ‘exclude’ is
  provided.
- `--observers`: Show only observer replicas, or exclude if ‘exclude’ is
  provided.
- `--include-linked`: Include remote replicas that are linked with the
  partitions.
- `--include-mirror`: Include mirror information in the output.
- `--exclude-internal`: Exclude internal topics from the output.
- `--admin.config`: Configuration properties file to pass to the admin
  client.

**Difference from kafka-replica-verification**

While `kafka-replica-status` displays status information about replicas
including ISR membership, lag metrics, and observer status,
`kafka-replica-verification` validates that all replicas for a set of topics
have the same data by comparing checksums.

### kafka-replica-verification

This tool validates that all replicas for a set of topics have the same data.

### kafka-rest-run-class

This tool is a thin wrapper around the REST Proxy Java class. It is mainly used by the
start and stop scripts and should not be run by itself. For more information, see
[Confluent REST Proxy for Apache Kafka on Confluent Platform](../kafka-rest/index.md#kafkarest-intro).

### kafka-rest-start

This tool starts the REST Proxy. For more information, see [Confluent REST Proxy for Apache Kafka on Confluent Platform](../kafka-rest/index.md#kafkarest-intro).

### kafka-rest-stop

This tool stops the REST Proxy. For more information, see [Confluent REST Proxy for Apache Kafka on Confluent Platform](../kafka-rest/index.md#kafkarest-intro).

### kafka-rest-stop-service

This tool stops all running instances of the REST Proxy. For more information, see
[Confluent REST Proxy for Apache Kafka on Confluent Platform](../kafka-rest/index.md#kafkarest-intro).

### kafka-run-class

This tool is a thin wrapper around the Kafka Java class. It is mainly used by the
start and stop scripts and should not be run by itself.

### kafka-server-start

This tool starts Kafka.

<a id="kafka-server-stop-tool"></a>

### kafka-server-stop

This tool stops an Kafka broker or controller. Use the `process-role` parameter to specify a broker or controller.

### kafka-share-groups

This tool helps to list, describe, reset and delete share groups.

### kafka-storage

This tool generates a Cluster UUID and format storages with the cluster ID when running Kafka in KRaft mode.

### kafka-streams-application-reset

This tool resets an application and forces it to reprocess its data from
the beginning. For more information, see [Reset Kafka Streams Applications in Confluent Platform](../streams/developer-guide/app-reset-tool.md#streams-developer-guide-app-reset).

### kafka-topics

This tool is used to create, delete, describe, or change a Kafka topic. For more
information, see [Adding topics](../kafka/post-deployment.md#adding-topics).

### kafka-transactions

This tool lists and describes transactions. Use to detect and abort hanging transactions.

### kafka-verifiable-consumer

This tool consumes messages from a topic and emits consumer events as JSON
objects to STDOUT. For example, group rebalances, received messages, and offsets
committed.

### kafka-verifiable-producer

This tool produces increasing integers to the specified topic and prints
JSON  metadata to STDOUT on each “send” request. This makes externally
visible which messages have been `acked` and which have not.

### ksql

This tool runs ksqlDB. For more information, see
[Configure ksqlDB CLI](../ksqldb/operate-and-deploy/installation/cli-config.md#ksqldb-install-configure-cli).

### ksql-datagen

This tool generates test data that complies with a custom schema that you
define. For more information, see
[kafka-connect-datagen](https://github.com/confluentinc/kafka-connect-datagen).

### ksql-migrations

This tool manages metadata schemas for your ksqlDB clusters by applying statements from migration files to your ksqlDB clusters.
For more info, see [Manage metadata schemas](../ksqldb/operate-and-deploy/migrations-tool.md#ksqldb-manage-metadata-schemas).

### ksql-restore-command

This tool restores the command topic.

### ksql-run-class

This tool is a thin wrapper around the ksqlDB Java class. It is mainly used by the
start and stop scripts and should not be run by itself.

### ksql-server-start

This tool starts the ksqlDB server. For more information,
see [Starting the ksqlDB server](../ksqldb/installing.md#start-ksql-server).

### ksql-server-stop

This tool stops the ksqlDB server. For more information,
see [Operate ksqlDB for Confluent Platform](../ksqldb/operations.md#ksql-operations).

### ksql-stop

This tool stops the ksqlDB CLI. For more information, see [Install ksqlDB for Confluent Platform](../ksqldb/installing.md#install-overview).

### ksql-test-runner

This tool is a ksqlDB testing tool that can test a set of KSQL statements.

### replicator

This tool runs Replicator. For more information, see [Overview of Multi-Datacenter Deployment Solutions on Confluent Platform](../multi-dc-deployments/index.md#multi-dc).

### replicator-verifier

This tool verifies the Replicator configuration. For more information, see [Verify Replicator Configuration for Confluent Platform](../multi-dc-deployments/replicator/replicator-verifier.md#replicator-verifier).

### schema-registry-run-class

This tool is a thin wrapper around the Schema Registry Java class. It is mainly used by the
start and stop scripts and should not be run by itself. For more information, see
[Schema Registry API Usage Examples for Confluent Platform](../schema-registry/develop/using.md#schemaregistry-using).

### schema-registry-start

This tool starts Schema Registry. For more information, see [Schema Registry API Usage Examples for Confluent Platform](../schema-registry/develop/using.md#schemaregistry-using).

### schema-registry-stop

This tool stops Schema Registry.  For more information, see [Schema Registry API Usage Examples for Confluent Platform](../schema-registry/develop/using.md#schemaregistry-using).

### schema-registry-stop-service

This tool stops all running instances of the Schema Registry. For more information, see
[Schema Registry API Usage Examples for Confluent Platform](../schema-registry/develop/using.md#schemaregistry-using).

### security-plugins-run-class

This tool is a thin wrapper around the Confluent Security Plugins Java class. It is
mainly used by the start and stop scripts and should not be run by itself.

### sr-acl-cli

This tool runs the Schema Registry ACL CLI tool. For more information, see
[Schema Registry ACL Authorizer for Confluent Platform](../confluent-security-plugins/schema-registry/authorization/sracl_authorizer.md#confluentsecurityplugins-sracl-authorizer).

### trogdor

This tool is a test framework for Kafka. Trogdor can run benchmarks and other workloads.
Trogdor can also inject faults in order to stress test the system.

## Related content

For a list of Kafka CLI tools with usage instructions,
see [Kafka CLI Tools](/kafka/operations-tools/kafka-tools.html).
