{"id":15721664,"url":"https://github.com/paolostivanin/otpclient","last_synced_at":"2026-04-16T15:05:06.305Z","repository":{"id":41397969,"uuid":"41959250","full_name":"paolostivanin/OTPClient","owner":"paolostivanin","description":"Highly secure and easy to use OTP client written in C/GTK3 that supports both TOTP and HOTP","archived":false,"fork":false,"pushed_at":"2023-12-12T09:38:39.000Z","size":1666,"stargazers_count":403,"open_issues_count":7,"forks_count":40,"subscribers_count":9,"default_branch":"master","last_synced_at":"2023-12-12T10:36:03.961Z","etag":null,"topics":["2fa","2fa-client","2fa-security","2factor","c","gnome","gtk3","hotp","otp","totp"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paolostivanin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-09-05T11:59:17.000Z","updated_at":"2024-08-07T09:20:37.477Z","dependencies_parsed_at":"2023-02-16T20:16:00.031Z","dependency_job_id":"985f3357-7f5c-4757-90a6-d0ec0b63ced8","html_url":"https://github.com/paolostivanin/OTPClient","commit_stats":{"total_commits":500,"total_committers":22,"mean_commits":"22.727272727272727","dds":"0.18000000000000005","last_synced_commit":"8bb2620cc3f4ca673031148e6c9c656b9e1b01e4"},"previous_names":[],"tags_count":68,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paolostivanin%2FOTPClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paolostivanin","download_url":"https://codeload.github.com/paolostivanin/OTPClient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247284951,"owners_count":20913704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2fa","2fa-client","2fa-security","2factor","c","gnome","gtk3","hotp","otp","totp"],"created_at":"2024-10-03T22:01:33.388Z","updated_at":"2026-04-16T15:05:06.295Z","avatar_url":"https://github.com/paolostivanin.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OTPClient\nGTK4/libadwaita application for managing TOTP and HOTP two-factor authentication tokens.\n\n## Features\n\n### Supported standards\n- TOTP and HOTP\n- Custom digits (4–10) and custom period (10–120s)\n- SHA1, SHA256, and SHA512 algorithms\n- Steam guard codes ([details](https://github.com/paolostivanin/OTPClient/wiki/Steam-Support))\n\n### Organization\n- Token grouping: assign tokens to groups (e.g. \"Work\", \"Personal\") for quick filtering\n- Header bar dropdown to filter by group, or use `group:\u003cname\u003e` / `#\u003cname\u003e` in the search bar\n- Groups can be assigned via the right-click context menu, the edit dialog, or when adding a token\n- Groups are preserved during Aegis, AuthenticatorPro, and 2FAS import/export\n\n### Import \u0026 Export\n- [Aegis](https://github.com/beemdevelopment/Aegis) (encrypted and plain)\n- [AuthenticatorPro](https://github.com/jamie-mh/AuthenticatorPro) (encrypted and plain)\n- [2FAS](https://github.com/twofas) (encrypted and plain)\n- [FreeOTPPlus](https://github.com/helloworld1/FreeOTPPlus) (plain, key URI format)\n- Google migration QR codes (import only)\n\n### Security\n- Local database encrypted with AES256-GCM\n- Key derived via Argon2id (default: 4 iterations, 128 MiB memory, parallelism 4)\n- Decrypted content held in libgcrypt secure memory, never written to disk\n- Integration with the OS secret service via libsecret\n\n## Installation\nOTPClient is available as a Flatpak and in several distro repositories. See the [packages list](https://github.com/paolostivanin/OTPClient/wiki/Tested-OS-\u0026-Packages#packages) for details.\n\n### Building from source\n1. Install all the libraries listed under [requirements](#requirements).\n2. Clone and build:\n```\ngit clone https://github.com/paolostivanin/OTPClient.git\ncd OTPClient\nmkdir build \u0026\u0026 cd build\ncmake -DCMAKE_INSTALL_PREFIX=/usr ..\nmake\nsudo make install\n```\n\n## Requirements\n| Name                                                | Min Version |\n|-----------------------------------------------------|-------------|\n| GTK                                                 | 4.18.0      |\n| libadwaita                                          | 1.5.0       |\n| Glib                                                | 2.82.0      |\n| jansson                                             | 2.14        |\n| libgcrypt                                           | 1.11.0      |\n| libpng                                              | 1.6.30      |\n| [libcotp](https://github.com/paolostivanin/libcotp) | 4.0.0       |\n| zbar                                                | 0.20        |\n| protobuf-c                                          | 1.4.0       |\n| uuid                                                | 2.34        |\n| libsecret                                           | 0.20        |\n| qrencode                                            | 4.1.0       |\n\n**Note:** The system memlock limit should be at least 64 MB. Lower values may cause issues when handling many tokens, especially when importing third-party backups. See the [wiki](https://github.com/paolostivanin/OTPClient/wiki/Secure-Memory-Limitations) for how to check and adjust this.\n\n## Wiki\nFor screenshots, roadmap, and usage guides, see the [project wiki](https://github.com/paolostivanin/OTPClient/wiki).\n\n## License\nThis software is released under the GPLv3 license. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaolostivanin%2Fotpclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaolostivanin%2Fotpclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaolostivanin%2Fotpclient/lists"}