Secrets is a modern desktop application that provides a clean and user-friendly graphical interface for managing your passwords with pass, the standard unix password manager. It leverages the power and security of pass, GPG, and Git, wrapped in a beautiful GTK4/Libadwaita UI.
- Streamlined preferences - Temporarily disabled security and search tabs to remove non-functional options
- Automatic import refresh - Imported passwords now appear immediately without manual refresh
- Enhanced import workflow - Better user feedback during JSON and CSV import operations
- Cleaner interface - Focused preferences on working features only for better user experience
- Improved usability - Removed confusing placeholder functionality from settings
- Instant UI updates - Password list refreshes automatically after successful imports
- Better workflow - No more manual refresh needed to see imported passwords
- Conditional refresh - Only triggers when passwords are actually imported
- Enhanced feedback - Clear success messages with import counts
- Hierarchical folder organization with expandable tree view
- Add, edit, delete, and move password entries
- Structured password fields: username, password, URL, notes, TOTP
- TOTP support with live 6-digit codes and countdown timers
- Recovery codes management for 2FA backup
- Password generator with customizable options and strength indicator
- Copy to clipboard with automatic clearing for security
- Full-text search across all password content
- Real-time filtering as you type
- Keyboard shortcuts for efficient navigation
- Quick access to frequently used passwords
- GTK4/Libadwaita design following GNOME HIG
- Adaptive layout with split-view navigation
- Dark/light theme support with system integration
- Toast notifications for user feedback
- Responsive design that works on different screen sizes
- Advanced Git integration with platform support and repository management
- Intelligent setup wizard with automatic GPG/pass detection and guided configuration
- Enhanced setup experience with improved completion flow and verified icon
- Flatpak compatibility with enhanced GPG environment setup
- Import/export functionality (JSON, CSV formats)
- Comprehensive preferences with security settings
- Automatic clipboard clearing for enhanced security
- Internationalization support for multiple languages
- Multi-platform support: GitHub, GitLab, Codeberg, and custom Git servers
- Repository setup wizard with guided configuration
- Automatic repository detection and status monitoring
- Real-time Git status with ahead/behind indicators
- Auto-commit and auto-push options for seamless synchronization
- Repository management through preferences with setup and status dialogs
- Git history viewer with commit details and author information
- Conflict detection and branch management
- Platform API integration for repository validation and information
- Conditional UI elements - Git buttons only appear when Git is properly configured
- Automatic idle locking - Lock application after configurable inactivity period
- Master password timeout - Require re-entering GPG passphrase periodically
- Failed attempt protection - Lockout after too many failed unlock attempts
- Memory clearing - Clear sensitive data from memory when locked
- Screen lock integration - Lock application when system screen locks
- Configurable timeouts - Auto-hide passwords and clear clipboard
- Export security - Require master password for data export operations
- Session management - Comprehensive security controls in preferences
- Intelligent dependency detection - Automatically detects installed components (pass, GPG keys)
- Guided GPG key creation - Step-by-step GPG key generation with form validation
- Password store initialization - Automatic password store setup with proper GPG key association
- Cross-session compatibility - Handles GPG key detection even when app is reopened
- Enhanced completion flow - Improved setup completion with custom verified icon
- User-friendly experience - Setup wizard stays open after completion, only closes on cancellation
Ctrl+N- Add new passwordCtrl+E- Edit passwordCtrl+C- Copy passwordCtrl+Shift+C- Copy usernameCtrl+F- Focus searchCtrl+G- Generate passwordCtrl+Shift+P- Git pullCtrl+Shift+U- Git pushCtrl+Shift+S- Git status dialogCtrl+Shift+G- Git setup dialogCtrl+,- PreferencesF5- Refresh
Main application window with hierarchical password organization
Password details view with TOTP support and structured fields
Add new password dialog with comprehensive field options
Edit password dialog with comprehensive field options
Git integration settings with multi-platform support
Advanced security settings with session management
General application preferences
Git status and repository information
Keyboard shortcuts help dialog
About dialog with application information
Secrets provides comprehensive security features to protect your sensitive data:
- Idle Lock: Automatically lock the application after a configurable period of inactivity (1-120 minutes)
- Screen Lock Integration: Lock application when the system screen locks
- Master Password Timeout: Require re-entering GPG passphrase after a configurable period (15-480 minutes, or never)
- Memory Clearing: Clear sensitive data from memory when the application is locked
- Failed Attempt Lockout: Lock out users after too many failed unlock attempts (1-10 attempts)
- Lockout Duration: Configurable lockout period after failed attempts (1-60 minutes)
- Secure Unlock Dialog: Password entry with attempt tracking and countdown display
- Auto-hide Passwords: Automatically hide visible passwords after timeout (5-300 seconds)
- Clipboard Security: Automatically clear clipboard after copying sensitive data (10-300 seconds)
- Export Security: Require master password confirmation for data export operations
- Delete Confirmation: Require confirmation before deleting password entries
All security features are configurable through Preferences โ Security:
- Password Display: Auto-hide settings and timeouts
- Clipboard: Auto-clear timeout configuration
- Session Security: Idle lock, screen lock, and master password timeouts
- Advanced Security: Memory clearing, export protection, and failed attempt settings
- Defense in Depth: Multiple layers of protection (UI lock + memory clearing + timeouts)
- User Control: Balance security vs convenience with configurable settings
- Automatic Protection: Passive security that doesn't require user intervention
- Visual Feedback: Clear indication of security status and remaining time
Secrets provides comprehensive Git integration for synchronizing your password store across devices and platforms.
- GitHub - Full API integration with repository validation
- GitLab - Complete GitLab.com and self-hosted support
- Codeberg - Gitea-based platform integration
- Custom Git Servers - Support for any Git repository
- Repository Setup Wizard - Guided setup for new or existing repositories
- Real-time Status Monitoring - Live Git status in the header bar
- Automatic Operations - Auto-pull on startup, auto-push on changes, auto-commit
- Visual Indicators - Git status with ahead/behind commit counts
- Repository Management - Complete repository configuration through preferences
- History Viewer - Browse commit history with author and date information
- Conflict Detection - Visual indication of repository conflicts
- Platform Integration - Repository validation using platform APIs
Available in Preferences โ Git:
- Auto-pull on startup - Automatically pull changes when application starts
- Auto-push on changes - Automatically push changes after modifications
- Show Git status - Display Git status information in the UI
- Git timeout - Timeout for Git operations (5-120 seconds)
- Auto-commit on changes - Automatically commit changes before push/pull
- Show Git notifications - Display toast notifications for Git operations
- Check remote on startup - Verify remote repository status on application start
- Custom commit messages - Configure default commit message template
- Repository Setup - Configure Git repository and remote connections
- Repository Status - View detailed Git status and commit history
- Platform Integration - Connect to GitHub, GitLab, or custom Git servers
- Remote Configuration - Manage remote URLs and authentication
- Setup: Use the Git setup wizard to initialize or connect to a repository
- Monitor: Git status indicator shows current repository state
- Sync: Manual or automatic push/pull operations keep data synchronized
- History: View commit history and repository information
- Manage: Configure Git settings through comprehensive preferences
- GPG Integration - All Git operations respect GPG configuration
- Secure Authentication - Support for SSH keys and HTTPS authentication
- Token Management - Secure storage of platform access tokens
- Conflict Resolution - Safe handling of merge conflicts and repository issues
Secrets has full internationalization support with automatic locale detection and fallback to English when translations are unavailable.
- ๐ง๐ท Portuguese (Brazil) - pt_BR
โ ๏ธ Partial (42% coverage) - ๐ต๐น Portuguese (Portugal) - pt_PT
โ ๏ธ Partial (37% coverage) - ๐บ๐ธ English (United States) - en_US โ Complete (source)
- ๐ฌ๐ง English (United Kingdom) - en_GB โ Complete (source)
- ๐ช๐ธ Spanish - es ๐ Good (79% coverage)
- ๐ฎ๐ช Irish (Gaeilge) - ga ๐ Good (79% coverage)
- Automatic locale detection - Detects system locale and loads appropriate translations
- Fallback support - Falls back to English if translation not available
- Development support - Works in both development and installed environments
- UI integration - All user-facing strings in dialogs, menus, and interface are translatable
- UTF-8 encoding - Proper Unicode support for all languages
# Test specific locale
LANGUAGE=pt_BR python3 -m secrets.main
# Test Spanish interface
LANGUAGE=es ./run-dev.sh- Add language code to
po/LINGUAS - Create new .po file:
msginit --input=po/secrets.pot --locale=LANG --output=po/LANG.po - Translate strings in the .po file
- Rebuild:
meson compile -C build
po/
โโโ LINGUAS # List of supported languages
โโโ secrets.pot # Translation template
โโโ pt_BR.po # Portuguese (Brazil) translations
โโโ pt_PT.po # Portuguese (Portugal) translations
โโโ en_GB.po # English (UK) translations
โโโ en_US.po # English (US) translations
โโโ es.po # Spanish translations
โโโ ga.po # Irish translations
โโโ meson.build # Build configuration
- Language: Python 3.8+
- UI Framework: GTK4 & Libadwaita with modern design patterns
- Build System: Meson & Ninja with comprehensive build automation
- Dependencies: PyGObject, pyotp, requests
- Backend:
pass, GnuPG, Git with intelligent integration - Packaging: Flatpak with enhanced GPG environment and setup wizard
- Architecture: MVC pattern with specialized managers and service layers
Coming soon - the application will be available on Flathub once submitted and approved.
flatpak install flathub io.github.tobagin.secrets
flatpak run io.github.tobagin.secrets- Python 3.8+
- GTK4 and Libadwaita development libraries
- Meson (>= 0.64.0) and Ninja
pass,git, andgpginstalled and configured
# Clone the repository
git clone https://github.com/tobagin/Secrets.git
cd Secrets
# Build with meson
meson setup build
meson compile -C build
# Run for development
./run-dev.sh./run-dev.sh # Recommended: run with meson devenv
./run-dev.sh --direct # Run directly without meson
./build/secrets-dev # Run generated script
python3 -m secrets.main # Run module directly# Install flatpak-builder
sudo dnf install flatpak-builder # Fedora
sudo apt install flatpak-builder # Ubuntu/Debian
# Build and install
flatpak-builder --user --install --force-clean build io.github.tobagin.secrets.yml
# Run the Flatpak
flatpak run io.github.tobagin.secretsThe Flatpak version includes enhanced GPG environment setup for proper password decryption in sandboxed environments:
- Automatic GPG environment configuration - Sets up proper
GPG_TTY,GNUPGHOME, and agent settings - GUI pinentry integration - Includes pinentry-gtk2 for password prompts in the GUI
- Robust error handling - Graceful fallbacks when GPG components are missing
- Seamless operation - No manual configuration required for GPG operations
# Build and install system-wide
meson setup build --prefix=/usr
meson compile -C build
sudo meson install -C build
# Run the installed application
io.github.tobagin.secretssrc/
โโโ secrets/ # Main application package
โ โโโ controllers/ # UI controllers and state management
โ โโโ managers/ # Business logic managers
โ โโโ services/ # Core services (password, git)
โ โโโ setup_wizard/ # Setup wizard components
โ โโโ ui/ # UI components and dialogs
โ โ โโโ components/ # Reusable UI components
โ โ โโโ dialogs/ # Dialog windows
โ โ โโโ widgets/ # Custom widgets
โ โโโ utils/ # Utility functions
data/
โโโ ui/ # UI template files
โโโ icons/ # Application icons
โโโ screenshots/ # Application screenshots
po/ # Translation files
- ๐ Git Integration - Full Git synchronization with remote repositories
- Git push/pull operations with conflict resolution
- Repository setup and management
- Commit history and status tracking
- Platform integration (GitHub, GitLab, etc.)
- ๐ Advanced Analytics - Password security insights and statistics
- ๐ Enhanced Security - Additional encryption options and security features
- ๐ Cloud Sync - Alternative synchronization methods beyond Git
- ๐ฑ Mobile Companion - Mobile app for secure password access
- ๐ Browser Extension - Direct browser integration for autofill
- ๐ข Team Features - Shared password stores for organizations
- ๐ Advanced Import/Export - Support for more password managers
- ๐จ Theming System - Custom themes and appearance options
- Performance optimizations for large password stores
- Enhanced search capabilities with advanced filters
- Improved accessibility features
- Better error handling and user feedback
This project is licensed under the GPL-3.0-or-later License - see the LICENSE file for details.