# Install topicctl with Homebrew, Nix

Declarative Kafka topic management. Version 2.0.2 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:topicctl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install topicctl
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#topicctl
```

  Evidence: nixpkgs package indexes: pkgs/by-name/to/topicctl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:topicctl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/topicctl>
- **Version:** 2.0.2
- **Source summary:** Declarative Kafka topic management
- **Homepage:** <https://github.com/segmentio/topicctl>
- **Repository:** <https://github.com/segmentio/topicctl>
- **Upstream docs:** <https://github.com/segmentio/topicctl#readme>
- **License:** MIT
- **Source archive:** <https://github.com/segmentio/topicctl/archive/refs/tags/v2.0.2.tar.gz>
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- topicctl (cli)
- topicctl (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-09
- Package-manager version: 2.0.2
- Local data: ok
- Upstream repository: https://github.com/segmentio/topicctl
- Upstream latest detected: v2.0.2 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

topicctl is Segment's command-line tool for declarative Apache Kafka topic management. Its official README frames the project around applying topic changes from YAML and using a REPL to inspect brokers, topics, consumer groups, messages, offsets, partitions, ACLs, and related Kafka resources.

### Project history

The project was created to make Kafka topic management more transparent and user-friendly for Segment's operational use. The README says standard Kafka tooling was tedious and error-prone for this job because it lacked a standard declarative format that could be checked into Git and required multiple commands with different interfaces to understand cluster state.

topicctl's design borrows from kubectl-style declarative operations: users keep cluster and topic definitions as YAML, run apply/check/bootstrap/rebalance style commands, and inspect cluster state interactively. The README also documents a later revamp from the v0 line to support direct cluster access without ZooKeeper and add TLS/SSL and SASL security options.

### Adoption history

Its adoption niche is infrastructure teams running Kafka who want package-manager-installable tooling rather than bespoke scripts. The input package facts list both Homebrew and Nix packaging, while the official README also documents Go install, source build, and Docker image installation paths.

### How it is used

Common usage is to store cluster configuration in cluster.yaml and topic definitions under topics/*.yaml, then use topicctl apply to create or update topics so the live cluster matches the desired files. The README's quick tour also shows topicctl repl for interactive exploration and commands such as get brokers, get topics, get partitions, get offsets, and tail.

For package-nerd workflows, topicctl is the kind of CLI that turns Kafka topic state into reviewable files: bootstrap can import existing topics into configs, check can validate config against cluster state, and apply/rebalance can be put into operational runbooks or CI-style review gates.

### Why package nerds care

topicctl matters to package-focused operators because it packages a common Kafka administration pain point as a single Go CLI with declarative files, a REPL, and install paths that fit Homebrew, Nix, Docker, and go install workflows. It is most significant in Kafka/platform-engineering circles rather than as a general-purpose end-user tool.

### Timeline

- v0 era: Older implementation preserved on the official v0 branch for users who need to revert.
- v1 era: README documents a revamp adding ZooKeeper-less cluster access plus TLS/SSL and SASL options.
- 2026: GitHub releases page lists the v2.0.x line, including v2.0.0 and v2.0.2, with ongoing changes around placement strategy and bootstrapping.

### Related projects

- The README explicitly says topicctl was inspired by kubectl and points readers to Segment's data-digger as another Kafka-oriented command-line tool.

### Sources

- <https://github.com/segmentio/topicctl#readme>
- <https://github.com/segmentio/topicctl/releases>
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: cluster.yaml, topics/*.yaml
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** topicctl
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - topicctl: normalized package name match | nixpkgs package indexes: pkgs/by-name/to/topicctl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [yozefu](https://www.automicvault.com/pkg/brew/yozefu/) - Shares av.db curated category or tags: cli, data, kafka, streaming.
- [ktea](https://www.automicvault.com/pkg/brew/ktea/) - Shares av.db curated category or tags: cli, data, kafka, streaming.
- [apache-flink-cdc](https://www.automicvault.com/pkg/brew/apache-flink-cdc/) - Shares av.db curated category or tags: cli, data, streaming.
- [burrow](https://www.automicvault.com/pkg/brew/burrow/) - Shares av.db curated category or tags: cli, data, kafka, streaming.
- [kaskade](https://www.automicvault.com/pkg/brew/kaskade/) - Shares av.db curated category or tags: cli, data, kafka.
- [kcat](https://www.automicvault.com/pkg/brew/kcat/) - Shares av.db curated category or tags: cli, data, kafka.
- [maxwell](https://www.automicvault.com/pkg/brew/maxwell/) - Shares av.db curated category or tags: cli, data, kafka, streaming.
- [conduit](https://www.automicvault.com/pkg/brew/conduit/) - Shares av.db curated category or tags: cli, data, streaming.

## Combined YAML source

View the package source record on GitHub. [combined/topicctl.yml](https://github.com/automic-vault/db/blob/main/combined/topicctl.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
