{"id":37106559,"url":"https://github.com/thc2cat/heartbit","last_synced_at":"2026-01-14T12:50:13.315Z","repository":{"id":73778342,"uuid":"404379709","full_name":"thc2cat/heartbit","owner":"thc2cat","description":" multiple host pinger with continuous ping and up/down, loss notification","archived":false,"fork":false,"pushed_at":"2025-10-24T08:42:59.000Z","size":1347,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-24T10:25:13.912Z","etag":null,"topics":["color","fping","golang","icmp","network-monitoring","networking","packet-loss","ping","syslog"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thc2cat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-09-08T14:30:12.000Z","updated_at":"2025-10-24T08:43:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"25c95bb2-8c8f-4f90-a946-5a0524897ad8","html_url":"https://github.com/thc2cat/heartbit","commit_stats":null,"previous_names":["thc2cat/heartbit","thc2cat/go-icmp-status"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/thc2cat/heartbit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thc2cat%2Fheartbit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thc2cat%2Fheartbit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thc2cat%2Fheartbit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thc2cat%2Fheartbit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thc2cat","download_url":"https://codeload.github.com/thc2cat/heartbit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thc2cat%2Fheartbit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28420814,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["color","fping","golang","icmp","network-monitoring","networking","packet-loss","ping","syslog"],"created_at":"2026-01-14T12:50:11.982Z","updated_at":"2026-01-14T12:50:13.303Z","avatar_url":"https://github.com/thc2cat.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# heartbit\n\nheartbit is a command-line tool designed for network monitoring.\n\n![docs/Heartbit.png](docs/Heartbit.png)\n\nIt takes a list of IP addresses or hostname as input and periodically pings them using ICMP (ping).\n\nUnlike traditional ping utilities that flood the console with output, heartbit is designed for quiet monitoring.\n\nIt only prints output when a monitored host's status changes.\n\nSpecifically, it reports when a host becomes unreachable (packet loss or completely down) or when a previously unreachable host comes back online.\n\nThis concise, event-driven reporting makes heartbit ideal for unattended monitoring and integration with alerting systems, allowing administrators to focus on actual network issues rather than sifting through constant ping output.\n\nIt can be configured to adjust ping intervals and timeout,  providing more flexible control over sensitivity and responsiveness.\n\nVery simple tool that keep sending icmp packet to a list of ipv4 or ipv6 hosts, and display flip/flap icmp status changes, and packet loss.\n\nOriginal idea code stolen from [github.com/digineo/go-ping/cmd/ping-monitor](https://github.com/digineo/go-ping/tree/master/cmd/ping-monitor)\n\n* It Need root rights on linux for sending icmp packets ( or sudo, or chown root `binary` , chmod u+s `binary` after build )\n\n## Go build\n\n```shell\n\u003e git clone https://github.com/thc2cat/heartbit \n\u003e cd heartbit \n\u003e go mod tidy \n\u003e go build\n```\n\n## Options\n\n```shell\nv0.11 $ ./heartbit.exe \nUsage: C:\\dev\\src\\projects\\heartbit\\heartbit.exe [options] [hosts...]\n  -dateFormat string\n        log date format (default \"2006-01-02 15:04:05\")\n  -logToSyslog\n        log events to syslog\n  -noLossReport\n        do not report summary\n  -pingInterval duration\n        interval for ICMP echo requests (default 1s)\n  -pingTimeout duration\n        timeout for ICMP echo request (default 3s)\n  -r string\n        read targets from file\n  -reportInterval duration\n        interval for reports (default 5s)\n  -showIp\n        show monitored targets name resolution\n  -size uint\n        size of additional payload data (default 56)\n  -stopAfter duration\n        test duration (example 10m) (default 8760h0m0s)\n  -t    be tolerant, allow 1 packet loss per check\n\n```\n\n## monitoring a list of hosts from a file\n\n```shell\nheartbit -pingInterval 5s -r hosts.txt\n```\n\n## Colored output exemple (v7) with multiple names in cli\n\n![ipv6 loss](ipv6-loss.png)\n\n* Green for a host receiving all packets during interval\n* Red for a host loosing all packets during interval\n* Yellow for a host up but loosing packets during interval, [Received/Sent/Percent] indicate x received packet for y sent packets during interval. Percent indicate percentage of received packets since start.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthc2cat%2Fheartbit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthc2cat%2Fheartbit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthc2cat%2Fheartbit/lists"}