{"id":21755738,"url":"https://github.com/seveas/herd","last_synced_at":"2025-06-25T23:04:15.489Z","repository":{"id":57533789,"uuid":"256607259","full_name":"seveas/herd","owner":"seveas","description":"Massively parallel ssh client","archived":false,"fork":false,"pushed_at":"2025-05-19T19:05:49.000Z","size":2636,"stargazers_count":33,"open_issues_count":10,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-25T23:03:44.153Z","etag":null,"topics":["cli","orchestration","sre","ssh","sysadmin","system-administration"],"latest_commit_sha":null,"homepage":"https://herd.seveas.net","language":"Go","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/seveas.png","metadata":{"files":{"readme":"README.md","changelog":"history.go","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2020-04-17T20:51:21.000Z","updated_at":"2025-06-23T17:23:15.000Z","dependencies_parsed_at":"2024-06-20T07:46:12.341Z","dependency_job_id":"784ee447-1f4b-4e0b-bc03-7488b1a7f237","html_url":"https://github.com/seveas/herd","commit_stats":null,"previous_names":["seveas/katyusha"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/seveas/herd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seveas%2Fherd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seveas%2Fherd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seveas%2Fherd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seveas%2Fherd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seveas","download_url":"https://codeload.github.com/seveas/herd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seveas%2Fherd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261967126,"owners_count":23237662,"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","orchestration","sre","ssh","sysadmin","system-administration"],"created_at":"2024-11-26T09:20:20.815Z","updated_at":"2025-06-25T23:04:15.458Z","avatar_url":"https://github.com/seveas.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Herd - Lightning-fast parallel ssh client\n=============================================\n\nHerd is a massively parallel ssh client that will replace all your hacky for loops, pssh, xargs\nand gnu parallel oneliners with something that is faster, more flexible and simply more awesome!\n\nHerd can find your hosts in you `known_hosts` file, in consul and many other places. Using a\npowerful query syntax, you select the hosts you want and run any command in parallel on all of them.\nOutput can be streamed as it happens, or shown at the end for easy inspection. On top of that,\nHerd is chock full of helpful features:\n\n- It can query your inventory systems and display information and statistics about your hosts\n- Timeouts, parallelism and delays are all configurable for very flexible ways of running commands\n- A variety of output modes show exactly what you need. Be it timestamps at the start of all lines,\n  output separated by host or one big river of output. It can do all that and more.\n- Output is also stored in a machine-readable way so you can post process it as much as you want\n- An interactive shell is available that even lets you create host lists based on the result of\n  running commands on hosts\n\nExamples\n--------\n\nHere are some examples to get you going. The full documentation can be found on\nhttps://herd.seveas.net\n\n- List all hosts in a specific domain\n\n  `herd list *.example.com`\n\n- Run a command on all of them\n\n  `herd run *.example.com -- uptime`\n\n- Run a long-running command, with output appearing immediately and reduced parallelism\n\n  `herd run *.example.com --parallel 10 --host-timeout 5m --timeout 1h -- sudo puppet agent -t`\n\n- Show some information about hosts in an inventory system\n\n  `herd list site=site-5 --attributes ip_address,os,memory`\n\n- Rolling restart of a service registered in consul\n\n  `herd run --splay 1m --parallel 1 consul_service=smtpd -- sudo systemctl restart postfix`\n\nInstalling\n----------\nThere are pre-built binaries on the [download page](https://herd.seveas.net/download/). If\nyou prefer to install from source, install [go](https://golang.org), clone this repository and\njust run `make`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseveas%2Fherd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseveas%2Fherd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseveas%2Fherd/lists"}