All-in-One Security. Offensive Security at the Core.
공격 보안·자동화·통합을 결합해 놓친 위협까지 탐지하는 올인원 보안 플랫폼
Keyorra는 Mac용 무료 비밀번호 관리자이며, 암호화 보관소와 로그인·카드·일회용 코드 자동 입력 브라우저 확장 기능을 제공한다
Keyorra is a free password manager for your Mac: an encrypted vault that never leaves it, and a browser extension that fills logins, cards and one-time codes.
보안Rust · TypeScriptGitHub @skensell201온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A free, local-first password manager for macOS — Rust + Tauri, with Chrome, Firefox and Safari extensions
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Keyorra is a free password manager for macOS. Your vault is an encrypted SQLite file on your
Mac; there is no account, no cloud and no telemetry. It imports your 1Password export, fills
logins, cards and addresses in Chrome, Firefox and Safari, generates one-time codes, and
unlocks with Touch ID. The core is written in Rust, the app is built with Tauri.README 전문 보기 ↗Keyorra is a free password manager for macOS. Your vault is an encrypted SQLite file on your Mac; there is no account, no cloud and no telemetry. It imports your 1Password export, fills logins, cards and addresses in Chrome, Firefox and Safari, generates one-time codes, and unlocks with Touch ID. The core is written in Rust, the app is built with Tauri.
Website: keyorra.com
.1pux) and from CSV.Download the latest build from Releases:
| File | What it is |
|---|---|
Keyorra.dmg (or Keyorra.zip) | The app. Drag Keyorra to Applications. Apple Silicon. |
Keyorra-for-Safari.zip | Carries the extension into Safari. Unzip and move to Applications. |
keyorra-chromium-<version>.zip | Extension for Chrome and other Chromium browsers. |
keyorra-firefox-<version>.zip | Extension for Firefox. |
First launch. The builds are signed with a personal Apple Development certificate and are not notarized, so macOS blocks the first launch. Right-click the app → Open → Open, or try to open it once and then go to System Settings → Privacy & Security → Open Anyway. Do the same for "Keyorra for Safari". Touch ID records are tied to this signature: a build signed by someone else (for example your own build from source) cannot read them, and you turn Touch ID on again with your master password.
keyorra-chromium-<version>.zip into a folder you keep, open chrome://extensions, turn on
Developer mode → Load unpacked → pick that folder.about:debugging → This Firefox → Load Temporary Add-on… → pick
manifest.json from the unzipped keyorra-firefox-<version>.zip. Temporary add-ons are
removed when Firefox quits.chrome://extensions/shortcuts.Cards and addresses are offered only on https pages, this Mac or the local network. Payment fields inside separate iframes (e.g. Stripe Elements) are filled one field at a time.
Your master password goes through Argon2id (64 MiB, 3 passes) to a key that unwraps a random account key; the account key unwraps one random key per vault. Changing the master password re-wraps only the account key.
Every item is encrypted with XChaCha20-Poly1305 and a fresh nonce; the vault and item IDs are bound in as associated data, so ciphertexts cannot be swapped between items.
Everything lives in a local SQLite file in ~/Library/Application Support/app.keyorra.mac.
Nothing leaves your Mac except the opt-in Have I Been Pwned hash prefix.
Browsers talk to the app through a native-messaging bridge. Each browser is paired once with a key exchange; both sides show a confirmation code that you compare before the app accepts it.
Touch ID keeps a wrapped account key in the macOS keychain, accessible only to the signed app.
Only audited crates are used for cryptography (argon2, chacha20poly1305, p256); there
are no hand-written primitives.
Sync: each record is sealed twice (account layer hides even its kind; vault layer binds it to its header), packed into padded, hash-chained segments signed with a per-device Ed25519 key kept sealed to this Mac's Secure Enclave. Only the main Mac can approve or remove devices; rollbacks, forks and withheld changes raise alarms. Removing a device stops its changes from counting; until key rotation lands it can still read new changes while it reaches the folder, so also cut its access to the folder (sign it out of iCloud). The protocol is public: docs/sync-protocol.md, with test vectors and the sync design.
Details: design spec (written under the project's earlier working name). To report a vulnerability, see SECURITY.md.
Requirements: macOS 13+, Xcode, Rust (stable), Node 22 and pnpm.
cargo test # core + session
cd app && pnpm install && pnpm test # UI
cd app && pnpm tauri dev # run the app (vault in ~/Library/Application Support/app.keyorra.mac)
app/scripts/sign.sh # signed build (Personal Team), installs /Applications/Keyorra.app
Layout:
crates/keyorra-core: encryption, vault store, item model, TOTP, generator, 1Password
import, Watchtower. No UI.crates/keyorra-session: desktop-app logic (unlock throttling, auto-lock, clipboard clearing,
import flow, browser bridge) over the core, without any UI framework.app/: macOS app, Tauri 2 shell (app/src-tauri) + React UI (app/src).extension/: browser extension for Chromium browsers, Firefox and Safari (TypeScript).safari/: Xcode project for "Keyorra for Safari.app", which carries the extension into Safari.Touch ID needs a signed build (app/scripts/sign.sh): the keychain item that holds the wrapped
account key only opens for the app's stable team signature. Dev builds (pnpm tauri dev) are
signed ad hoc and keep their own item. Turn it on in Settings → Touch ID.
cd extension && pnpm install && pnpm test && pnpm build # dist/chromium, dist/firefox, dist/safari
Load extension/dist/chromium unpacked (extension id kaaofpbpmnghapcafbbhjflonijdijbj) or
extension/dist/firefox/manifest.json as a temporary add-on, then pair as described above.
Safari loads web extensions only from inside a Mac app, so the extension ships in
"Keyorra for Safari.app" (safari/). Its app extension relays each message to the Keyorra
app's socket and starts Keyorra if it isn't running; no host manifest is involved.
safari/build.sh # builds extension/dist/safari and the app, installs it to /Applications
KEYORRA_TEAM=ABCDE12345 safari/build.sh # same, signed with another Apple Developer team
The build is signed with the team in safari/Signing.xcconfig (a free Apple ID's Personal Team
works; sign in once in Xcode → Settings → Accounts). Without any team, sign ad hoc and enable
Develop → Allow Unsigned Extensions in Safari after every restart. Reinstalling "Keyorra for
Safari" gives the extension new storage, so pair again; restarting Safari keeps the pairing.
The app extension is sandboxed. Its one exception
(safari/Keyorra for Safari Extension/Extension.entitlements) allows connecting to the app's
socket and nothing else; safari/check/sandbox-check.sh checks it against the running app.
Bug reports and ideas are welcome in Issues. See CONTRIBUTING.md.
Keyorra is free software under the GNU General Public License v3.0 or later.