Configuration
shh stores configuration in a JSON file at a platform-specific location. You can also use environment variables or command-line flags.
Configuration File Location
macOS: ~/Library/Application Support/shh/config.json
Linux: ~/.config/shh/config.json
Windows: %APPDATA%\shh\config.json
The file is created automatically when you run shh setup.
Configuration Priority
Settings are loaded in this order (highest priority first):
- Command-line flags -
--style casual - Environment variables -
SHH_DEFAULT_STYLE=casual - Config file -
config.json - Defaults - Built-in defaults
Available Settings
openai_api_key
Type: String Required: Yes Default: None
Your OpenAI API key for Whisper and GPT APIs.
# Set via setup command (recommended)
shh setup
# Set via environment variable
export SHH_OPENAI_API_KEY="sk-..."
# Set via config command
shh config set openai_api_key "sk-..."
Security
Never commit your API key to version control. Use environment variables or the config file.
default_style
Type: String
Options: neutral, casual, business
Default: neutral
Default formatting style for transcriptions.
# Set via config command
shh config set default_style casual
# Set via environment variable
export SHH_DEFAULT_STYLE=casual
# Override via flag
shh --style business
See Formatting Styles for details on each style.
default_translation_language
Type: String
Options: Any language name (e.g., English, French, Spanish)
Default: None
Default language to translate transcriptions to. When set, all recordings are automatically translated to this language unless overridden with --translate.
# Set default translation language
shh config set default_translation_language English
# Now all recordings auto-translate
shh
# Override when needed
shh --translate French
# Clear default translation
shh config set default_translation_language none
See Translation for details on supported languages.
show_progress
Type: Boolean
Options: true, false
Default: true
Show live progress indicator while recording.
# Set via config command
shh config set show_progress false
# Set via environment variable
export SHH_SHOW_PROGRESS=false
When enabled, you'll see:
When disabled, recording is silent until you press Enter.
whisper_model
Type: String
Options: whisper-1
Default: whisper-1
OpenAI Whisper model to use for transcription.
# Set via config command
shh config set whisper_model whisper-1
# Set via environment variable
export SHH_WHISPER_MODEL=whisper-1
Model Availability
Currently, whisper-1 is the only available model via the OpenAI API. This setting exists for future compatibility.
Environment Variables
All settings can be configured via environment variables with the SHH_ prefix:
export SHH_OPENAI_API_KEY="sk-..."
export SHH_DEFAULT_STYLE="casual"
export SHH_DEFAULT_TRANSLATION_LANGUAGE="English"
export SHH_SHOW_PROGRESS="true"
export SHH_WHISPER_MODEL="whisper-1"
Add these to your shell profile (~/.bashrc, ~/.zshrc, etc.) for persistence.
Example Configuration File
Here's what a typical config.json looks like:
{
"openai_api_key": "sk-proj-...",
"default_style": "casual",
"default_translation_language": "English",
"show_progress": true,
"whisper_model": "whisper-1"
}
Managing Configuration
View Current Config
Get Single Setting
Update Setting
Reset to Defaults
Reset Warning
shh config reset clears all settings, including your API key. You'll need to run shh setup again.
Common Configurations
Casual User
Always use casual formatting, hide progress:
Or in environment variables:
Business User
Professional formatting by default:
Developer Testing
Use environment variables to avoid modifying config:
Troubleshooting
Config file not found
If you see "No API key found", run:
This creates the config file and prompts for your API key.
Permission errors
If you can't write to the config file, check directory permissions:
# macOS/Linux
ls -la ~/Library/Application\ Support/shh/ # macOS
ls -la ~/.config/shh/ # Linux
# Windows
dir %APPDATA%\shh\
Invalid values
If you manually edit config.json and enter invalid values, shh will show an error:
Fix by running: