No description
  • Go 60.4%
  • Python 36%
  • Shell 1.8%
  • Makefile 1.7%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
VII86 3dcee08a90
All checks were successful
Flatpak / build_daemon (push) Has been skipped
Flatpak / Flatpak (push) Has been skipped
Go / build (push) Successful in 2m10s
Release / release (push) Successful in 32s
Merge pull request 'TOTP' (#2) from TOTP into main
Reviewed-on: #2
2026-10-01 23:59:22 +02:00
.github feat: ship GUI and daemon as per-OS release bundles 2026-09-08 15:19:20 +02:00
cli Autotype reworked. Supports a per-entry delay for typing. 2026-09-17 13:24:57 +02:00
docs * KeePass-style Auto-Type sequences, stored locally (the vault stays read-only). 2026-09-29 07:51:18 +02:00
gui Clipboard functionality 2026-10-01 23:56:43 +02:00
packaging docs: English README, daemon API, and GUI translations 2026-09-08 23:06:53 +02:00
.gitignore docs: English README, daemon API, and GUI translations 2026-09-08 23:06:53 +02:00
CHANGELOG.md Clipboard functionality 2026-10-01 23:56:43 +02:00
go.mod Update: 2026-09-08 13:30:20 +02:00
go.sum Bump github.com/icza/gox from 0.0.0-20230924165045-adcb03233bb5 to 0.2.0 2024-11-01 19:58:32 +00:00
LICENSE Initial commit 2023-07-17 03:23:26 +02:00
main.go Update: 2026-09-08 13:30:20 +02:00
Makefile Autotype reworked. Supports a per-entry delay for typing. 2026-09-17 13:24:57 +02:00
Readme.de.md * KeePass-style Auto-Type sequences, stored locally (the vault stays read-only). 2026-09-29 07:51:18 +02:00
Readme.md * KeePass-style Auto-Type sequences, stored locally (the vault stays read-only). 2026-09-29 07:51:18 +02:00

PlatinWarden

MIT fork of Goldwarden: a Bitwarden/Vaultwarden client for Linux with system-wide Auto-Type, SSH agent, and biometrics.

Deutsch · Changelog

Goldwarden has been paused since 2025. PlatinWarden keeps the Go daemon and the GTK4 UI, and adds KeePassXC-style Auto-Type.

There is no first-party GUI for macOS or Windows. Those platforms ship the daemon and CLI only. Third parties can build a UI on the daemon API.

Differences from Goldwarden

  • KeePass sequences such as {USERNAME}{TAB}{PASSWORD}{ENTER} (custom field Auto-Type)
  • Window matching via apptitle://WindowTitle and HTTP hosts in the window title (X11)
  • Portal restore token is stored mode 0600 under ~/.config/platinwarden/

Install (Linux)

Requirements: Go 1.22+, GTK4, libadwaita, PyGObject. The GUI needs system Python (/usr/bin/python3), not a venv without gi.

make deps-debian   # prints the apt command
sudo apt install golang-go python3 python3-gi python3-gi-cairo python3-dbus python3-xlib \
  gir1.2-gtk-4.0 gir1.2-adw-1 libgtk-4-1 libadwaita-1-0 xdotool pkg-config

User install (~/.local), including the app menu and autostart:

make install-user
# ~/.local/bin must be on PATH
platinwarden-gui

System-wide (packagers: PREFIX=/usr and DESTDIR=):

sudo make install PREFIX=/usr
sudo make install-polkit          # biometrics; Polkit only reads /usr/share
platinwarden setup desktop        # XDG autostart (GUI in the tray)
platinwarden setup browserbiometrics

PlatinWarden then appears in the application menu. Autostart runs platinwarden-gui --hidden (tray). Daemon only, without GUI:

systemctl --user enable --now platinwarden.service

Do not enable GUI autostart and the systemd unit together — both start the daemon.

Uninstall: make uninstall-user or sudo make uninstall PREFIX=/usr.

Arch: template in packaging/linux/PKGBUILD. Flatpak manifest: .github/de.vii86.platinwarden.yml.

make help lists targets. Without libfido2, Make builds with -tags nofido2. With libfido2: FIDO2=1 make build.

The GTK UI follows the system language (override with PLATINWARDEN_LANG=de or en). German and English ship with the app.

Release bundles

make dist-all writes archives to dist/release/:

  • Linux platinwarden-*-linux-{amd64,arm64}.tar.gz: daemon and GTK GUI. Unpack, then ./bin/platinwarden-gui or ./install.sh into ~/.local.
  • macOS platinwarden-*-macos-{amd64,arm64}.zip: PlatinWarden.app with the daemon. Double-click starts the CLI helper; there is no supported GTK UI.
  • Windows platinwarden-*-windows-{amd64,arm64}.zip: daemon/CLI only.
make dist-all

Windows: platinwarden.exe daemonize, then CLI (vault, logins, ssh).

platinwarden setup (Polkit, desktop, browser biometrics) exists on Linux only.

macOS and Windows

Official UI is Linux/GTK4. macOS and Windows get a working daemon + CLI.

Linux macOS Windows
Daemon / CLI yes yes yes
GTK GUI yes no no
Auto-Type / tray yes no no

To drive the daemon from another app, use the daemon API. That document also lists GUI stacks that fit a third-party macOS or Windows frontend (Wails, Fyne, Tauri, Qt). PlatinWarden will not ship those UIs.

Development without installing

make build
./platinwarden daemonize
cd gui && python3 platinwarden_ui_main.py

The binary must be named platinwarden on PATH, in the repo root, or under /usr/local/bin. GTK Builder XML lives in gui/src/gui/ui/ — blueprint-compiler is optional (make gui).

On first start you must set a server URL (Bitwarden or Vaultwarden, without /api). Known servers and usernames are stored; the app reconnects to the last used server and can switch under Switch server.

Auto-Type

Bind a desktop hotkey:

dbus-send --type=method_call --dest=de.vii86.platinwarden.autofill \
  /de/vii86/platinwarden de.vii86.platinwarden.Autofill.autofill

Store a sequence on an entry (CLI, or Ctrl+E in Quick Access):

platinwarden logins set-autotype --uuid UUID \
  --sequence '{USERNAME}{TAB}{PASSWORD}{ENTER}' \
  --window 'Firefox' \
  --delay-ms 80

Placeholders: {USERNAME}, {PASSWORD}, {TOTP}, {TAB}, {ENTER}, {DELAY=ms}. Per-login key delay defaults to the global setting (40 ms). Auto-Type types keystrokes: docs/autotype.md. The in-app guide (hamburger menu → Auto-Type sequences) lists KeePass special keys.

Wayland uses the XDG RemoteDesktop portal (GNOME/KDE). X11 uses XTest.

SSH agent socket (native install):

export SSH_AUTH_SOCK=$HOME/.platinwarden-ssh-agent.sock

How this code is written

Most of the programming in this repository is done by an AI coding agent working in Cursor. Kilian Krockauer leads the project: he sets the direction, reviews the changes, and tests them on a real Linux desktop. That is the current split of work. Later parts of PlatinWarden may again be written by hand.

Provenance

Original Goldwarden copyright: Bernd Schoolmann (Quexten), MIT. See LICENSE.