预览版二进制未签名未公证,macOS 可能需手动放行;Homebrew 6.0+ 需先 trust 非官方 tap;源码构建需在 .env 中配置 OAK_GOOGLE_CLIENT_ID 与 OAK_GOOGLE_CLIENT_SECRET;终端建议使用 Nerd Font 以正确显示图标。
oak-keyring
OpenKeyringMIT活跃维护用 Rust 写的本地优先密码管理器,密码只存在自己设备上,通过跨平台同步保持多端一致,还带 TUI 和命令行界面。
A privacy-first, local-first password manager with cross-platform synchronization.
brew tap openkeyring/oak-keyring
brew trust --formula openkeyring/oak-keyring/ok
brew install okREADME 未说明显存或 GPU 要求;构建产物面向 macOS(Apple Silicon 与 Intel)和 Linux(x86_64/ARM64,glibc 2.35+),Windows 暂不支持;Linux 上 mlock 可能需要调高 RLIMIT_MEMLOCK。
本地优先的隐私密码管理器,用全屏终端 TUI 管理密码库
用 Rust 写的本地优先密码管理器,密码只存在自己设备上,通过跨平台同步保持多端一致,还带 TUI 和命令行界面。
核心能力
- 全屏 TUI 键盘操作,侧边栏导航与 Ctrl+K 搜索
- 内置密码生成器,可配置长度与字符集
- 用 BIP-39 恢复词找回密码库访问权
- ok agent 提供 ssh-agent 后端,私钥不出进程
- 支持标签、回收站软删除与导入导出
容易踩的坑
- v0.8.0-preview.3ok v0.8.0-preview.3最新正式版2026-07-17 · 2026-07-17 04:12 UTC
0.8.0-preview.3
- Security: bumped
cmov0.5.3 → 0.5.4 to fix GHSA-3rjw-m598-pq24 — Cmov/CmovEq on aarch64 could produce wrong results when high register bits were set. - Clipboard: added command clipboard fallbacks and hardened clipboard cleanup.
- Internal: enforced a coverage gate in CI, eliminated a parallel-test locale race in the TUI renderer, translated Chinese code comments and instruction docs to English, and documented the Homebrew 6.0 tap-trust step.
⚠️ Preview Release Notice
This is a preview release of ok. Preview releases may change local vault, sync, import, and export formats before a stable release line exists.
macOS Gatekeeper Warning
The macOS artifacts are unsigned and not notarized. On first run you may see:
"ok" cannot be opened because the developer cannot be verified.
From Terminal:
xattr -d com.apple.quarantine okLinux Requirements
Linux builds target glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora, RHEL/Rocky/Alma 9+, Arch, openSUSE). They do not cover Alpine (musl) or older glibc releases such as Debian 11.
ok locks secrets in memory with mlock. Most distributions default to a low RLIMIT_MEMLOCK (often 64 KiB), which can cause vault creation or unlock to fail. Raise it before running ok, for example: ulimit -l unlimited, a /etc/security/limits.conf entry, a systemd LimitMEMLOCK=infinity directive, or setcap cap_ipc_lock=ep. See INSTALL.md for details.
Install
Available targets: aarch64-apple-darwin, x86_64-apple-darwin, x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu.
tar -xzf ok-v0.8.0-preview.3-<target>.tar.gz sudo mv ok-v0.8.0-preview.3-<target>/ok /usr/local/bin/Or install via npm:
npm install -g @openkeyring/okChecksums
a7de873474d35e8a96f9fafb20c16a09e6f18090f5a8a5052a98627ec3709a4e ok-v0.8.0-preview.3-aarch64-apple-darwin.tar.gz 9527bfc52cc09ec7bd7556ac8f6309c82f7f2eca8a71e85746fd7031974d049c ok-v0.8.0-preview.3-aarch64-unknown-linux-gnu.tar.gz 4d17cd0d5d7410901a1b627718b97eb5d89e65d85f024812b7fb7246bd4e80b9 ok-v0.8.0-preview.3-x86_64-apple-darwin.tar.gz a3d52e5222471b2918f2410db94ce825996751c0c963eecde98f31071d6ccae2 ok-v0.8.0-preview.3-x86_64-unknown-linux-gnu.tar.gz
- Security: bumped
- v0.8.0-preview.2ok v0.8.0-preview.22026-06-21 · 2026-06-21 16:14 UTC
查看更新说明
0.8.0-preview.2
- Added Linux x86_64/ARM64 (glibc 2.35+) release builds, distribution, and documentation support: release workflow now builds
x86_64-unknown-linux-gnuandaarch64-unknown-linux-gnutargets; npm ships@openkeyring/ok-linux-x64and@openkeyring/ok-linux-arm64; Homebrew formula adds anon_linuxblock; INSTALL documentsmlock/RLIMIT_MEMLOCKrequirements. - Added first-preview installation, support, contribution, security, and issue-reporting documentation.
- Updated the preview boundary: macOS Apple Silicon/Intel and Linux x86_64/ARM64 (glibc 2.35+) are supported; Alpine (musl) and Windows are not yet.
- Clarified that preview builds are unsigned and not notarized, with best-effort community support and no formal SLA.
⚠️ Preview Release Notice
This is a preview release of ok. Preview releases may change local vault, sync, import, and export formats before a stable release line exists.
macOS Gatekeeper Warning
The macOS artifacts are unsigned and not notarized. On first run you may see:
"ok" cannot be opened because the developer cannot be verified.
From Terminal:
xattr -d com.apple.quarantine okLinux Requirements
Linux builds target glibc 2.35 or newer (Ubuntu 22.04+, Debian 12+, Fedora, RHEL/Rocky/Alma 9+, Arch, openSUSE). They do not cover Alpine (musl) or older glibc releases such as Debian 11.
ok locks secrets in memory with mlock. Most distributions default to a low RLIMIT_MEMLOCK (often 64 KiB), which can cause vault creation or unlock to fail. Raise it before running ok, for example: ulimit -l unlimited, a /etc/security/limits.conf entry, a systemd LimitMEMLOCK=infinity directive, or setcap cap_ipc_lock=ep. See INSTALL.md for details.
Install
Available targets: aarch64-apple-darwin, x86_64-apple-darwin, x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu.
tar -xzf ok-v0.8.0-preview.2-<target>.tar.gz sudo mv ok-v0.8.0-preview.2-<target>/ok /usr/local/bin/Or install via npm:
npm install -g @openkeyring/okChecksums
98a943be3aaede0caa0690e6fd53fc18433d25d2aa78e569229ec4b19cb6d1d1 ok-v0.8.0-preview.2-aarch64-apple-darwin.tar.gz cd298173b9a9ec6d851d53979c74798537e01cb6e3ac5f74556ca94cda1ae180 ok-v0.8.0-preview.2-aarch64-unknown-linux-gnu.tar.gz 4c956dbb1eeae0c9d7ecf67d3408869ad713b4c7e29a14dbe39148b03b746401 ok-v0.8.0-preview.2-x86_64-apple-darwin.tar.gz 1c25701c44238f286f25222f0b6cd2150e0218226fbd1cc8285146590cd1794a ok-v0.8.0-preview.2-x86_64-unknown-linux-gnu.tar.gz
- Added Linux x86_64/ARM64 (glibc 2.35+) release builds, distribution, and documentation support: release workflow now builds
- v0.8.0-preview.1ok v0.8.0-preview.12026-06-01 · 2026-06-01 14:57 UTC
查看更新说明
0.8.0-preview.1
First preview release with new-look TUI theme and broad polish pass.
Features
- New-look TUI theme: Tokyo Night-based visual overhaul across all screens.
- SecureNote credential type: textarea component + SecureNote as a first-class credential; TextArea widget overlay rendering in forms for notes editing.
- Password generator UX: improved standalone and embedded generator interactions, refined generator sizing.
- File logging: structured log output for diagnostics.
- List panel improvements: search restore after navigation, scrollbar, sort fix, leaked password indicator.
- Detail panel improvements: metadata table, layout tuning, improved password detail panel polish.
- Sidebar focus: improved sidebar focus styling, count badge alignment, selected badge styling preserved on navigation.
Fixes
- Sync:
- Hardened cloud restore consistency.
- Fixed private metadata handling.
- Repaired Google Drive OAuth sync setup.
- Fixed sync retry handling.
- Auto-lock: fixed firing during active use with ActivityTracker.
- Main screen:
- Refined main screen layout and interactions.
- Polished main screen visual details.
- Select first list item from sidebar navigation.
- Form & editing:
- Improved form save feedback and sidebar tag input.
- Refined password form interactions, layout, and overall form polish.
- Improved export path editing.
- Refined export and edit interactions.
- Tag management: repaired tag management shortcuts.
- Visual selection: clarified visual selection summary, repaired visual batch tag workflow.
- Detail panel: refined detail actions and timestamp display.
- List panel:
- Widened list panel from 30% to 40% for better readability.
- Vertically centered empty state in list panel.
- Vertically centered the empty detail panel placeholder.
- Improved list pagination and audit scrolling.
- Tightened list timestamp alignment, added right margin to list item timestamps.
- Config screen:
- SaveConfig exempt from vault lock check.
- Config screen handles VaultLocked state.
- List highlight gap fixed.
- Improved config about panel.
- Fixed config generator defaults.
- Change master password screen: polished interactions.
- Trash: corrected trash detail delete action, polished trash list styles.
- Record notes: improved TUI record notes interactions.
- Warning styling: polished TUI warning styles.
- Record field limits: enforced field length limits.
- Password generator: refined generator interactions.
- Unlock screen: polished unlock interactions.
- Help: updated help i18n.
Terminal & Compatibility
- Enabled Kitty keyboard protocol to prevent ESC ambiguity freeze.
- Resolved CI test failure from terminal-size-dependent mouse hit-test.
Build & Distribution
- Refreshed okb-gen lockfile to remove vulnerable JWT dependency.
- Updated integration test snapshots for layout and centering changes.
⚠️ Preview Release Notice
This is a preview release of ok. Preview releases may change local vault, sync, import, and export formats before a stable release line exists.
macOS Gatekeeper Warning
The macOS artifacts are unsigned and not notarized. On first run you may see:
"ok" cannot be opened because the developer cannot be verified.
From Terminal:
xattr -d com.apple.quarantine okInstall
tar -xzf ok-v0.8.0-preview.1-<target>.tar.gz sudo mv ok-v0.8.0-preview.1-<target>/ok /usr/local/bin/Or install via npm:
npm install -g @openkeyring/okChecksums
433ff36fac8f113bc51d1fbaccd0d93088aa42e90149d019e97624d3a71393c2
ok-v0.8.0-preview.1-aarch64-apple-darwin.tar.gzd0ae03714cd9589f256207c3c144f737884adc81a6139340a8ead8619958cd08
ok-v0.8.0-preview.1-x86_64-apple-darwin.tar.gz
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
oak-keyring
English | 简体中文
oak-keyring is a privacy-first, local-first password manager with a keyboard-driven terminal UI.
Many password tools provide scriptable CLIs, but daily vault management also needs browsing, selection, confirmation, recovery, and status feedback. oak-keyring uses a full-screen TUI so those workflows stay interactive, keyboard-driven, and local.
The command-line binary is ok.

