Personalize — make it yours

OpenWatari ships one generic persona template. Your assistant's name, what it calls you, and the languages it speaks all come from config — so the same code becomes your assistant without editing a single prompt or source file.

The five identity settings

SettingWhat it doesExample
JARVIS_ASSISTANT_NAMEwhat it calls itselfWatari, Aria, Jeeves
JARVIS_USER_NAMEyour name (blank = none)Dana
JARVIS_USER_ADDRESShow it addresses yousir, ma'am, boss, or blank
JARVIS_UNDERSTOOD_LANGUAGESlanguages it can understandEnglish, Spanish
JARVIS_REPLY_LANGUAGEthe one language it replies inEnglish

Drop them in .env (or answer the setup wizard):

JARVIS_ASSISTANT_NAME=Aria
JARVIS_USER_NAME=Dana
JARVIS_USER_ADDRESS=ma'am
JARVIS_UNDERSTOOD_LANGUAGES=English, Spanish
JARVIS_REPLY_LANGUAGE=English

That alone yields: “You are Aria, Dana's personal voice assistant. Address Dana as ma'am. They may speak English, Spanish — understand any of them, but always reply in English.” Leave a field blank and the prose adapts gracefully (no name → “your personal assistant”; no honorific → “address them naturally”).

How it works

The persona file (personality/jarvis.md, or whatever JARVIS_PERSONA_FILE points at) is a template with {assistant_name}, {owner_possessive}, {address_line} and {language_line} tokens. build_system_prompt() fills them from config at every turn — verified in bench/test_identity.py (which also asserts no unfilled token ever leaks into the prompt). A generic starting point lives at personality/persona.example.md.

Going deeper: persona & profile

  • Rewrite the voice. Edit the prose in your persona file (tone, manner, boundaries) — keep the {tokens} and they'll still be filled. Point JARVIS_PERSONA_FILE at a different file to keep several personas.
  • Give it knowledge about you (your profile). The Markdown files under memory/ (who you are, your projects, your environment) are injected as long-term context. These are yours — fill them with your life, and keep them out of any public fork (they're your private profile, not framework code).
  • Wake word. Independent of the name — see Configuration (JARVIS_WAKE_WORDS). The spoken name and the wake word can differ (e.g. wake on “hey jarvis”, identify as “Aria”).
Local-first. Identity is pure config — nothing is sent anywhere to personalize. Pair it with local STT/TTS (whisper + piper) for a fully offline, fully personal assistant.