---
Type: desktop-application
ID: com.github.paolostivanin.OTPClient.desktop
Package: otpclient
ProjectLicense: GPL-3.0+
Name:
C: OTPClient
Summary:
C: Application for managing TOTP/HOTP tokens with built-in encryption
Description:
C: >-
<p>Highly secure and easy to use OTP client written in C/GTK3 that supports both TOTP and HOTP and has the following features:</p>
<ul>
<li>integration with the OS' secret service provider via libsecret</li>
<li>support both TOTP and HOTP</li>
<li>support setting custom digits (between 4 and 10 inclusive)</li>
<li>support setting a custom period (between 10 and 120 seconds inclusive)</li>
<li>support SHA1, SHA256 and SHA512 algorithms</li>
<li>support for Steam codes</li>
<li>import and export encrypted/plain andOTP backup</li>
<li>import and export encrypted/plain Aegis backup</li>
<li>import and export plain FreeOTPPlus backup (key URI format only)</li>
<li>import of Google's migration QR codes</li>
<li>local database is encrypted using AES256-GCM (PBKDF2 with SHA512 and 100k iterations) and, while decrypted, it's stored in a
secure memory area allocated by GCrypt.</li>
</ul>
Developer:
name:
C: Paolo Stivanin
Categories:
- System
- Security
Keywords:
C:
- otp
- totp
- hotp
- "2fa"
- "2factor"
- "2fa-client"
- "2step"
- twostep
Url:
homepage: https://github.com/paolostivanin/OTPClient
bugtracker: https://github.com/paolostivanin/OTPClient/issues
Icon:
cached:
- name: otpclient_com.github.paolostivanin.OTPClient.png
width: 48
height: 48
- name: otpclient_com.github.paolostivanin.OTPClient.png
width: 64
height: 64
- name: otpclient_com.github.paolostivanin.OTPClient.png
width: 128
height: 128
remote:
- url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/icons/128x128/otpclient_com.github.paolostivanin.OTPClient.png
width: 128
height: 128
stock: com.github.paolostivanin.OTPClient
Launchable:
desktop-id:
- com.github.paolostivanin.OTPClient.desktop
Provides:
binaries:
- otpclient
Screenshots:
- default: true
caption:
C: Empty main window
thumbnails:
- url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-1_224x263@1.png
width: 224
height: 263
source-image:
url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-1_orig.png
width: 501
height: 590
- caption:
C: Add menu
thumbnails:
- url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-2_224x263@1.png
width: 224
height: 263
source-image:
url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-2_orig.png
width: 501
height: 590
- caption:
C: General menu
thumbnails:
- url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-3_224x263@1.png
width: 224
height: 263
source-image:
url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-3_orig.png
width: 501
height: 590
- caption:
C: Settings menu
thumbnails:
- url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-4_224x257@1.png
width: 224
height: 257
source-image:
url: com/github/paolostivanin.OTPClient.desktop/c26d8a5dcd1935218b27a04e2c8abc5d/screenshots/image-4_orig.png
width: 352
height: 405
Releases:
- version: "4.4.1"
type: stable
unix-timestamp: 1772496000
description:
C: >-
<p>OTPClient 4.4.1 includes the following fixes:</p>
<ul>
<li>FIXED: Ctrl+F search not working due to premature key controller destruction.</li>
<li>FIXED: GTK-CRITICAL assertions on close caused by accessing the tree view after widget destruction.</li>
</ul>
- version: "4.4.0"
type: stable
unix-timestamp: 1772496000
description:
C: >-
<p>OTPClient 4.4.0 includes the following improvements and fixes:</p>
<ul>
<li>ADDED: cross-desktop search provider for GNOME Shell and KDE KRunner.</li>
<li>ADDED: --password-file option for CLI to read password from an external file.</li>
<li>IMPROVED: hardened password input by bypassing libc buffering.</li>
<li>IMPROVED: modernised application and window layer to GTK idioms.</li>
<li>IMPROVED: adapted to libcotp v4 API changes.</li>
<li>FIXED: HOTP counter initialisation off by 10^6x.</li>
<li>FIXED: is_steam flag leak, GError misuse, and multiple memory leaks.</li>
<li>FIXED: memory leaks, NULL dereferences, and security issues across the codebase.</li>
<li>FIXED: multiple bugs in search provider (memory leaks, missing gcrypt init).</li>
<li>FIXED: --password-file error handling and terminal detection.</li>
</ul>
- version: "4.3.1"
type: stable
unix-timestamp: 1769385600
description:
C: >-
<p>OTPClient 4.3.1 includes the following improvements and fixes:</p>
<ul>
<li>IMPROVED: Added configurable colors for the countdown display.</li>
<li>IMPROVED: Added support for selecting the countdown display type (numeric value or cake-style).</li>
<li>IMPROVED: Automatically disable countdown color pickers when displaying countdown as seconds.</li>
<li>IMPROVED: Updated color picker sensitivity dynamically when the display mode changes.</li>
<li>IMPROVED: Persisted tree view column widths across application restarts.</li>
<li>IMPROVED: Renamed the “OTP Value” column to “OTP” and added column IDs for width tracking.</li>
</ul>
- version: "4.3.0"
type: stable
unix-timestamp: 1769126400
description:
C: >-
<p>OTPClient 4.3.0 includes the following improvements and fixes:</p>
<ul>
<li>IMPROVED: Refactored the codebase to follow proper GTK coding patterns and lifecycle management</li>
<li>IMPROVED: Added an explicit shutdown event and hardened cleanup to safely handle partially initialized state</li>
<li>IMPROVED: Prevented GTK critical warnings on close while still persisting window size when available</li>
<li>IMPROVED: Added a main-window empty-state view with a clear call-to-action wired to the manual add flow</li>
<li>IMPROVED: Normalized Add menu labels to title case for improved consistency</li>
<li>IMPROVED: Enhanced treeview readability with resizable and expanding columns, ellipsized text, and monospace OTP formatting</li>
<li>IMPROVED: Replaced the validity text column with a progress bar renderer showing remaining seconds for TOTP entries</li>
<li>IMPROVED: Switched visual indicators from bar-based charts to a filled pie for clearer status representation</li>
<li>IMPROVED: Clarified header bar actions with labeled icon buttons for add and reorder controls</li>
<li>IMPROVED: Grouped export formats into app-specific submenus and clarified password dialog warning text</li>
<li>IMPROVED: Improved CLI UX for clearer and more user-friendly interactions</li>
<li>REMOVED: Legacy option-migration code that is no longer needed</li>
</ul>
ContentRating:
oars-1.0:
violence-cartoon: none
violence-fantasy: none
violence-realistic: none
violence-bloodshed: none
violence-sexual: none
drugs-alcohol: none
drugs-narcotics: none
drugs-tobacco: none
sex-nudity: none
sex-themes: none
language-profanity: none
language-humor: none
language-discrimination: none
social-chat: none
social-info: none
social-audio: none
social-location: none
social-contacts: none
money-purchasing: none
money-gambling: none