Managing kafka resources
Use when managing Apache Kafka topics, ACLs, quotas, users, consumer groups, Schema Registry subjects, Kafka Connect connectors, or Aiven, Confluent Cloud, AWS Glue, and Apache Iceberg resources declaratively with the Jikkou CLI: creating, inspecting, or changing resources, previewing changes before apply, or diagnosing Kafka misconfigurations.From its SKILL.md
npx -y skills add streamthoughts/jikkou --skill managing-kafka-resourcesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
4.0 KB, as published. Nobody here has run it
Jikkou: Resource as Code for Apache Kafka
Declarative management of Kafka-ecosystem resources: YAML in, reconciliation against the real cluster out. Stateless: diff compares against live cluster state, never a state file.
Setup check (always run first)
jikkou --versionconfirms the CLI is on PATH. Missing? See "If jikkou is not installed".jikkou health get kafkaverifies connectivity (health get-indicatorsonly lists indicators; it doesn't check connectivity). For other providers usejikkou health get <indicator>; indicator names differ from provider names, seereferences/diagnostics.mdfor the exact list.- No context configured? Run
jikkou config current-contextandjikkou config view; config lives in~/.jikkou/config. See the context safety rule below.
Core workflow
Discover → author → validate → diff → apply. Never skip validate/diff.
- Inspect current state:
jikkou get <provider> <kind> -o JSON(providers: kafka, schemaregistry, kafkaconnect, aiven, confluent-cloud, aws, iceberg). Filter:--name <name>or-s 'metadata.name IN (a,b)'. - Discover kinds/schemas:
jikkou api-resources list, thenjikkou api-resources schema --api-version=<v> --kind=<k>.list → schema → write YAML → validate → diffis the canonical authoring chain. - Validate:
jikkou validate --files <file>returns normalized resources or errors. - Preview:
jikkou diff --files <file>shows the exact changes vs. the live cluster. - Apply:
jikkou apply --files <file> --dry-runfirst; drop--dry-runonly after the user confirms the diff.
Safety rules
- Never run
applywithout first showing the userdiffor--dry-runoutput. - Deleting a resource requires the annotation
jikkou.io/delete: trueon it — never delete another way. - Treat contexts named prod/production with extra confirmation before any non-dry-run apply.
- Never run
jikkou config use-contextcasually: jikkou eagerly loads the current context on every call, so a broken context bricks every command, not just the one you meant to try. Checkcurrent-context/config viewfirst; if a switch is truly needed, verify the target, then switch back.
Provider references
Before authoring resources for a provider, read the matching file:
references/kafka.md, references/schema-registry.md, references/kafka-connect.md, references/aiven.md, references/confluent-cloud.md, references/aws-glue.md, references/iceberg.md.
For misconfiguration checks, consumer lag, and ACL audits, use references/diagnostics.md.
If jikkou is not installed
Confirm with the user first. In order of preference:
- SDKMan:
sdk install jikkou - Homebrew:
brew install streamthoughts/tap/jikkou - No install rights: prefix every command with
docker run --rm -v $PWD:/work -w /work streamthoughts/jikkouAfter install:jikkou --version, thenjikkou health get kafkabefore proceeding.
Common mistakes
- Guessing YAML fields instead of reading the provider reference or running
api-resources schema;validatecatches this, so run it. - Using
kafka-topics.sh-style imperative commands — everything goes through resource files. - Editing a live resource without fetching it first:
jikkou get ... -o YAMLis the starting point. - Applying directly (e.g.
jikkou create -f file.yaml) skippingvalidate/diff/--dry-run, even when the change looks trivial; it mutates the cluster with no preview. - Rediscovering commands via repeated
--helpcalls instead of readingreferences/<provider>.mdfirst (far more tool calls for the same answer). - Switching contexts to "just try" a different cluster — see the context safety rule above.