I had Claude build a CLI tool that analyzes GitHub forks to surface changes that haven't been submitted as PRs.
The core idea is convergence: when multiple independent forks touch the same file and make the same change, that's a strong signal something needs fixing upstream.
Example: I ran forkwatch against a Ruby API client library and found 11 independent forks all upgrading the same stale dependency. 4 of them made byte-for-byte identical changes to another file.
$ forkwatch analyze maximadeka/convertkit-ruby
convertkit-ruby.gemspec (11 forks converge here)
WebinarGeek +1 -2 — Change gitspec faraday version
- spec.add_runtime_dependency "faraday", "~> 1.0"
- spec.add_runtime_dependency "faraday_middleware", "~> 1.0"
+ spec.add_runtime_dependency "faraday", '>= 2.0'
...
lib/convertkit/connection.rb (4 forks converge here) Most common change pattern:
require "faraday"
-require "faraday_middleware"
require "json"
WebinarGeek, chaiandconversation, alexbndk, excid3
It filters out noise (dependabot, lock files, CI config), groups forks by files changed, and deduplicates identical patches. There's a --json flag for scripting/AI and a --patch flag that outputs a unified diff you can pipe to git apply.Uses the GitHub CLI for auth and one API call per fork. Written in Go.