QtPass

IJHackGPL-3.0活跃维护

给 Unix 标准密码管理器 pass 套上跨平台图形界面,让不习惯命令行的用户也能方便地管理 GPG 加密的密码库。

QtPass is a multi-platform GUI for pass, the standard unix password manager.

v1.8.4发布于 2026-10-26 14:38 UTC1,178star +1 / 7 天174fork同步于 2026-11-10 11:49 UTC

怎么上手

由 README 提炼,执行前请确认
apt-get install qtpass
qmake6 && make && make install
硬件要求按 README 说明

README 未说明显存或 GPU 要求;这是桌面 GUI 程序,运行于 Linux、BSD、macOS 和 Windows,运行时需要 gpg2(GnuPG 2.2+),git 与 pass 为可选。

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

项目说明

由 README 自动翻译提炼

给 Unix 标准密码管理器 pass 套上跨平台图形界面,让密码管理更直观安全

给 Unix 标准密码管理器 pass 套上跨平台图形界面,让不习惯命令行的用户也能方便地管理 GPG 加密的密码库。

核心能力

  • 直接调用 pass、git 与 gpg2 管理密码库
  • 内置 TOTP 一次性密码,无需额外扩展
  • 按文件夹为多接收者分别选择加密用户
  • 支持多配置文件,隔离个人与工作密码
  • 集成 Git 版本控制与智能卡、YubiKey 支持

容易踩的坑

从源码构建需要 Qt 6.8 或更高版本,Qt 5 支持已在 1.8 结束;AppImage 需要 glibc 2.39 以上和 libfuse2,否则要加 --appimage-extract-and-run;macOS 版未公证、Windows 安装包未签名,首次启动需手动绕过隔离或 SmartScreen 提示。

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

最近发版

