Skip to main content

Assistant Mode

Assistant Mode transforms SlasshyWispr from a simple transcription tool into an intelligent AI companion that can answer questions, rewrite text, and provide context-aware responses with natural voice playback.

Dictation vs Assistant Mode

Understanding the difference between these two modes is key to using SlasshyWispr effectively:
Voice Dictation converts speech to text.
  • Transcribes your words verbatim
  • No AI processing or interpretation
  • Outputs text to clipboard or auto-paste
  • Faster and more predictable
  • Works entirely offline with local STT models
Best for: Taking notes, writing emails, drafting documents
interface AssistantPipelineResponse {
  mode: "assistant" | "dictation";  // Current mode
  selectionRewrite: boolean;         // Rewriting selected text
  selectionContextUsed: boolean;     // Context was included
  transcript: string;                // Your speech transcribed
  assistantResponse: string;         // AI response
  audioBase64: string;              // TTS audio for response
  sttLatencyMs: number;             // Speech-to-text time
  aiLatencyMs: number;              // AI generation time
  ttsLatencyMs: number;             // Text-to-speech time
}
Assistant Mode uses the full pipeline: STT → AI → TTS, while dictation only uses STT.

Wake Word Activation

Wake words let you trigger assistant mode naturally by speaking a custom phrase:

How Wake Words Work

  1. Enable wake word detection in Settings > General
  2. Configure your assistant’s name (default: "Lily")
  3. Start your speech with the wake phrase (e.g., “Hey Lily…”)
  4. SlasshyWispr detects the wake word and enters assistant mode
  5. Your query is processed and answered with AI

Wake Word Configuration

interface PersistedSettings {
  wakeWordEnabled: boolean;      // Enable wake word detection
  assistantName: string;         // Your assistant's name
  commandMode: boolean;          // Always use assistant mode
}

const DEFAULT_ASSISTANT_NAME = "Lily";

Wake Word Examples

Wake PhraseAssistant NameResult
”Hey Lily, what’s the weather?”LilyTriggers assistant mode, asks about weather
”Jarvis, summarize this paragraph”JarvisAssistant mode with selection rewrite
”Computer, set a reminder”ComputerAssistant processes reminder request
Choose an assistant name that’s easy to pronounce and unlikely to appear in normal conversation to avoid accidental activation.

Context Awareness Feature

Context awareness allows the assistant to see and work with text you’ve selected:

How Context Awareness Works

  1. Select text in any application
  2. Activate assistant mode with hotkey or wake word
  3. SlasshyWispr captures the selected text as context
  4. Your spoken command is combined with the selection
  5. AI generates a response based on both inputs
interface PersistedSettings {
  contextAwareness: boolean;  // Enable context from selection
}

interface AssistantPipelineResponse {
  selectionRewrite: boolean;           // Is this a rewrite operation?
  selectionPending: boolean;           // Selection capture in progress
  selectionContextCleared: boolean;    // Context was cleared
  selectionContextUsed: boolean;       // Context was included in AI prompt
}

Context-Aware Use Cases

Rewrite selected text with style instructions:
  1. Select a paragraph in your document
  2. Say: “Rewrite this to be more professional”
  3. AI rewrites the selection with the requested tone
  4. Replacement text is returned
Enable contextAwareness in settings to use this feature.

Selection Rewriting

Selection rewriting is a powerful context-aware feature for text transformation:

Selection Rewrite Workflow

Rewrite Commands

CommandEffect
”Make this more concise”Reduces word count while preserving meaning
”Make this professional”Adjusts tone for business communication
”Fix grammar”Corrects grammatical errors
”Make this casual”Relaxes formal language
”Expand on this”Adds detail and elaboration
Rewrite results respect your configured styleProfile setting: adaptive, professional, casual, concise, or developer.

Response Playback

Assistant responses are played back using text-to-speech (TTS) for a natural conversational experience:

TTS Pipeline

interface PersistedSettings {
  ttsEngine: TtsEngine;              // "piper" or "coqui"
  piperSpeed: number;                // Playback speed (default: 1.08)
  piperQuality: PiperQuality;        // "fast" | "balanced" | "high"
  piperEmotion: PiperEmotion;        // "neutral" | "calm" | "happy" etc.
}

type TtsEngine = "piper" | "coqui";
const DEFAULT_TTS_ENGINE: TtsEngine = "piper";

TTS Features

  1. Automatic Playback - Responses are spoken aloud immediately
  2. High-Quality Voices - Piper (default) or Coqui TTS engines
  3. Speed Control - Adjust playback speed (0.5x to 2.0x)
  4. Quality Modes - Choose between fast, balanced, or high quality
  5. Emotion Control - Select voice tone: neutral, calm, happy, excited, etc.
Piper is the default TTS engine (zero-Python mode).
  • Fast, lightweight, and reliable
  • No Python dependencies required
  • Multiple quality and emotion settings
  • Default speed: 1.08x
const DEFAULT_PIPER_SPEED = 1.08;
const DEFAULT_PIPER_QUALITY: PiperQuality = "fast";
const DEFAULT_PIPER_EMOTION: PiperEmotion = "neutral";

Response Latency

Assistant mode tracks latency for each pipeline stage:
interface AssistantPipelineResponse {
  sttLatencyMs: number;      // Speech-to-text processing time
  aiLatencyMs: number;       // AI model inference time
  ttsLatencyMs: number;      // Text-to-speech generation time
  totalLatencyMs: number;    // End-to-end response time
}
View real-time pipeline metrics in Settings > Pipeline.

Command Hotkey

Quickly activate assistant mode without wake words:
const DEFAULT_COMMAND_HOTKEY = "Ctrl+Shift+Space";
  • Press Ctrl+Shift+Space to force assistant mode
  • Bypasses wake word detection
  • Useful for quick queries without saying “Hey [Name]”
Use the command hotkey for faster assistant access when you don’t want to use wake words.

Style Profiles

Customize how the assistant responds with style profiles:
type StyleProfile = "adaptive" | "professional" | "casual" | "concise" | "developer";
const DEFAULT_STYLE_PROFILE: StyleProfile = "adaptive";
ProfileResponse Style
AdaptiveMatches your input tone and context
ProfessionalFormal, business-appropriate language
CasualFriendly, conversational tone
ConciseBrief, to-the-point responses
DeveloperTechnical, code-focused answers
Configure in Settings > General under styleProfile.

Best Practices

  1. Use Wake Words Naturally - Speak your assistant’s name clearly at the start
  2. Enable Context Awareness - For selection rewriting and context-aware responses
  3. Choose the Right Style - Match your style profile to your workflow
  4. Monitor Latency - Check pipeline timings to optimize online/offline settings
  5. Customize TTS - Adjust speed and emotion for comfortable listening

Build docs developers (and LLMs) love