Features
- Vault management — browse, create, edit, and delete credentials and secure notes
- Password generator — standalone or embedded in forms, configurable length and character sets
- Keyboard-driven TUI — full-screen interface with sidebar navigation, search, and batch operations
- Tags and trash — organize records with tags; soft-delete with trash and restore
- Import and export — transfer data in and out of the vault
- Vault recovery — recover access with BIP-39 recovery words
- Sync — optional cloud sync via Google Drive (preview)
- Auto-lock — lock the vault after inactivity
- Password health — leaked password indicators and health checks
- macOS — Apple Silicon and Intel builds (preview)
- Linux — x86_64 and ARM64 builds, glibc 2.35+ (preview)
Install
GitHub Release (recommended)
- Download the tarball matching your OS and architecture.
- Verify
checksums.txt. - Unpack and run
ok --version.
Preview builds are unsigned and not notarized. macOS may require manual approval.
Homebrew
brew tap openkeyring/oak-keyring
brew trust --formula openkeyring/oak-keyring/ok
brew install ok
Homebrew 6.0+ requires trusting non-official taps (macOS and Linux). See INSTALL.md for the exact error and alternatives.
npm
npm install -g @openkeyring/ok
ok --version
Source
git clone https://github.com/OpenKeyring/oak-keyring.git
cd oak-keyring
cp .env.example .env
# Edit .env and set OAK_GOOGLE_CLIENT_ID and OAK_GOOGLE_CLIENT_SECRET.
cargo build --release
./target/release/ok --version
Source builds embed Google OAuth2 configuration for sync. Use source builds for development or local inspection, and configure OAuth2 values explicitly.
[!TIP] Recommended: use a Nerd Font in your terminal so icons display correctly.
Quick Start
Start the app:
ok
On first run, create a vault, choose a strong master password, and save the recovery words somewhere safe. If both the master password and recovery words are lost, maintainers cannot recover your vault.
Basic Usage
oak-keyring opens into a full-screen terminal interface. The main workflow is:
- Create or unlock a vault — start
ok, then create a local vault on first run or unlock an existing vault with your master password. - Browse and search records — use the sidebar and record list to move
through credentials, secure notes, tags, and trash. Use
Ctrl+Kto enter search mode, thenEnterto keep the filtered result orEscto cancel. - View and copy secrets — select a record to inspect its details. In the
detail panel, use
cto copy the password field,uto copy the username field, andpto reveal or hide password fields when available. - Create and edit records — use
nto create a new record andeto edit the selected record outside trash. - Generate passwords — open the password generator from the main screen
with
Ctrl+G, or use the generator when it appears inside record forms. - Configure sync — open Config with
Ctrl+P. Google Drive sync is optional and still part of the preview boundary; after it is configured,Ctrl+Rtriggers sync from the main screen. - Import and export — use the TUI import/export flows when moving data into or out of the vault. Treat exported files as sensitive data.
For the current website documentation, see openkeyring.com/en/docs/.
SSH Agent Backend (ok agent)
ok agent runs an ssh-agent backend backed by the SSH keys stored in your
vault. Use it for ssh logins, git over SSH, and any tool that reads
SSH_AUTH_SOCK — the private key never leaves the oak-keyring process, and
your master password never reaches AI tools or scripts.
How it works
- The daemon unlocks your vault once (you type the master password), then listens on a Unix socket.
ssh/git/ AI send sign requests overSSH_AUTH_SOCK; oak-keyring signs in-process and returns only the signature.- Private keys are decrypted per sign request and zeroized immediately — never cached, never written outside the vault.
Prerequisites
- At least one SSH key record in your vault. Create one in the TUI:
new record (
n) → type SSH → paste the public key and the OpenSSH private key (with its passphrase if it has one). - Supported types: ed25519, RSA (SHA-2), ECDSA (nistp256/384/521).
Start the agent
ok agent
It prompts for your master password, then prints the socket path, for example:
SSH_AUTH_SOCK=/run/user/1000/oak-keyring/agent.sock
Use it with ssh and git
In the shell where you run ssh / git, export that path:
export SSH_AUTH_SOCK=/run/user/1000/oak-keyring/agent.sock
ssh-add -l # lists the vault's SSH keys
ssh user@host # authenticates with the vault key — no ~/.ssh key file needed
git push # same mechanism for git over SSH
Tip: start ok agent once per session (or from your shell rc with a fixed
socket path) and export SSH_AUTH_SOCK, so SSH tools find it automatically.
Options
| Flag | Purpose |
|---|---|
--only NAME | Expose only records whose name matches exactly (repeatable). |
--allow REGEX | Also expose records whose name matches the regex (union with --only). |
--idle-lock SECS | Shut down after this many seconds with no successful sign (default: never). |
Run ok agent --help for the full list.
Security model
- Private keys never leave the daemon — only signatures cross the socket.
- No key caching — decrypted key material is zeroized right after each signature.
- Master password isolation — read once via a terminal prompt; it never enters command-line args, shell history, or any AI tool's context.
- Per-sign audit — each successful signature is recorded in the vault
audit log as
SSH sign. - Coexists with the TUI — a separate single-instance lock, so
okandok agentcan run at the same time against the same vault.
Local owner-trust model: any process running as your user can already read your files, so the socket is
0600. The benefit over a plainssh-agentis that your SSH private keys stay encrypted at rest inside the vault and are never written to~/.sshas plaintext files.
Stop the agent
ok agent runs in the foreground. Stop it with Ctrl+C or kill <pid>
(SIGTERM / SIGINT). On shutdown it locks the vault (zeroizes keys) and
removes the socket and pidfile.
Troubleshooting
ssh-add -l: "Could not open a connection" —SSH_AUTH_SOCKisn't exported in this shell, or points at a stale path. Re-export the path the agent printed.ssh-add -llists nothing — no SSH key record in the vault, or all filtered out by--only/--allow.- "another agent is already running" — an
ok agentis already up; stop it first (or remove a stale.agent.lockin the data dir). - Stale socket after a crash —
ok agentclears a leftover socket on the next start; you can also delete it manually. - Linux memory-lock errors — raise
RLIMIT_MEMLOCK(see INSTALL.md).
Community and Support
Welcome to the OpenKeyring community. If you need help, have questions, or want to discuss the project, use the official channels below.
- GitHub Issues — use GitHub Issues for bug reports, installation problems, and feature requests.
- Discord Server — Join OpenKeyring Discord for text chat, quick questions, and community discussion.
Support is community-style and best effort. There is no formal SLA.
Preview Status
oak-keyring is pre-1.0 preview software (v0.8.0-preview.3).
- Current builds target macOS (Apple Silicon and Intel) and Linux (x86_64/ARM64, glibc 2.35+); Windows is not yet available. On Linux,
mlockmay needRLIMIT_MEMLOCKraised (see INSTALL.md). - macOS binaries are unsigned and not notarized.
- Vault data, configuration, and packaging may change before a stable release.
- There is no formal support SLA.
- You are responsible for your master password, recovery words, and backups.
Security and Privacy
oak-keyring is local-first: the vault belongs to the user and is stored locally by default. Normal release builds use a SQLCipher-backed local database. The app uses a master password and recovery words for vault access and recovery.
The preview does not provide a hosted account recovery service. Keep recovery words and backups separate from the device running oak-keyring. Any sync features should be treated within the currently implemented product scope, not as a hosted custody model.
If you download release assets directly, verify checksums before running the binary. Report security issues through SECURITY.md and PRIVACY.md.
Links
- Website Docs — install, usage, shortcuts, security, and preview status
- SECURITY.md — vulnerability reporting and security boundaries
- THREAT_MODEL.md — security assumptions, non-goals, and threat boundaries
- PRIVACY.md — local data handling, optional sync, telemetry, and privacy boundaries
- CONTRIBUTING.md — how to contribute
- CHANGELOG.md — release history
- LICENSE — MIT license