Skip to content

preferences

Voice Mode keeps a single flat markdown file at ~/.config/voicemode/preferences.md that you can read and append to. This is the user’s personal-memory surface — short, durable facts that should shape your behavior across turns.

Two tools work the file:

  • read_preferences — return the whole file.
  • remember_preference — append a single line.

Call read_preferences at the start of any turn where personalization matters: drafting on the user’s behalf, addressing other people, naming files, choosing tone, picking defaults. Cheap call — the file caps at 32 KB.

Call remember_preference when the user says something stable about themselves:

  • “Remember that I sign emails ‘thanks, Mike’.”
  • “From now on, default to terse responses.”
  • “My team is Anna, Ben, and Cara.”
  • “I prefer kebab-case for filenames.”

Don’t remember:

  • One-off context that only matters this turn (“today I’m working on X”).
  • Ephemeral state (what file is open, where the cursor is).
  • Anything the user can already derive from the codebase, the conversation, or a read_* tool.

The file is plain markdown. Each remember_preference call adds a single - note here line. The user can edit the file directly any time — open ~/.config/voicemode/preferences.md in any editor.

  • 1 KB per appended note.
  • 32 KB whole-file cap. When full, remember_preference returns an error; ask the user to prune the file.

The file lives entirely on the user’s machine. Voice Mode never uploads it. It’s readable by anything running under the user’s account — treat it like any other dotfile, not a secrets store.