Open-source project
Yubico/yubioath-flutter avatar
Yubico/yubioath-flutter

Yubico Authenticator for Desktop and Android

Yubico Authenticator for Desktop (Windows, macOS and Linux) and Android

1,396 stars183 forksDartApache-2.0

At a glance

What is it?
Yubico Authenticator is a Flutter application for managing YubiKey credentials and one-time passwords on Windows, macOS, Linux, and Android. It supports OATH, FIDO2, PIV, PIN management, slot-based credentials, and hardware-backed authentication, but Linux setup and some Wayland clipboard behavior add operational constraints.
Who is it for?
Yubico Authenticator fits users who need to inspect and configure a YubiKey across desktop and Android, especially for OATH one-time passwords. It is less suitable for command-line-only workflows or Linux systems without the required SmartCard and device access configuration.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Dart, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Yubico Authenticator manages on a YubiKey

Yubico Authenticator is a companion application for YubiKey hardware. It is aimed at users who want to keep credentials on a portable security key rather than relying only on credentials stored in a phone or desktop application. The README describes support for OATH one-time passwords, WebAuthn and FIDO passkeys, PIV certificates and private keys, Yubico OTP, static passwords, and other credentials stored in YubiKey slots.

The application also provides device management functions. According to the README, it can display a YubiKey serial number, firmware version, and supported capabilities. It can configure PINs, fingerprints, PIN and PUK values, and the management key. It also supports enabled-feature configuration and factory resets of YubiKey data.

That scope is broader than an authenticator-only utility. A user who only needs TOTP codes may find the additional PIV and device-management capabilities unnecessary, while an administrator or advanced user may need them. The application is intended for direct interaction with USB or NFC-enabled YubiKeys. Its value comes from using the hardware key as the credential store and presenting one-time passwords or other authentication material through the application.

Supported platforms and hardware access constraints

The README distinguishes platforms that Yubico builds and tests from platforms that receive best-effort support. The supported Windows configuration is Windows 10 and above on x64. The supported macOS configuration is macOS 13 Ventura and above. Ubuntu 22.04 and above is supported on Linux, while Android 13 and above is supported on Android.

The best-effort matrix includes Windows 10 and above on x64, macOS 10.15 Catalina and above, Ubuntu 20.04 or an equivalent Linux distribution, and Android 7 Nougat and above. Best-effort means the application is expected to work, but development support depends on community testing and full functionality is not guaranteed. This distinction matters when selecting an operating system for a security-sensitive workflow.

The README also says the application works with any USB or NFC-enabled YubiKey. Platform support therefore depends on both the operating system and the connection method available for the key. Linux has additional requirements. The system needs `pcscd` installed and running for Smart Card communication, and the user may need permissions for the YubiKey HID interfaces. The project points to its device permissions documentation for the relevant access settings.

OATH, FIDO2, PIV, and slot credentials in one interface

The application groups several YubiKey credential models behind one interface. OATH one-time passwords are stored securely on the YubiKey and accessed by the application. FIDO support covers passkeys for WebAuthn, while PIV support includes private keys and certificates. The README also lists Yubico OTP, static passwords, and other slot-based credentials.

These capabilities do not represent interchangeable authentication methods. An OATH code is a time-based or event-based one-time password, a FIDO2 credential is used through the WebAuthn flow, and PIV manages certificate-backed identities and related keys. The application can expose all of these areas, but the user must still choose the appropriate credential type for the service being accessed.

Yubico Authenticator therefore functions as a management and access client rather than as a replacement for the protocols implemented by each service. It can inspect and configure the YubiKey, but the README does not claim that every credential can be exported, synchronized, or used without the hardware key. Keeping credentials on a portable key also means that access depends on having the correct key, a compatible connection, and an application platform that supports the required function.

Installing the desktop and Android applications

The README does not provide package-manager commands or a source-build command for end users. It directs users to the Yubico Authenticator downloads page for all supported operating systems. For Android, the project points to the Yubico Authenticator application distribution, while iOS is handled by the separate `yubioath-ios` repository.

A first installation therefore consists of downloading the appropriate build, installing it on the target device, connecting a USB or NFC-enabled YubiKey, and launching Yubico Authenticator. The README does not document the exact menu sequence for pairing a key, reading its serial number, or opening an OATH account. It is also silent about the first-use prompts, account import behavior, and whether credentials can be migrated from another authenticator.

Linux users should complete the system prerequisites before expecting device communication to work. Install and run `pcscd`, then check access to the YubiKey through the HID interfaces if the application cannot communicate with the key. The README links to Yubico's `Device_Permissions.html` documentation for the relevant permissions. After installation, the concrete first check is whether the application recognizes the connected YubiKey and displays its device information.

