1212
1313app = typer .Typer (
1414 name = "shh" ,
15- help = "Voice transcription CLI powered by OpenAI Whisper" ,
15+ help = """Voice transcription CLI powered by OpenAI Whisper.
16+
17+ Record audio, transcribe with Whisper, and optionally format or translate the output.
18+
19+ \b
20+ Examples:
21+ shh Record and transcribe (press Enter to stop)
22+ shh --style business Transcribe with professional formatting
23+ shh --translate English Transcribe and translate to English
24+ shh setup Configure your OpenAI API key
25+ shh config show View current configuration
26+ shh config set default_style casual Set default formatting style
27+ """ ,
1628 no_args_is_help = False , # Allow running 'shh' without args (default command)
29+ rich_markup_mode = "markdown" ,
1730)
1831
1932# Add config subcommand group
@@ -34,22 +47,35 @@ def default_command(
3447 typer .Option (
3548 "--style" ,
3649 "-s" ,
37- help = "Formatting style (overrides config default)" ,
50+ help = (
51+ "Formatting style: neutral (raw), casual (conversational), "
52+ "or business (professional)"
53+ ),
3854 ),
3955 ] = None ,
4056 translate : Annotated [
4157 str | None ,
4258 typer .Option (
4359 "--translate" ,
4460 "-t" ,
45- help = "Target language for translation (e.g., 'English', 'French')" ,
61+ help = "Translate to target language (e.g., 'English', 'French', 'Spanish ')" ,
4662 ),
4763 ] = None ,
4864) -> None :
4965 """
50- Record audio and transcribe with optional formatting/translation.
66+ Record audio from microphone and transcribe it.
67+
68+ \b
69+ Press Enter to stop recording (or auto-stop after 5 minutes).
70+ Results are automatically copied to clipboard.
5171
52- Press Enter to stop recording (max 5 minutes).
72+ \b
73+ Examples:
74+ shh Quick recording with defaults
75+ shh -s casual Casual formatting (removes filler words)
76+ shh -s business Professional formatting
77+ shh -t English Transcribe and translate to English
78+ shh -s business -t French Business format + translate to French
5379 """
5480 # If a subcommand was invoked, don't run the default
5581 if ctx .invoked_subcommand is not None :
0 commit comments