{"id":35159478,"url":"https://github.com/jiacai2050/flauth","last_synced_at":"2026-01-17T15:45:18.056Z","repository":{"id":330857510,"uuid":"1120450512","full_name":"jiacai2050/flauth","owner":"jiacai2050","description":"A privacy-first, fully open-source TOTP authenticator for Android, macOS, Windows, and Linux.","archived":false,"fork":false,"pushed_at":"2026-01-12T11:27:35.000Z","size":5071,"stargazers_count":18,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-12T16:36:29.484Z","etag":null,"topics":["flutter-apps","privacy","totp-authenticator"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jiacai2050.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"custom":["https://liujiacai.net/donate/"]}},"created_at":"2025-12-21T08:36:11.000Z","updated_at":"2026-01-12T11:27:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jiacai2050/flauth","commit_stats":null,"previous_names":["jiacai2050/flauth"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/jiacai2050/flauth","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiacai2050%2Fflauth","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiacai2050%2Fflauth/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiacai2050%2Fflauth/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiacai2050%2Fflauth/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jiacai2050","download_url":"https://codeload.github.com/jiacai2050/flauth/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jiacai2050%2Fflauth/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["flutter-apps","privacy","totp-authenticator"],"created_at":"2025-12-28T17:54:39.709Z","updated_at":"2026-01-17T15:45:18.045Z","avatar_url":"https://github.com/jiacai2050.png","language":"Dart","funding_links":["https://liujiacai.net/donate/"],"categories":[],"sub_categories":[],"readme":"# Flauth 🔐\n\n[中文说明](./README_zh.md)\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"assets/app_icon.svg\" alt=\"Flauth Logo\" width=\"100\"/\u003e\n\u003c/div\u003e\n\n\u003e Flauth is a privacy-first, fully open-source TOTP authenticator for Android, macOS, Windows, and Linux.\n\n**[Documentation \u0026 Tools](https://jiacai2050.github.io/flauth/)**\n\nIt provides a simple and lightweight solution for managing your 2FA (Two-Factor Authentication) tokens.\n\n## 🌟 Why Flauth?\n\n- **100% Open Source**: Transparent and trustable code. Your secrets never leave your device unless you choose to sync them.\n- **Flexible Backups**:\n  - **Security Logic**: Detailed [backup and restore mechanisms](./docs/backup.md).\n  - **Local Backup**: Export/Import accounts as standard text files using system file pickers.\n  - **WebDAV Sync**: Seamlessly sync your data with your private cloud (Nextcloud, Nutstore, etc.) using a robust single-file sync approach with custom path support.\n- **Privacy \u0026 Security**:\n  - **Security Architecture**: Detailed [security implementation and authentication strategies](./docs/auth.md).\n  - **Performance Design**: Detailed [high-frequency UI update optimizations](./docs/perf.md).\n  - **Encrypted Storage**: Secrets are encrypted and stored in the device's secure element (Keychain on iOS/macOS, Keystore on Android).\n  - **Granular Storage**: Implements \"One Key Per Account\" architecture for maximum reliability and scalability.\n- **Modern UI**: Focused on simplicity. Built with Material 3, supporting adaptive light and dark modes.\n\n## 📸 Screenshots\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"metadata/en-US/images/phoneScreenshots/1.png\" alt=\"Account List\" width=\"200\"/\u003e\n\u003cimg src=\"metadata/en-US/images/phoneScreenshots/2.png\" alt=\"WebDAV Backup\" width=\"200\"/\u003e\n\u003cimg src=\"metadata/en-US/images/phoneScreenshots/3.png\" alt=\"Security Settings\" width=\"200\"/\u003e\n\u003c/div\u003e\n\n\n## 📥 Importing from other apps\n\nMigrating to Flauth is easy thanks to its support for standard `otpauth://` URIs:\n\n- **[Importing from Aegis](./docs/import_aegis.md)**: A step-by-step guide to migrate all your accounts from Aegis Authenticator.\n- **Manual Migration**: For other apps, export your accounts as a **plain text list of `otpauth://` URIs** (one per line). Save this file with a `.flauth` extension, then use the **Local File** import feature. If you have plain secret keys, you can use our **[TOTP URI Generator](https://jiacai2050.github.io/flauth/tools/uri-generator/)** to create the QR codes or URI lists.\n  ```text\n  otpauth://totp/GitHub:user?secret=ABC...\u0026issuer=GitHub\n  otpauth://totp/Google:user@gmail.com?secret=XYZ...\u0026issuer=Google\n  ```\n\n## ⬇️ Download\n\nYou can find the latest pre-compiled binaries for all supported platforms (Android APK, macOS, Linux, and Windows) on the **[GitHub Releases](https://github.com/jiacai2050/flauth/releases)** page.\n\n### 💡 Which Android APK should I download?\n- **arm64-v8a**: **(Recommended)** For most modern Android phones (64-bit).\n- **armeabi-v7a**: For older 32-bit Android phones.\n- **x86_64**: For Android emulators on PC.\n- **universal**: **(All-in-one)** Works on any device. Choose this if you're unsure, though the file size is larger.\n\n### ⚡️ For Users in China (Download Acceleration)\nIf you encounter slow download speeds from GitHub, you can use the [gh-proxy](https://gh-proxy.com/) service to accelerate the download.\n\n## 🛠️ Development\n\n### Prerequisites\n- [Flutter SDK](https://docs.flutter.dev/get-started/install) installed.\n- Appropriate development environment (Xcode for iOS/macOS, Android Studio for Android).\n- CocoaPods for iOS/macOS dependencies:\n  ```bash\n  brew install cocoapods\n  ```\n\n### Build \u0026 Run\n\n1. **Clone the repository**:\n   ```bash\n   git clone https://github.com/jiacai2050/flauth.git\n   cd flauth\n   ```\n\n2. **Install dependencies**:\n   ```bash\n   flutter pub get\n   ```\n\n3. **Run the application**:\n   ```bash\n   flutter run\n   ```\n\n4. **Build for release**:\n   ```bash\n   flutter build apk      # Android\n   flutter build macos    # macOS\n   flutter build windows  # Windows\n   flutter build linux    # Linux\n   ```\n\n### Quality \u0026 Standards\n\nRun the following commands to ensure code quality:\n```bash\nflutter analyze        # Static analysis\nflutter test           # Run unit tests\n```\n\n### 🔑 Android Signing\nFor details on how to configure app signing for production, see the [Android Signing Guide](docs/android-sign.md).\n\n## 🏗️ Platform Specifics\n\n### macOS\nTo build on macOS, ensure you have set up a **Development Team** in Xcode for code signing (required for Keychain access in Sandbox). The app includes entitlements for:\n- Network Client (WebDAV)\n- Camera (Scanning)\n- Keychain Sharing (Secure Storage)\n- User-Selected File Access (Local Backup)\n\nRun the following command to remove the quarantine attribute if you encounter issues when launching the app:\n```bash\nxattr -rd com.apple.quarantine /Applications/Flauth.app\n```\n\n## 🛡️ Permissions\n\n- **Camera**: To scan QR codes for adding accounts.\n- **Local Storage/Network**: To backup/restore accounts locally or via WebDAV.\n\n## 📄 License\n\nThis project is licensed under the [MIT License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiacai2050%2Fflauth","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjiacai2050%2Fflauth","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjiacai2050%2Fflauth/lists"}