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"