Search and copy TOTP codes from 2FAS exports directly in Raycast. No cloud, no network calls. Your secrets stay local in a Keychain-encrypted vault.
.2fas export files2FAS is a great mobile authenticator, but it has no desktop app. This extension bridges that gap by importing your 2FAS export and generating TOTP codes locally on your Mac.
.2fas file to your Mac (AirDrop, iCloud Drive, etc.)| Command | Description |
|---|---|
| Search OTP | Search all services, copy codes with live countdown |
| Recent OTP | Access pinned and recently used services |
| Import Vault | Import a .2fas export file |
| Setup | View vault status and manage configuration |
| Layer | Detail |
|---|---|
| Vault key | Random 256-bit key stored in macOS login Keychain via /usr/bin/security |
| Vault file | AES-256-GCM encrypted at ~/Library/Application Support/Raycast/extensions/.../vault.enc with 0600 permissions |
| Import | Decrypts .2fas in memory (PBKDF2 + AES-256-GCM), re-encrypts into local vault |
| Secrets at rest | No plaintext secrets on disk. Secrets exist only in memory during runtime |
| Network | Zero network calls. Everything is offline |
| Clipboard | Concealed copy. OTP codes are excluded from clipboard history |
| Dependencies | Zero external crypto dependencies. Node.js crypto module only |
/usr/bin/security (briefly visible in the process list to same-user processes). This is an inherent limitation of the macOS security CLI.Contributions are welcome. Please open an issue first to discuss what you'd like to change.
# Fork and clone the repo
git clone https://github.com/<your-username>/raycast-2fas-authenticator.git
cd raycast-2fas-authenticator
# Install dependencies
npm install
# Start development mode (opens in Raycast)
npm run dev
# Build
npm run build
# Lint
npm run lint
# Fix lint issues
npm run fix-lint
mainnpm run lint passesOpen an issue with: