oak-keyring

OpenKeyringMIT活跃维护

用 Rust 写的本地优先密码管理器,密码只存在自己设备上,通过跨平台同步保持多端一致,还带 TUI 和命令行界面。

A privacy-first, local-first password manager with cross-platform synchronization.

v0.8.0-preview.3发布于 2026-07-17 04:12 UTC236star8fork同步于 2026-11-11 12:01 UTC

怎么上手

由 README 提炼,执行前请确认
brew tap openkeyring/oak-keyring
brew trust --formula openkeyring/oak-keyring/ok
brew install ok
硬件要求按 README 说明

README 未说明显存或 GPU 要求;构建产物面向 macOS(Apple Silicon 与 Intel)和 Linux(x86_64/ARM64,glibc 2.35+),Windows 暂不支持;Linux 上 mlock 可能需要调高 RLIMIT_MEMLOCK。

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

本地优先的隐私密码管理器,用全屏终端 TUI 管理密码库

用 Rust 写的本地优先密码管理器,密码只存在自己设备上,通过跨平台同步保持多端一致,还带 TUI 和命令行界面。

核心能力

  • 全屏 TUI 键盘操作,侧边栏导航与 Ctrl+K 搜索
  • 内置密码生成器,可配置长度与字符集
  • 用 BIP-39 恢复词找回密码库访问权
  • ok agent 提供 ssh-agent 后端,私钥不出进程
  • 支持标签、回收站软删除与导入导出

容易踩的坑

预览版二进制未签名未公证,macOS 可能需手动放行;Homebrew 6.0+ 需先 trust 非官方 tap;源码构建需在 .env 中配置 OAK_GOOGLE_CLIENT_ID 与 OAK_GOOGLE_CLIENT_SECRET;终端建议使用 Nerd Font 以正确显示图标。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

3 个版本v0.8.0-preview.3
  1. 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 cmov 0.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 ok
    

    Linux 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/ok
    

    Checksums

    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

  2. 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-gnu and aarch64-unknown-linux-gnu targets; npm ships @openkeyring/ok-linux-x64 and @openkeyring/ok-linux-arm64; Homebrew formula adds an on_linux block; INSTALL documents mlock/RLIMIT_MEMLOCK requirements.
    • 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 ok
    

    Linux 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/ok
    

    Checksums

    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

  3. 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 ok
    

    Install

    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/ok
    

    Checksums

    433ff36fac8f113bc51d1fbaccd0d93088aa42e90149d019e97624d3a71393c2
    ok-v0.8.0-preview.1-aarch64-apple-darwin.tar.gz

    d0ae03714cd9589f256207c3c144f737884adc81a6139340a8ead8619958cd08
    ok-v0.8.0-preview.1-x86_64-apple-darwin.tar.gz

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    oak-keyring

    English | 简体中文

    Release CI npm License

    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.

    TUI vault browser: navigate, edit, and copy credentials with keyboard shortcuts

    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)

    1. Download the tarball matching your OS and architecture.
    2. Verify checksums.txt.
    3. 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:

    1. Create or unlock a vault — start ok, then create a local vault on first run or unlock an existing vault with your master password.
    2. Browse and search records — use the sidebar and record list to move through credentials, secure notes, tags, and trash. Use Ctrl+K to enter search mode, then Enter to keep the filtered result or Esc to cancel.
    3. View and copy secrets — select a record to inspect its details. In the detail panel, use c to copy the password field, u to copy the username field, and p to reveal or hide password fields when available.
    4. Create and edit records — use n to create a new record and e to edit the selected record outside trash.
    5. Generate passwords — open the password generator from the main screen with Ctrl+G, or use the generator when it appears inside record forms.
    6. Configure sync — open Config with Ctrl+P. Google Drive sync is optional and still part of the preview boundary; after it is configured, Ctrl+R triggers sync from the main screen.
    7. 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

    1. The daemon unlocks your vault once (you type the master password), then listens on a Unix socket.
    2. ssh / git / AI send sign requests over SSH_AUTH_SOCK; oak-keyring signs in-process and returns only the signature.
    3. 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

    FlagPurpose
    --only NAMEExpose only records whose name matches exactly (repeatable).
    --allow REGEXAlso expose records whose name matches the regex (union with --only).
    --idle-lock SECSShut 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 ok and ok agent can 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 plain ssh-agent is that your SSH private keys stay encrypted at rest inside the vault and are never written to ~/.ssh as 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_SOCK isn't exported in this shell, or points at a stale path. Re-export the path the agent printed.
    • ssh-add -l lists nothing — no SSH key record in the vault, or all filtered out by --only / --allow.
    • "another agent is already running" — an ok agent is already up; stop it first (or remove a stale .agent.lock in the data dir).
    • Stale socket after a crash — ok agent clears 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, mlock may need RLIMIT_MEMLOCK raised (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