How it works
From keystroke to commit, in four steps
A step-by-step look at how Quackie detects your commit draft, debounces, rewrites it in your persona's voice, and hands control back to you — plus the architecture that keeps the extension personality-agnostic.
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.
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"