Alright, so let’s talk about this little thing I’ve been doing, which I’ve just been calling `ghdtoday` in my head and on my machine. It’s not some grand project, not at all. It’s more about keeping myself honest, you know?

I found myself, like, constantly wondering if I’d actually done anything useful on a given day, especially with coding stuff. You know how it is. You can be busy all day, but at the end of it, what’s actually pushed, what’s actually out there? GitHub is the place for that, for me at least. But logging in, clicking around, navigating to my profile, then to the contribution graph… it’s a bunch of clicks. Too many when I just want a quick peek.
So, I thought, there’s gotta be a simpler way. I’m on the command line all the time anyway. Why not just have something there?
My Little Process
First off, I knew GitHub has an API. Everyone and their dog has an API these days. So, I went digging. Didn’t want to get bogged down in OAuth and all that fancy stuff for just a quick personal check. Turns out, for public activity, it’s pretty straightforward. Good enough for my needs.
My first attempt was just to curl some endpoint and grep through the output. Super crude. Looked like a mess, naturally. But it proved the concept. I could see my own activity listed there, mixed in with a bunch of other noise.
Then I thought, okay, let’s make this a tiny bit smarter. I didn’t want to install a whole new programming language or a massive library just for this. My machine’s got Python, it’s got Bash. Python felt like overkill, honestly. So I started with a simple shell script. Shell scripts are great for gluing little commands together.

Here’s roughly what I did, step by step:
- Figured out the GitHub API endpoint for a user’s public events. That took a bit of reading their docs. Some of it’s a bit dense, but the examples helped.
- Used `curl` to fetch the data. Standard stuff. Added the `-s` flag for silent mode because I don’t need all that progress meter junk.
- Piped that JSON output to `jq`. If you don’t know `jq`, it’s a lifesaver for dealing with JSON on the command line. Seriously, get it. I used it to filter for events from today and just pull out the type of event and the repository name.
- Initially, I just spat that out. But it was still a bit raw. So I added a little bit of `awk` and `sed` to format it slightly. Nothing fancy, just making it readable. Like, “PushEvent to my-repo” or “CreateEvent for another-project”.
I didn’t bother with colors or anything. Plain text is fine. I just wanted to see if there were entries for the current date. If there are, cool. If not, well, maybe I slacked off, or maybe my work was offline or just not GitHub-related that day. No judgment, just data.
How It’s Working Out
I saved this little script as `ghdtoday` in a directory that’s in my PATH. So now, I just pop open a terminal, type `ghdtoday`, and bam! I get a quick list of what I’ve pushed or what other public activity I’ve had on GitHub for the day. Takes like, half a second.
It’s surprisingly effective for me. It’s not about showing off. It’s a personal dashboard, a tiny little mirror. Sometimes it gives me a little nudge if I see it’s empty by late afternoon. Other times, it’s a nice little confirmation that, yeah, I did get that thing committed and pushed.
It’s funny how such a small thing can make a bit of a difference to your workflow or just your sense of accomplishment. It’s not gonna change the world, but it helps me keep track, and it was a fun little exercise in stringing command-line tools together. Sometimes, the simple solutions are the best, right? No need to over-engineer everything.
