{"id":28656032,"url":"https://github.com/dhth/ghx","last_synced_at":"2026-04-20T14:06:09.753Z","repository":{"id":290638770,"uuid":"974997895","full_name":"dhth/ghx","owner":"dhth","description":"An alternative to GitHub's UI for viewing commit logs between git tags","archived":false,"fork":false,"pushed_at":"2025-10-01T23:33:25.000Z","size":252,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-02T00:18:05.611Z","etag":null,"topics":["git","github"],"latest_commit_sha":null,"homepage":"https://ghx.handytools.store","language":"Gleam","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/dhth.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-29T16:10:29.000Z","updated_at":"2025-10-01T23:33:27.000Z","dependencies_parsed_at":"2025-05-19T18:34:16.523Z","dependency_job_id":"f4d05ba3-ba07-482d-88d0-024484e68c63","html_url":"https://github.com/dhth/ghx","commit_stats":null,"previous_names":["dhth/ghch","dhth/ghx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dhth/ghx","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fghx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fghx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fghx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fghx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhth","download_url":"https://codeload.github.com/dhth/ghx/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhth%2Fghx/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278639771,"owners_count":26020297,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["git","github"],"created_at":"2025-06-13T08:10:09.950Z","updated_at":"2025-10-06T16:18:43.863Z","avatar_url":"https://github.com/dhth.png","language":"Gleam","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eghx\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/dhth/ghx/actions/workflows/main.yml\"\u003e\u003cimg alt=\"Build status\" src=\"https://img.shields.io/github/actions/workflow/status/dhth/ghx/main.yml?style=flat-square\"\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\n`ghx` provides an alternative to GitHub's UI for viewing commit logs between\ngit tags.\n\n![](https://tools.dhruvs.space/images/ghx/1.png)\n![](https://tools.dhruvs.space/images/ghx/2.png)\n![](https://tools.dhruvs.space/images/ghx/3.png)\n\n\u003e [!NOTE]\n\u003e An unauthenticated public version of `ghx`'s web interface is running\n\u003e at [https://ghx.handytools.store](https://ghx.handytools.store).\n\n🤔 Why does this exist?\n---\n\nI often need to view commit logs between two git tags for GitHub hosted\nrepositories. While GitHub's UI allows comparing refs, doing it for git tags is\na bit tedious. Additionally, comparing tags for multiple repositories involves a\nlot of clicks. To simplify this process, I built `ghx`.\n\nEverything that `ghx` does can be achieved locally using `git`; the goal is to\naccess commit logs quickly without having to clone a repository, or pull\nchanges, or run `git tag` to discover tags.\n\n⚡️ Usage\n---\n\n```text\n$ ghx serve -h\nServe ghx's web interface\n\nUsage: ghx serve [OPTIONS]\n\nOptions:\n  -o, --owner \u003cSTRING\u003e       Owner to show results for\n  -t, --owner-type \u003cSTRING\u003e  Owner type [default: user] [possible values: user, org]\n  -T, --theme \u003cSTRING\u003e       Theme to use [default: dark] [possible values: light, dark]\n  -p, --port \u003cINTEGER\u003e       Port to use\n  -s, --skip-opening         Whether to skip opening the front-end in the browser\n  -h, --help                 Print help (see more with '--help')\n```\n\n🔑 Authentication\n---\n\nYou can have `ghx` make authenticated calls to GitHub on your behalf in either\nof two ways:\n\n- Have an authenticated instance of [gh](https://github.com/cli/cli) available\n  in your `PATH` (recommended).\n- Provide a valid Github token via the environment variable `GH_TOKEN`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fghx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhth%2Fghx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhth%2Fghx/lists"}