{"id":13816220,"url":"https://github.com/adevinta/zoe","last_synced_at":"2025-05-16T12:11:37.337Z","repository":{"id":39968255,"uuid":"243047314","full_name":"adevinta/zoe","owner":"adevinta","description":"The Kafka CLI for humans","archived":false,"fork":false,"pushed_at":"2024-12-01T20:27:12.000Z","size":3443,"stargazers_count":295,"open_issues_count":8,"forks_count":20,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-09T23:13:52.866Z","etag":null,"topics":["cli","kafka","kotlin","kubernetes"],"latest_commit_sha":null,"homepage":"https://adevinta.github.io/zoe","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adevinta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing/README.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-25T16:42:47.000Z","updated_at":"2025-03-25T14:36:06.000Z","dependencies_parsed_at":"2024-11-11T21:25:51.690Z","dependency_job_id":"b9562f13-52a3-4dd6-86d9-7e1ef3af2948","html_url":"https://github.com/adevinta/zoe","commit_stats":null,"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adevinta%2Fzoe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adevinta%2Fzoe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adevinta%2Fzoe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adevinta%2Fzoe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adevinta","download_url":"https://codeload.github.com/adevinta/zoe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254527099,"owners_count":22085919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","kafka","kotlin","kubernetes"],"created_at":"2024-08-04T05:00:37.491Z","updated_at":"2025-05-16T12:11:37.318Z","avatar_url":"https://github.com/adevinta.png","language":"Kotlin","readme":"![Build](https://github.com/adevinta/zoe/workflows/Build%20test/badge.svg)\n\n# Zoe: The Kafka CLI for humans\n\nZoe is a command-line tool to interact with Kafka in an easy and intuitive way. Wanna see this in action? check out this\ndemo...\n\n[![demo](https://asciinema.org/a/vSDNcUUaMMBkWxCSDD8u3s0No.svg)](https://asciinema.org/a/vSDNcUUaMMBkWxCSDD8u3s0No?speed=2.5\u0026rows=35)\n\nZoe really shines when it comes to interacting with cloud-hosted Kafka clusters (Kubernetes, AWS, etc.) **due to its\nability to offload consumption and execution to Kubernetes pods or lambda functions** (more runners will be supported in\nthe future).\n\n## Try zoe from your browser!\n\nYou can try zoe from your browser using our [new Katacoda tutorials](https://www.katacoda.com/wlezzar/courses/zoe).\n\n## Key features\n\nHere are some of the most interesting features of zoe :\n\n- Consume Kafka topics from a specific point in time (ex. using `--from 'PT5h'` from the last 5 hours).\n- Filter data based on content (ex. using `--filter \"id == '12345'\"` filters records with the selected id).\n- Filter data based on record metadata and record headers (ex.\n  using `--expose-metadata --filter \"__metadata__.offset == '95' \u0026\u0026 __metadata__.partition == '0'\"` finds records on the\n  given partition with the given offset. The same query can be done to target the record headers).\n- Supports offloading consumption of data to multiple lambda functions, Kubernetes pods, etc. for parallelism (ex.\n  adding `--runner kubernetes` would offload all the requests to a configured Kubernetes cluster).\n- Monitor consumer groups' offsets.\n- Upload Avro schemas from a `.avsc` or `.avdl` file using different naming strategies.\n- ... and more.\n\n## Install\n\nFor Linux \u0026 macOS, the simplest way is to use brew to install zoe:\n\n```bash\nbrew install adevinta/homebrew-zoe/zoe\n```\n\nGo to the [install](docs/install/overview.md) page for instructions on other platforms.\n\n## Quickstart\n\n```bash\n# Initialize zoe configuration\nzoe config init\n\n# The generated config points to a local Kafka cluster (localhost:29092). You can edit it using the following command\nzoe config edit\n\n# You can inspect the list of clusters you have in your config\nzoe -o table config clusters list\n\n# You can now use zoe to interact with the clusters\nzoe -o table topics list\n```\n\n## Sample commands\n\nRead the last 10 records from the `input` topic from the `local` Kafka cluster (aliases for topics and clusters are set\nin the configuration) :\n\n```\nzoe --cluster local topics consume input -n 10 \n```\n\nRead the last 10 records from the last 6 hours :\n\n```\nzoe --cluster local topics consume input -n 10 --from 'PT6h'\n```\n\nFilter records belonging to `Kasimir` :\n\n```\nzoe --cluster local topics consume input -n 10 \\\n    --from 'PT6h' \\\n    --filter \"user.name.first == 'Kasimir'\n```\n\nSpin up 10 consumers in parallel :\n\n```\nzoe --cluster local topics consume input -n 10 \\\n    --from 'PT6h' \\\n    --filter \"user.name.first == 'Kasimir' \\\n    --jobs 10\n```\n\nOffload consumption to Kubernetes pods (the target Kubernetes cluster is configured in zoe's configuration file):\n\n```\nzoe --runner kubernetes \\\n    --cluster local topics consume input -n 10 \\\n    --from 'PT6h' \\\n    --filter \"user.name.first == 'Kasimir' \\\n    --jobs 10\n```\n\n## Documentation\n\nThe full documentation can be found on the [website](https://adevinta.github.io/zoe).\n\n## Need help?\n\nIf you are encountering a bug or have any questions, please open a Github issue in the repository.\n\n## Maintainers\n\n- Created by: Walid Lezzar ([Github](https://github.com/wlezzar), [Twitter](https://twitter.com/walezz)\n  , [LinkedIn](https://www.linkedin.com/in/walid-lezzar/))\n\n### Contributors\n\nThe [contributor's guide](docs/contributing/README.md) currently only shows how to build the project from source. Some\ndocs about the architecture of Zoe and how to contribute to the project will be added soon. \n","funding_links":[],"categories":["Kotlin","\u003ca name=\"Kotlin\"\u003e\u003c/a\u003eKotlin","CLI Tools"],"sub_categories":["Interactive Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadevinta%2Fzoe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadevinta%2Fzoe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadevinta%2Fzoe/lists"}