Documentation

Troubleshooting

Solve the most common setup, permission, and insertion issues.

Quick Diagnosis

Use this order when something feels broken:

  1. Check permission status in Settings -> Permissions.
  2. Run Engine Test Setup.
  3. Dictate in both an editor and a terminal.
  4. Inspect History insertion status for latest entries.

This usually isolates whether the issue is recording, transcription, cleanup, or insertion.

Common Issues

SymptomLikely causeFix
Option key does nothingInput Monitoring denied or monitor not re-registeredGrant permission, refresh permissions, relaunch Steno
Hands-free key failsGlobal toggle disabled or conflicting keySet F13-F20 key in Recording settings
"File not found" in Engine sectionWrong whisper-cli or model pathUpdate paths and rerun Test Setup
Transcription works but no text appearsAccessibility denied or method ordering mismatchGrant Accessibility and test insertion order
Terminal output is inconsistentDirect typing unsuitable for target terminalKeep clipboard fallback and prioritize terminal-safe behavior
Cloud cleanup not runningMissing API key or budget guard disabled cloud modeSave API key and verify cleanup mode
Onboarding blocked on permissionsMicrophone not grantedGrant microphone in System Settings and retry

Advanced Debugging

If the basic matrix does not resolve the issue:

  • verify whisper-cli --help runs from your configured path
  • rebuild vendor/whisper.cpp from pinned version
  • re-generate project with xcodegen generate
  • confirm app signing identity did not change unexpectedly
  • check whether failures are app-specific (bundle ID context)

For insertion-only issues, compare outcomes:

  • editor test
  • terminal test
  • browser text field test

This helps isolate app compatibility vs global configuration issues.

Before Reporting

When opening an issue, include:

  • macOS version
  • Steno commit/tag or branch
  • exact failing step
  • whether failure is global or app-specific
  • current permission states
  • configured insertion method order
  • screenshot or text of Engine Test Setup result

This context dramatically reduces triage time.