commitghost reads your staged diff, writes the commit message for you, and haunts you (politely) when you've let a diff grow too long.
commitghost doesn't try to be a git client. It does three specific jobs well, and gets out of your way.
Sends your staged diff: file stats, changed lines, and your repo's recent commit style โ to an LLM that writes messages matching how your team already commits.
Every run generates a few candidates. Pick one, edit it inline, or regenerate. Nothing gets committed without you choosing the exact words.
One command adds a hook to your shell. When your working tree gets too big without a commit, the ghost shows up above your prompt to remind you.
Run commitghost install-ghost once. It detects your shell and wires in a hook โ no editing your PROMPT by hand, no fighting with Powerlevel10k or Starship. When your diff crosses a line-count threshold, the ghost prints above your next prompt. Commit, and it's gone.
Configurable per-repo via .commitghost.json. Uninstall any time with commitghost uninstall-ghost.
Works with an Anthropic or OpenAI key. The config wizard stores it locally at chmod 600 โ never in your shell history.