Make Your Custom AI Look Like a Pro

by chrles
gitaiworkflow

Co-Authoring with Ralph

ralph-wiggum-ai GitHub profile — zero repos, bio reads 'Your co-author body'

When you use GitHub Copilot, the co-authorship shows up in your commit history automatically. Nice little avatar pair, clean attribution, everyone can see the AI was there.

When you run your own AI flow — a local model, a custom pipeline, whatever you glued together — you get none of that. The commits look 100% yours. Which is flattering, but dishonest.

So I made a GitHub account for my AI.

Meet ralph-wiggum-ai. Zero repos, zero activity, one job: show up next to me in the log.

A GitHub commit showing two avatars side by side — the author and ralph-wiggum-ai as co-author

The trick

Git has supported Co-Authored-By trailers for years. GitHub renders them as paired avatars on the commit. You just need a real user for the AI side:

Add retry loop to webhook dispatcher

Co-Authored-By: ralph-wiggum-ai <[email protected]>

The email is whatever you've set as the primary address on the account. In Ralph's case: [email protected].

That's it. No token, no permissions, no integration. The account just needs to exist.

The hook

I don't want to think about it. Every commit gets the trailer, no opt-in, no flag to remember. A prepare-commit-msg hook appends it before the editor even opens:

#!/usr/bin/env bash
# .git/hooks/prepare-commit-msg

COMMIT_MSG_FILE="$1"
COMMIT_SOURCE="$2"

# Skip merges, amends, and squash commits
if [[ -n "$COMMIT_SOURCE" && "$COMMIT_SOURCE" != "message" ]]; then
  exit 0
fi

TRAILER="Co-Authored-By: ralph-wiggum-ai <[email protected]>"

# Don't add it twice
grep -q "^$TRAILER$" "$COMMIT_MSG_FILE" && exit 0

printf '\n%s\n' "$TRAILER" >> "$COMMIT_MSG_FILE"

Drop it in .git/hooks/prepare-commit-msg, chmod +x it, done. Every commit from that repo ships with Ralph in the trailer.

One catch: .git/hooks isn't tracked, so the hook lives only on your machine. Which is exactly what I want. I don't want a collaborator cloning the repo and suddenly every commit they write gets Ralph as a co-author — that's my AI, not theirs. Keeping the hook local means the attribution is opt-in by who's typing, not by which repo.

Why bother

Because the commit log is a record of how the work happened. If an AI helped, that should be visible — same as a human pair. The big providers give you that for free. The rest of us have to wire it in ourselves. It's one git hook and one throwaway GitHub account.

Cheap, honest, and now your custom flow looks like a colleague instead of a secret.

Home