VS Code & Cursor40 personas included

Git commits with personality.

Write once. Quack forever.

Quackie is a VS Code extension that rewrites your Git commit messages through 40 bundled personas β€” dry seniors, sarcastic ducks, grim doomers, wise wizards, startup cowboys, and more. Install once. Works in any repo.

Install once. Pick a persona. Type
fix validation β€” get
πŸ„ fix: convince validation some manners

Source Control β€” Quackie Demo
Source Controlgit
|
Changes (3)
Msrc/auth/validator.ts
Msrc/auth/rules.ts
Mtests/auth.test.ts
main↑0 ↓0

Who wrote this commit?

Same bug. Same fix. Click a persona and watch the commit message become someone else entirely.

you wrotefix: button double submits on click
πŸ›‘οΈfix(button): prevent double submits when clicks get impatient
+34 more β†’
Personality-first architectureConventional Commits preservedZero workspace setupOpen source friendlyWorks with built-in Git extension

Commits are boring. Yours don't have to be.

The problem

You write "fix bug" or "update stuff". Your git log reads like a hospital intake form. You want personality without losing professionalism.

The Quackie way

Personas are data, not hardcoded prompts in the extension. Each persona has voice, humor style, verbs, and rules. The extension only orchestrates β€” detect, select, rewrite, replace.

The result

Same meaning. Better voice. One emoji. Max 72 characters. Your team might actually read the changelog.

Four steps. Zero friction.

01

Install Quackie

VSIX or Extension Development Host. Personas ship bundled β€” no config files in your repo.

02

Pick a persona

Click the status bar pill (πŸ¦† Duck, πŸ„ Moo, πŸ¦‰ Owl…) or use Command Palette: Quackie: Select Persona.

03

Type your commit

Write a normal draft: feat: add payment retry

04

Quackie rewrites

After ~500ms debounce, your commit input updates automatically. You stay in flow.

Quackie won't fight you β€” manually edit a generated commit and it stays frozen until you're ready for the next rewrite.

Your git log, after Quackie.

One sprint, eleven commits, eleven personas. Every message below is real output from the Quackie rewrite engine β€” not a mockup.

~/awesome-app β€” git log --oneline
*f4a9e2b(HEAD -> main, tag: v1.0.0)πŸ‘‘ chore: crown v1.0.0 as the first stable release
*c81d3f7⛏️ docs: ogarnij README, ΕΌeby nie straszyΕ‚o po staremu
*b52c9a0πŸŒͺ️ feat: summon dark mode from the void
*e903b1cβ˜• revert: back out the Friday hotfix before it teaches us more lessons
*a17f08d🍺 fix: patch the payment crash before it takes the weekend hostage
*d6e4c25🀠 feat: ship the checkout page in time for the demo
*92b7f4eπŸ¦₯ chore: eventually nudge the dependencies forward
*7c3a812πŸ„ refactor: untangle payment logic into its own service
*4f19d6bπŸ’€ fix: let empty passwords fail without taking auth down with them
*8e5b03aπŸ¦† feat: apparently we need a user login form
*1a2f9c4πŸ§™ chore: lay the first stones of the realm

Hover a line to see which persona wrote it. Switch personas anytime β€” one click in the status bar.

Every commit needs a narrator.

A few of the 40 personas shipped inside Quackie.

Built for developers who live in Git

Auto-rewrite as you type

Polls Git input, debounces 500ms, replaces in place. No popup, no copy-paste.

Status bar persona picker

Always visible: πŸ„ Moo. One click β†’ QuickPick with all personas.

Loop prevention

Internal isUpdating guard β€” no infinite rewrite spiral.

User-respect freeze

Edit a generated commit manually? Quackie backs off until the next cycle.

Bundled personas

40 personalities included. No personas/ folder in your project.

Hosted rewrite

Quackie backend handles the rewrite β€” no API key in your editor.

Multi-repo support

Works across multiple Git repositories in one workspace.

Conventional Commits

Meaning preserved. Format respected. Max 72 characters.

Personality-first by design

The extension knows as little as possible about personalities. Personas are data.

Execution flow

You type commit
CommitWatcher
debounce Β· freeze logic
RewriteService.rewrite()
persona Β· type Β· text
Persona engine
persona.yaml + system_prompt.md
Rewritten commit
Git input box updated
Extension knows
Does not know
persona id, name, emoji
prompts, humor rules, tone
when to rewrite
how to be funny
user edit state
forbidden words, verbs
RewriteService.tsTypeScript
rewrite({
  persona: "moo",
  type: "commit",
  text: "fix validation"
})
// β†’ "πŸ„ fix: convince validation some manners"

Get Quackie

Download the extension, install it, pick a persona. Works in VS Code and Cursor.

After downloading the VSIX: Cmd+Shift+P β†’ Extensions: Install from VSIX... β†’ reload window.

Requirements
VS Code 1.85+ or Cursor
Built-in Git extension enabled (vscode.git)

Configurable, sensible defaults

Setting
Default
Description
quackie.persona
""
Active persona id
quackie.autoRewrite
true
Auto rewrite on type
quackie.debounceMs
500
Debounce delay (ms)
quackie.enabledTargets
["commit"]
Rewrite targets (future)

Questions