5 个版本v1.8.4
  1. v2.0.0-rc3QtPass 2.0.0-rc3pre-release2026-11-05 · 2026-11-05 20:12 UTC
    查看更新说明

    Third release candidate for QtPass 2.0. Please test it and report problems in #1812 or as new issues. Translations continue on Weblate; strings added since rc2 have best-effort fillers that Weblate's reviewers can refine.

    Downloads: Windows installer (.exe), macOS (.dmg), Linux AppImage (x86_64, glibc 2.39+), and source archives, each with a detached signature (.asc) and a SLSA build provenance file (.intoto.jsonl). 2.0 needs Qt 6.8 or newer; the 1.8 line (1.8.4) stays available for Qt 5 and older Qt 6.

    Worth testing in particular: "Hide password" with entries that hold a PIN, CVV or API key; clipboard autoclear (it now puts the previous clipboard back); a store inside a larger Git repository or with pass.signcommits set; signed .gpg-id stores with the pass backend; the Windows installer; and, as before, the first-run wizard, profiles, re-encryption and the AppImage on Wayland.

    Changes since rc2

    • "Hide password" hides the other secrets too. Fields named like a PIN, CVV, API key, recovery code or passphrase get the eye button, matched as whole words; the word list is in Settings ▸ Display (#2054, #2092).
    • Autoclear puts the previous clipboard back, as pass -c does (#2090). Text copied out of a shown entry, a revealed password or the password editor now carries the same "secret" hints as the copy buttons and is cleared by autoclear too (#2117).
    • Git stays inside the store, as with pass: a store inside a larger repository (dotfiles in the home folder, say) is no longer committed to and pushed with it unless Settings ▸ Git says so; inherited GIT_DIR and friends are ignored; new folders and .git are private (umask 077 or PASSWORD_STORE_UMASK) (#2057, #2086, #2091, #2102, #2119).
    • Commits are signed when the store asks (pass.signcommits), as pass does; a commit that cannot be signed fails and says the entry is saved but not committed (#2070, #2079).
    • Signed .gpg-id with the pass backend gets the native backend's checks before pass inserts, moves, copies or re-initialises; a signature by a revoked key no longer counts; profiles warn when two stores share a signing key (#2014, #2059, #2084, #2087, #2099, #2100).
    • A shared store cannot exhaust QtPass: decrypted entries stop at 64 MiB, huge entries are shown in bounded parts, .gpg-id, .templates, signatures and key files are read as regular files with size limits (a FIFO or /dev/zero link used to hang the GUI), and names from the store are shown as plain text (#2051, #2060, #2061, #2075).
    • Deleting an entry named with glob characters removes only that entry; a new folder named link/../x can no longer land outside the store; an entry saved into a new folder is encrypted to the nearest folder's recipients, as pass does.
    • Init refuses a folder ou
  2. v1.8.4QtPass 1.8.4最新正式版2026-10-26 · 2026-10-26 14:38 UTC

    Security

    • A copied password carries the KDE password hint on FreeBSD and OpenBSD too, as it did on Linux, so Klipper, CopyQ and cliphist keep it out of their history (ported from #2038, #2039)

    Bugfixes

    • Started from a terminal, QtPass no longer freezes when Git wants HTTPS credentials or SSH a passphrase or host key. They prompted on that terminal, unseen, and every decrypt and save waited behind them; child processes now start without a controlling terminal, so Git and SSH use SSH_ASKPASS/GIT_ASKPASS when set and otherwise fail with an error QtPass shows. Needs Qt 6.7 or newer; older builds behave as before (ported from #2016, #2040)
    • GNOME shows the QtPass icon for its window: StartupWMClass in the desktop entry ties the window to it (ported from #1975, by @carlos22)
  3. v1.8.3QtPass 1.8.32026-10-06 · 2026-10-06 14:37 UTC
    查看更新说明

    Bugfixes

    • Saving an entry no longer loses what was typed when it fails. The password dialog closed as soon as OK was pressed and gpg ran afterwards, so a missing or expired recipient key or an unusable .gpg-id lost the entry. The dialog now stays open until the entry is written, locked and showing "Saving…"; on failure the fields come back with the reason. Cancel, Esc and closing the window still work while it waits, after asking, so a save that never reports (an unanswered PIN prompt) cannot trap you (#1944, ported from #1951)

    Qt 5.15 and Qt 6 are both still supported. 2.0 (Qt 6.8+) is in release-candidate testing (2.0.0-rc2); 1.8 remains the maintenance line.

  4. v2.0.0-rc2QtPass 2.0.0-rc2pre-release2026-10-05 · 2026-10-05 13:42 UTC
    查看更新说明

    Second release candidate for QtPass 2.0. Please test it and report problems in #1812 or as new issues. Translations are in string freeze on Weblate until the final release.

    Downloads: Windows installer (.exe), macOS (.dmg), Linux AppImage (x86_64, glibc 2.39+), and source archives. 2.0 needs Qt 6.8 or newer; the 1.8 line (1.8.3) stays available for Qt 5 and older Qt 6.

    Worth testing in particular: the first-run wizard, switching profiles and initialising a new store, re-encryption, Ctrl+Q / Ctrl+W and the tray, the AppImage on a Wayland desktop, the Windows WSL setup, and macOS.

    Changes since rc1

    • A failed save no longer loses what you typed. The password dialog stays open until the entry is written, showing "Saving…"; if encryption fails (an expired or untrusted recipient key, an unusable .gpg-id), the fields come back with the reason. Cancel, Esc and closing the window still work while it waits, after asking, so a save that never finishes (an unanswered PIN prompt) cannot trap you (#1951, #1965).
    • The Users dialog shows the keys a folder is really encrypted to, including expired, revoked or missing ones, which "Show unusable keys" used to hide, so they can be seen and unticked (#1962).
    • "Unusable public key" is explained, instead of being reported as a missing key (#1961).
    • Enter in a field-name editor confirms the new name instead of saving and closing the whole entry.
    • Re-encryption refuses to run when it cannot check the store for unmerged files after a pull; removing a linked folder reports when git could not record it (#1960).
    • macOS: the app bundle declares itself an application with its full version (#1953), and scripts/release-mac.sh can sign and notarize, opt-in, for a future notarized build (#1943).
    • Builds without warnings on GCC 16; CI back on the newest Qt 6.11 patch.
    • Translations: Weblate updates, and best-effort fillers for the new strings for Weblate's reviewers (#1967).

    Upgrade notes

    • Qt 6.8 or newer. Qt 5 support ended with 1.8; qmake refuses older Qt with a clear message. Packagers building 1.8.x against Qt 5 need the 1.8 branch for that.
    • Ctrl+Q quits. It used to close the window, which with "hide on close" meant hiding to the tray; that is Ctrl+W (File ▸ Close window) now. The window close button and Alt+F4 behave as before.
    • The menu bar is off by default so the window looks as it did. Alt shows it for as long as it is used, so Alt+F and the other mnemonics work; Ctrl+M, Settings ▸ Show menu bar or the tray menu keep it on, and the choice is remembered. On macOS the bar is the system's and always there.
    • Settings moved, stored values did not. Clipboard and panel autoclear are one number each (0 is "Never"), the two template checkboxes are one choice, and "Show menu bar" / "Show process output" are toggles in the Settings menu instead of the settings dialog. Existing configuration files are read and written with the same keys.
    • Generating a GPG key asks for a passphrase. Leaving the fields empty used to produce an unprotected private key silently; now OK waits until a passphrase is typed twice or "No passphrase" is ticked on purpose.
    • A link inside the store is not part of it. A symbolic link or NTFS junction found in the store (a shared repository can carry one) is skipped by re-encryption and search and refused by show, edit, add, move, copy and re-ke
  5. v2.0.0-rc1QtPass 2.0.0-rc1pre-release2026-09-24 · 2026-09-24 21:07 UTC
    查看更新说明

    Release candidate for QtPass 2.0. Please test it and report problems in #1812 or as new issues. Translations are in string freeze on Weblate until the final release.

    Downloads: Windows installer (.exe), macOS (.dmg), Linux AppImage (x86_64, glibc 2.39+), and source archives. 2.0 needs Qt 6.8 or newer; the 1.8 line (1.8.2) stays available for Qt 5 and older Qt 6.

    Worth testing in particular: the first-run wizard, switching profiles and initialising a new store, re-encryption, Ctrl+Q / Ctrl+W and the tray, the AppImage on a Wayland desktop, the Windows WSL setup, and macOS.

    Upgrade notes

    • Qt 6.8 or newer. Qt 5 support ended with 1.8; qmake refuses older Qt with a clear message. Packagers building 1.8.x against Qt 5 need the 1.8 branch for that.
    • Ctrl+Q quits. It used to close the window, which with "hide on close" meant hiding to the tray; that is Ctrl+W (File ▸ Close window) now. The window close button and Alt+F4 behave as before.
    • The menu bar is off by default so the window looks as it did. Alt shows it for as long as it is used, so Alt+F and the other mnemonics work; Ctrl+M, Settings ▸ Show menu bar or the tray menu keep it on, and the choice is remembered. On macOS the bar is the system's and always there.
    • Settings moved, stored values did not. Clipboard and panel autoclear are one number each (0 is "Never"), the two template checkboxes are one choice, and "Show menu bar" / "Show process output" are toggles in the Settings menu instead of the settings dialog. Existing configuration files are read and written with the same keys.
    • Generating a GPG key asks for a passphrase. Leaving the fields empty used to produce an unprotected private key silently; now OK waits until a passphrase is typed twice or "No passphrase" is ticked on purpose.
    • A link inside the store is not part of it. A symbolic link or NTFS junction found in the store (a shared repository can carry one) is skipped by re-encryption and search and refused by show, edit, add, move, copy and re-key, with a message; deleting one removes the link. The configured store root itself may still be a link. See SECURITY.md.
    • Debug output comes from the qtpass logging category in every build: QT_LOGGING_RULES="qtpass.debug=true" turns it on, no debug build needed (see the FAQ). The #ifdef QT_DEBUG tracing is gone.
    • Linux AppImage: new, attached to every release; needs glibc 2.39 or newer (Ubuntu 24.04, Debian 13, Fedora 40). It bundles Qt only and uses the system's pass, gpg and git.
    • Packagers: the AppStream metainfo installs as org.qtpass.QtPass.metainfo.xml (was qtpass.appdata.xml); main/main.pro installs the desktop file, metainfo, icons and man page; the RPM spec follows; the Flatpak manifest drops rename-appdata-file with the 2.0 tag.
    • Still true from 1.8: the macOS .dmg is not signed or notarized (see the macOS page, #1542) and the Windows installer is not code-signed (#1643).

    The full list of changes is in CHANGELOG.md.

用户点评

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

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

    README 原文

    未翻译

    QtPass

    GitHub release Packaging status latest packaged version(s)

    Build and test CodeFactor

    Coverage Status codecov

    FOSSA Status REUSE status OpenSSF Best Practices OpenSSF Scorecard Translation status

    QtPass is a multi-platform GUI for pass, the standard Unix password manager, providing a secure and intuitive way to manage your passwords.

    Available in over 60 languages

    Project site: qtpass.org, with downloads, getting started, FAQ and screenshots.

    Features

    • Using pass or git and gpg2 directly
    • Cross platform: Linux, BSD, macOS and Windows
    • Native widgets and iconography where possible
    • Per-folder user selection for multi-recipient encryption
    • Multiple profiles support
    • Built-in TOTP (One-Time Password) support, no external extension needed
    • Password generation with configurable complexity
    • Content search across decrypted entries (regular expression; opt-in)
    • Git integration for version control
    • Smartcard and USB token support (OpenPGP, YubiKey)
    • Configurable shoulder surfing protection
    • Share submenu: re-encrypt folder, export your public key, add recipients
    • Import GPG keys from file or clipboard without leaving the app
    • Process output panel with command labels, color-coded errors, and auto-scroll
    • Easy onboarding for new users

    How each of these works, from profiles and templates to OTP and Git sync, is described on qtpass.org/advanced.

    Logo based on Heart-padlock by AnonMoos.

    Installation

    Every way to install QtPass, with the current version per platform, is on qtpass.org/downloads; first-time setup of GnuPG and pass is on qtpass.org/getting-started.

    From package

    OpenSUSE & Fedora yum install qtpass dnf install qtpass

    Debian, Ubuntu and derivates like Mint, Kali & Raspbian apt-get install qtpass

    Arch Linux pacman -S qtpass

    Gentoo emerge -atv qtpass

    Sabayon equo install qtpass

    FreeBSD pkg install qtpass

    OpenBSD pkg_add qtpass

    macOS Download the .dmg from the releases page and clear the quarantine flag: xattr -d com.apple.quarantine /Applications/QtPass.app (the Homebrew cask was disabled in September 2026 because the app is not notarized; see the macOS page on qtpass.org and #1542)

    Windows choco install qtpass or winget install IJHack.QtPass (the installer is not code-signed yet, so SmartScreen asks for More info → Run anyway on first start; signing is being set up, see the code signing policy)

    Linux (AppImage) Download QtPass-<version>-x86_64.AppImage from the releases page, then: chmod +x QtPass-*.AppImage && ./QtPass-*.AppImage It bundles Qt only, and uses the pass, gpg2, git and gpg-agent already installed on your system, so your existing ~/.password-store, pinentry and smartcard all keep working, with no sandbox permissions to grant. Requires glibc 2.39 or newer (Ubuntu 24.04+, Debian 13+, Fedora 40+) and libfuse2 (or run it with --appimage-extract-and-run on systems without it).

    Packaging status Translation status

    From Source

    Dependencies
    • QtPass requires Qt 6.8 or later (build with qmake6); Qt 5 support ended with QtPass 1.8
    • The Linguist package is required to compile translations
    • For fallback icons, the SVG library is required

    Runtime dependencies:

    • gpg2 (GnuPG 2.2+) - required
    • git - optional, for repository sync
    • pass (1.7+) - optional, can use native GPG/Git

    Your GPG must be configured with a graphical pinentry when applicable. Same goes for Git authentication. On macOS, pinentry-mac from Homebrew works best (gpgtools also works).

    On most Unix systems all you need is:

    qmake6 && make && make install
    

    Windows

    See Windows.md for Windows-specific installation and build instructions.

    Using profiles

    Profiles allow grouping passwords. Each profile might use a different Git repository and/or different gpg key. Each profile also can be associated with a GPG key to sign and verify the .gpg-id file for integrity. A typical use case is to separate personal and work passwords.

    Hint Instead of using different git repositories for the various profiles passwords could be synchronized with different branches from the same repository. Just clone the repository into the profile folders and checkout the related branch.

    Example

    The following commands set up two profile folders:

    cd ~/.password-store/
    # Replace these with your own repositories (HTTPS or SSH).
    PERSONAL_REPO_URL="<your-personal-password-repository-url>"
    WORK_REPO_URL="<your-work-password-repository-url>"
    
    # Examples:
    # git clone https://git.example.com/you/qtpass-personal.git personal
    # git clone [email protected]:you/qtpass-work.git work
    
    git clone "${PERSONAL_REPO_URL}" personal && echo "personal/" >> .gitignore
    git clone "${WORK_REPO_URL}" work && echo "work/" >> .gitignore
    pass init -p personal [personal GnuPG-ID] && git -C personal push
    pass init -p work [work GnuPG-ID] && git -C work push
    

    Note:

    • Replace PERSONAL_REPO_URL and WORK_REPO_URL with repositories you own and control.
    • Replace [personal GnuPG-ID] and [work GnuPG-ID] with the ID from the related GnuPG key.
    • The parts echo ... >> .gitignore are just needed in case there is a Git repository present in the base directory.

    Once the repositories and GnuPG-ID's have been defined the profiles can be set up in QtPass.

    Links of interest

    Testing

    This is done with make check

    Codecoverage can be done with make lcov, make gcov, make coveralls and/or make codecov.

    Be sure to first run: make distclean && qmake6 CONFIG+=coverage qtpass.pro

    Security considerations

    The threat model and how to report a vulnerability are on qtpass.org/security and in SECURITY.md.

    Using this program will not magically keep your passwords secure against compromised computers even if you use it in combination with a smartcard.

    It does protect future and changed passwords though against anyone with access to your password store only but not your keys. Used with a smartcard it also protects against anyone just monitoring/copying all files/keystrokes on that machine and such an attacker would only gain access to the passwords you actually use. Once you plug in your smartcard and enter your PIN (or due to CVE-2015-3298 even without your PIN) all your passwords available to the machine can be decrypted by it, if there is malicious software targeted specifically against it installed (or at least one that knows how to use a smartcard).

    To get better protection when using a smartcard even against a targeted attack I can think of at least two options:

    • The smartcard must require explicit confirmation for each decryption operation. Or if it just provides a counter for decrypted data you could at least notice an attack afterwards, though at quite some effort on your part.
    • Use a different smartcard for each (group of) key.

    Known issues

    • Filtering (searching) breaks the tree/model sometimes
    • Starting without a correctly set password-store folder gives weird results in the tree view

    Roadmap

    What comes next, from the 2.0 release to CMake and signed releases, is in ROADMAP.md.

    Further reading

    FAQ, Contributing and Code of Conduct documentation. Changelog and Roadmap

    On qtpass.org: getting started, features in depth, FAQ, screenshots, security, privacy, code signing policy and changelog.

    Source code Issue queue

    AI assistance Parts of QtPass are developed with AI coding assistants (mainly Claude Code, earlier also OpenCode), and AI reviewers (CodeRabbit, GitHub Copilot) comment on pull requests. Commits made with an assistant carry a Co-Authored-By: trailer naming the model (or the pull request says so), so the history shows which changes were AI-assisted. Every change is reviewed, built and tested by a human maintainer before it is merged, and the maintainers take responsibility for it. Some translations are machine-drafted; they stay marked unfinished in the .ts files until a native speaker confirms them on Weblate. The application itself contains no AI features and talks to no AI service.

    License

    This repository follows the REUSE Specification v3.2. Please see LICENSES/, REUSE.toml and the individual *.license files (if any) for copyright and license information.

    GNU General Public License v3.0

    GNU GPL v3.0

    View official GNU site

    View the Open Source Initiative site