Linux and Wayland clipboard behavior

Linux support includes an integration constraint that can affect daily use. The README states that `pcscd` must be installed and running for communication over the Smart Card interface. HID interface permissions may also be required. These are system-level concerns, so an application installation can succeed while YubiKey communication still fails if the host is not configured correctly.

Wayland introduces a separate clipboard limitation. In some configurations, copying an OTP to the clipboard works only when Yubico Authenticator has focus. The README explains that a separate binary can receive the payload through standard input by defining the `_YA_TRAY_CLIPBOARD` environment variable. The variable must contain an absolute path to a binary owned by `root:root`, and the binary must not be world-writable.

The README gives this example:

bash
_YA_TRAY_CLIPBOARD=/usr/bin/wl-copy

This setting is security-sensitive because the README warns that OTPs are sent to the configured binary when copied from the system tray. Only a trusted binary should be used. Teams deploying this application on Wayland Linux systems need to decide whether the tray workflow is important enough to require this additional configuration.

Desktop Android packaging and command-line alternatives

The repository contains separate platform directories for `android/`, `linux/`, `macos/`, and `windows/`, which reflects a Flutter application with platform-specific packaging and integrations. It also contains `helper/`, `integration_test/`, `test/`, and platform-specific resources. The README says that developer build and packaging instructions are available in `doc/Development.adoc`, so the repository is not limited to distributing prebuilt applications.

The project is not the recommended command-line interface for YubiKey management. For that use case, the README points to Yubico's separate `yubikey-manager` CLI tool. The difference is concrete: Yubico Authenticator is a desktop and Android graphical application for credential access and device management, while `yubikey-manager` is identified as the command-line option. A user who needs repeatable provisioning, scripting, or terminal-based administration should examine that separate tool rather than expect the GUI application to provide an equivalent CLI workflow.

The application also supports translations through a Crowdin project. This affects the localization workflow but does not change the core credential model. The repository includes localization-related files such as `crowdin.yaml`, `l10n.yaml`, and scripts for updating Android strings, which indicates that localization is part of the development workflow.

Maintenance, licensing, and adoption boundaries

The repository is not archived. Its last push was on 2026-10-12, and the recent release history includes Yubico Authenticator 7.4.2 on 2026-09-09, 7.4.1 on 2026-07-08, and 7.4.0 on 2026-06-16. These dates and releases indicate recent project activity, but the README does not define a support policy for older YubiKeys, operating systems, or credential types.

The project uses the Apache-2.0 license. That license governs the source code and associated distribution terms. The README does not provide legal guidance about deployment, privacy, or the security of particular credentials, so users must review the license and their own operating requirements separately.

Yubico Authenticator is a reasonable choice for a person or team that wants one graphical client for OATH codes, FIDO passkeys, PIV material, and YubiKey configuration across the listed desktop and mobile platforms. It is the wrong choice when the only requirement is terminal automation, because the README directs that use case to `yubikey-manager`. It may also be unsuitable for an older system outside the supported matrix or for a Linux Wayland setup where clipboard integration is essential and cannot use a trusted helper binary. First verify the target OS status, `pcscd` availability, HID permissions, and the specific YubiKey credential types before adoption.

Editorial conclusion

Yubico Authenticator fits users who need to inspect and configure a YubiKey across desktop and Android, especially for OATH one-time passwords. It is less suitable for command-line-only workflows or Linux systems without the required SmartCard and device access configuration. Before adopting it, verify platform support, hardware access permissions, and the exact credential types you need to manage.

Frequently asked questions

Which platforms does Yubico Authenticator support?

The supported platforms are Windows 10 and above on x64, macOS 13 Ventura and above, Ubuntu 22.04 and above, and Android 13 and above. The README also lists older versions as best-effort, including macOS 10.15, Ubuntu 20.04 or an equivalent, and Android 7.

Does Yubico Authenticator work with a YubiKey over NFC?

Yes. The README states that Yubico Authenticator is compatible with any USB or NFC-enabled YubiKey. The host platform still needs the required device access and application support.

What does Yubico Authenticator manage besides one-time passwords?

It can configure PINs, fingerprints, PIN and PUK values, the management key, private keys, certificates, Yubico OTP, static passwords, passkeys, and other slot-based credentials. It also supports device inspection, enabled-feature configuration, and factory resets.

Official sources

  1. License: Apache-2.0
  2. Project website
  3. README
  4. Releases
  5. Yubico/yubioath-flutter on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/yubico-yubioath-flutter.svg)](https://hysenlabs.com/projects/yubico-yubioath-flutter)

Was this useful?