Skip to content

Commit 0d5cff3

Browse files
ralyodioclaude
andcommitted
Retire gh-pulse here: it lives in cli-tools now
PR #10 landed gh-pulse in this repo and profullstack/cli-tools#69 landed the same tool, ported to TypeScript, with the terminal view, open, text and json on top of the email. Two implementations of one name on PATH is the drift cli-tools list marks with `!`, so this copy goes and the README points at the other. No release was cut between the two, so nothing installed on any box changes. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011gfb1vcQH5rf82HfbJvf1Z
1 parent ce09909 commit 0d5cff3

5 files changed

Lines changed: 6 additions & 903 deletions

File tree

‎README.md‎

Lines changed: 6 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -130,41 +130,12 @@ the next flag as a filename.
130130

131131
### `gh-pulse`
132132

133-
The daily "what moved on GitHub" email, with charts. Every repo the `gh` token
134-
can see (yours plus every org you belong to, forks excluded) is checked for
135-
movement since the previous run: stars, forks, commits, pull requests, issues,
136-
releases, and the traffic GitHub shows at `/graphs/traffic` (views, unique
137-
visitors, clones, referrers, popular content). Repos with movement are ranked
138-
by a weighted score; each one comes with its traffic, the top ones with a
139-
14-day chart, and new or lost followers are named.
140-
141-
```sh
142-
gh-pulse # scan, email, snapshot
143-
gh-pulse --dry-run # scan and write the HTML, send nothing
144-
gh-pulse --top 12 # how many ranked repos get a chart and detail
145-
gh-pulse --repo profullstack/nixamp # only this repo (repeatable)
146-
```
147-
148-
Movement is measured against the previous snapshot rather than a clock,
149-
because GitHub publishes traffic in UTC-day buckets one to two days late:
150-
each run counts the growth of the 14-day buckets since the last run, so a
151-
skipped day is neither lost nor double counted (the header says how long the
152-
window was). Every run writes `~/.local/share/gh-pulse/snapshots/<date>.json.gz`
153-
with the raw per-repo counts and traffic buckets; GitHub keeps nothing past 14
154-
days, so those files are the long-run history. `out/latest.html`, `.txt` and
155-
`.json` next to them are the last report.
156-
157-
Mail goes through Resend: `RESEND_API_KEY` from the environment, or from
158-
`~/.config/logicsrc/shell.env` when unset (the cron case). The from address
159-
must sit on a verified Resend domain; `GH_PULSE_FROM` overrides it and
160-
`GH_PULSE_TO` (or `--to`) the recipient. The chart rasteriser is a small npm
161-
dependency in `lib/gh-pulse/`, installed on first run.
162-
163-
A daily cron entry looks like:
164-
165-
```
166-
5 13 * * * /home/anthony/scripts/bin/gh-pulse >>/home/anthony/.local/share/gh-pulse/cron.log 2>&1
167-
```
133+
Moved to [profullstack/cli-tools](https://github.com/profullstack/cli-tools#gh-pulse)
134+
on 2026-09-13, the same day it landed here, so that the email, the `gh-pulse
135+
show` terminal view, `open`, `text` and `json` are one implementation with one
136+
name on `PATH`. The snapshots under `~/.local/share/gh-pulse` are the same files
137+
either way. `curl -fsSL https://raw.githubusercontent.com/profullstack/cli-tools/master/install.sh | sh`
138+
installs it.
168139

169140
### `gh-prs-merge`
170141

@@ -353,7 +324,6 @@ an installer is unavailable and you need the old contents back.
353324

354325
`gh` (authenticated), `jq`, and `awk`. `provision-ssh-keys` needs only OpenSSH
355326
(`ssh`, `ssh-keyscan`, `ssh-keygen`) locally and `bash` on the remote host.
356-
`gh-pulse` wants `node` 20+ and `npm` (once, for its chart dependency).
357327
`domainjson` additionally wants `node`,
358328
`dig`, and the OpenRDAP CLI (`go install github.com/openrdap/rdap/cmd/rdap@latest`,
359329
run from `~/go/bin/rdap` or on `PATH`). `ssh-logins` needs `journalctl` and

0 commit comments

Comments
 (0)