Skip to main content

GTKPass

A GTK4/Libadwaita frontend for password stores on GNOME/Linux, in the spirit of qtpass.

Overview

GTKPass is not a password manager of its own: it stores nothing and owns no format. It is a native GTK4 interface over pluggable backends, one of which reads and writes the standard passwordstore layout, so an existing store stays usable from pass and every other tool that speaks it.

Status

Early, and honest about it. The application runs, reads and edits, and is covered by a test suite. It builds as a Flatpak, an RPM and a systemd-sysext image, and tagging would publish them — but no release has been made, nothing is signed, and there is no repository to install from.

What works today:

  • Configuring several backends at once, each with its own settings
  • Browsing entries as a tree, grouped by backend, folders nested by path
  • Opening an entry: decrypted off the UI thread, and every field it carries shown, whether or not GTKPass knows what the field means
  • Copying a field, with the clipboard cleared again after a timeout
  • Editing an entry and writing it back through its backend
  • Syncing a git-backed store: pull with rebase, then push, off the UI thread

What does not exist yet: adding and deleting entries from the UI, and search — the box is in the sidebar, and nothing is wired to it. See ROADMAP.md.

Backends

Backend Reads Writes Notes
Direct GPG yes yes GPG-encrypted files, handled natively
Pass yes yes delegates to the pass executable
Secret Service yes yes the D-Bus keyring service
Demo yes no invented entries, for trying the UI out

Backends are discovered through the gtkpass.backends entry point group, so one can be shipped separately from this repository.

Requirements

  • Python 3.11+
  • GTK4 4.10+ and Libadwaita 1.4+
  • PyGObject and pycairo, from your distribution rather than from PyPI
  • GnuPG 2.x, for the GPG-backed stores

Running it

There is no release to install. From a checkout:

make sync      # environment, dependencies and the git hooks
make run       # launch against your real password store

To try it out without touching your own passwords:

make run-dev   # a throwaway store of invented entries under .dev/

Or build something installable, none of it released or signed:

make flatpak   # see docs/FLATPAK.md
make rpm       # an RPM for Fedora
make sysext    # a systemd-sysext image for Bluefin, Silverblue and the rest

make help lists the rest, and docs/PACKAGING.md covers the last two. Tagging publishes all of it — see docs/RELEASING.md — but no release has been made yet.

The distribution is called gtk-pass-ng on PyPI: gtkpass there belongs to an unrelated project, and gtk-pass was refused as too similar to it. The command, the package and the RPM all keep this project's name.

Working on it

Read AGENTS.md first — it is short, and the first rule in it matters more than the others: development code must never read your real password store. ARCHITECTURE.md describes how the pieces fit together.

Compatibility

The Direct GPG and Pass backends use the passwordstore format, so a store stays readable by pass, qtpass, and Android Password Store via git sync. Extensions are not supported yet — pass-otp and pass-update are the two intended, and until they land an OTP secret is shown as the text it is rather than turned into a code.

Security

  • Entries are decrypted only when opened, and the plaintext is dropped when the view moves on
  • Decrypted content is kept out of logs, reprs and assertion diffs on purpose
  • The clipboard is cleared after a configurable delay, as damage limitation rather than a guarantee — see SECURITY.md
  • Code running out of a checkout is blocked from opening the real store or the keyring, so development and test runs cannot read real passwords

Documentation

License

MPL-2.0. See LICENSE.

Acknowledgments

Release files for gtk-pass-ng 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gtk-pass-ng 0.2.0
File Size Uploaded
gtk_pass_ng-0.2.0.tar.gz 235.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gtk-pass-ng 0.2.0
File Interpreter ABI Platform
gtk_pass_ng-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 321.2 kB

Release files / gtk_pass_ng-0.2.0.tar.gz

Download URL gtk_pass_ng-0.2.0.tar.gz
Size 235.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1e3feb5254b9efab7cee7da90d7a256c6f0d7b733910d5cb35d05d57e45746b7
BLAKE2b-256 checksum
How to use checksums
b29063af302532eace3d07e7b0e7f4026559c808b465a443050b331c965c0261
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release files / gtk_pass_ng-0.2.0-py3-none-any.whl

Download URL gtk_pass_ng-0.2.0-py3-none-any.whl
Size 85.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c275502557633f38b5a4feb9e46867c7580ac3e044a4f03f584268cdfb5739de
BLAKE2b-256 checksum
How to use checksums
83e070607db3800d36cd467c65808c1d442914e7771dfff94827585b9e401149
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 10, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.1

2 release files

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page