feat: Add Touch ID support for unlocking the Vault on macOS#10973
feat: Add Touch ID support for unlocking the Vault on macOS#10973andya1lan wants to merge 15 commits intoEugeny:masterfrom
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds Touch ID support for unlocking the Vault on macOS using Electron's biometric authentication APIs. The implementation encrypts/decrypts the vault passphrase using Electron's safeStorage (backed by macOS Keychain) and provides configurable expiration policies.
Changes:
- Added Touch ID biometric authentication support for macOS using systemPreferences.promptTouchID()
- Implemented secure passphrase storage using Electron's safeStorage API with IPC handlers
- Added Touch ID configuration UI with expiration policies (time-based and restart-based)
Reviewed changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| tabby-electron/src/services/platform.service.ts | Implements Touch ID methods including biometric auth, secure storage, settings management, and expiration logic |
| tabby-electron/src/services/electron.service.ts | Adds SystemPreferences type import for Touch ID API access |
| app/lib/app.ts | Adds IPC handlers for safeStorage encryption/decryption in main process |
| tabby-core/src/api/platform.ts | Defines platform service API for biometric auth and secure storage with default implementations |
| tabby-core/src/components/unlockVaultModal.component.ts | Adds Touch ID unlock functionality with auto-trigger and error handling |
| tabby-core/src/components/unlockVaultModal.component.pug | Adds Touch ID button and status messages to unlock modal UI |
| tabby-core/src/services/vault.service.ts | Integrates Touch ID passphrase updates when unlocking vault |
| tabby-settings/src/components/vaultSettingsTab.component.ts | Implements Touch ID settings management with enable/disable and expiration options |
| tabby-settings/src/components/vaultSettingsTab.component.pug | Adds Touch ID settings UI with toggle, expiration, and restart options |
| locale/app.pot | Adds translation strings for Touch ID feature |
| app/yarn.lock | Reformats duplicate package entries (no functional change) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Thanks a lot for implementing Touch ID support for the Vault 👍 Does this feature also handle SSH sessions? Specifically, if an SSH host was open before closing or restarting Tabby and the password prompt appears on startup, can Touch ID be used instead of re-entering the password? |
|
Hi and yes ideally it will ask you to use TouchID before the expiration day. |
|
Hi! Thanks for your advice. |

Support #10963
Implementation
safeStorage.Options
Request
I also use Windows but as far as I know Electron has no native support for Windows Hello.
If you know a usable solution, please tell me or PR to the project, thanks.