authmate-cli
v1.2.0
Published
A beautiful CLI tool for automatic login management with browser automation
Maintainers
Readme
🔐 AuthMate CLI
A beautiful CLI tool for automatic login management with backup & restore capabilities. Store your credentials securely and login to your favorite platforms with just a few keystrokes!
✨ Features
- 🎨 Beautiful CLI Interface - Colorful and intuitive command-line experience
- 🔒 Secure Storage - SQLite database to store credentials locally
- 🚀 Automatic Login - Browser automation with ultra-fast login mode
- 📋 Credential Management - Add, edit, delete, and list your saved credentials
- 💾 Backup & Restore - Export and import your credentials safely
- 🧭 Navigation Controls - Cancel/back options in all interactive operations
- 🌐 Universal Support - Works with most login forms on the web
- ⚡ Speed Optimized - Fast typing, reduced delays, and optimized timing
- 🌍 Global Access - Install globally via npm for system-wide access
🚀 Installation
Option 1: Install from NPM (Recommended)
# Install globally from npm
npm install -g authmate-cli
# Use anywhere in your system
authmateOption 2: Local Development Setup
Clone the repository:
git clone <your-repo-url> cd AuthMateInstall dependencies:
npm installMake it globally accessible:
npm install -g .
📖 Usage
Interactive Mode (Recommended)
Simply run the application to enter interactive mode:
authmateCommand Line Interface
You can also use specific commands:
# Start interactive mode
authmate start
# Add a new credential
authmate add
# List all credentials
authmate list
# Login to a specific platform
authmate login "Platform Name"
# Backup credentials
authmate backup [filename]
# Restore credentials
authmate restore <filename>💾 Backup & Restore Features
📤 Backup Your Credentials
Interactive Mode:
- Select "💾 Backup Credentials" from the main menu
Command Line:
# Create backup with auto-generated filename
authmate backup
# Create backup with custom filename
authmate backup my-credentials.json
# Example output: authmate-backup-2024-01-15.json📥 Restore Your Credentials
Interactive Mode:
- Select "📥 Restore Credentials" from the main menu
Command Line:
# Restore from backup file
authmate restore my-credentials.jsonBackup Features:
- ✅ JSON Format - Human-readable backup files
- ✅ Auto-naming - Automatic date-based filenames
- ✅ Conflict Resolution - Smart handling of duplicate credentials
- ✅ Validation - File format verification before restore
- ✅ Progress Feedback - Detailed import/skip statistics
🔄 Cross-Device Sync
# On Device A - Create backup
authmate backup my-setup
# Transfer file to Device B
# On Device B - Restore backup
authmate restore my-setup.json🎯 How It Works
Add Credentials: Store your login information securely
- Platform name (e.g., Gmail, GitHub, Facebook)
- Login URL
- Username/Email
- Password
Select & Login: Choose a platform from your saved list
- Browser opens automatically
- Navigates to the login page
- Fills in your credentials with optimized speed
- Attempts multiple submission strategies
- Ultra-fast mode for instant login
Manual Verification: Browser stays open for you to verify and continue
🔧 Features Overview
🔐 Add New Credential
- Input validation for all fields
- URL formatting and validation
- Duplicate detection with overwrite option
- Secure password input (masked)
🚀 Login to Platform
- Interactive platform selection
- Automatic browser launch
- Smart form field detection
- Multiple login button detection strategies
- Ultra-fast login mode (10ms typing speed)
- Optimized auto-submit with multiple fallback methods
- Graceful error handling with detailed logging
📋 List All Credentials
- Beautiful formatted display
- Shows platform name, URL, and username
- Organized and easy to read
✏️ Edit Credential
- Select any saved credential
- Update any field
- Keep existing password option
- Input validation
🗑️ Delete Credential
- Safe deletion with confirmation
- Select from list interface
- Prevents accidental deletions
💾 Backup Management
- Export: Create JSON backups of all credentials
- Import: Restore credentials from backup files
- Auto-naming: Automatic date-based backup filenames
- Conflict Resolution: Handle duplicate credentials intelligently
- Validation: Verify backup file integrity before restore
🧭 Navigation & User Experience
- Cancel/Back Options: Exit any operation and return to main menu
- Interactive Prompts: User-friendly navigation throughout all features
- Graceful Exit: Cancel operations at any point without losing data
- Consistent Interface: Uniform navigation experience across all functions
Available Cancel Options:
- ✅ Backup Process: Cancel during file path selection
- ✅ Restore Process: Cancel during file selection or credential conflicts
- ✅ Add Credential: Cancel before entering credential details
- ✅ Edit Credential: Cancel during credential selection
- ✅ Delete Credential: Cancel during credential selection
- ✅ Login Selection: Cancel during platform selection (both regular and fast login)
⚡ Speed Optimizations
- Ultra-Fast Typing: 10ms delay between keystrokes
- Optimized Timing: Reduced auto-submit delay (1.5s)
- Smart Navigation: Faster page loading with
domcontentloaded - Multiple Submission Methods: Fallback strategies for reliable form submission
- Field Clearing: Proper field clearing before input
- Event Triggering: Proper input and change events
🛡️ Security
- Local Storage: All data is stored locally in SQLite database
- No Cloud Sync: Your credentials never leave your machine (unless you backup)
- Private Repo Safe: Database file can be safely stored in private repositories
- Masked Input: Passwords are hidden during input
- Secure Backups: JSON backups can be encrypted or stored securely
📁 Project Structure
AuthMate/
├── index.js # Main CLI application with backup/restore
├── database.js # SQLite database operations
├── browser.js # Browser automation with speed optimizations
├── fast-login.js # Ultra-fast login mode implementation
├── utils.js # Utility functions and styling
├── package.json # Project dependencies and npm config
├── .npmignore # NPM publish exclusions
├── data/ # Database storage directory
│ └── authmate.db # SQLite database file
└── README.md # This file🎨 CLI Features
- Colorful Interface: Uses Chalk for beautiful colored output
- ASCII Art Banner: Figlet-powered application title
- Loading Spinners: Ora spinners for better user experience
- Boxed Content: Boxen for organized information display
- Interactive Menus: Inquirer for smooth user interactions
- Progress Indicators: Real-time feedback for all operations
🔧 Dependencies
- commander: CLI framework
- inquirer: Interactive command line prompts
- sqlite3: SQLite database driver
- puppeteer: Browser automation
- chalk: Terminal string styling
- figlet: ASCII art text
- ora: Loading spinners
- boxen: Create boxes in terminal
🚨 Troubleshooting
Browser Issues
- Make sure you have Chrome/Chromium installed
- Some sites may have anti-automation measures
- Manual intervention might be needed for complex login forms
- Check browser console for detailed error logs
Database Issues
- Database file is created automatically in
data/directory - If database gets corrupted, delete
data/authmate.dbto reset - Use backup/restore to recover data
Login Detection Issues
- The tool uses multiple strategies to find and submit login forms
- Enhanced logging shows which submission methods are being tried
- Some sites may use unusual form structures
- You can always complete login manually in the opened browser
Backup/Restore Issues
- Ensure backup files are valid JSON format
- Check file permissions for read/write access
- Backup files include metadata for validation
🌟 Usage Examples
# Quick start
authmate
# Add a credential
authmate add
# Login to GitHub
authmate login github
# Create a backup before cleanup
authmate backup before-cleanup
# Weekly backup routine
authmate backup weekly-$(date +%Y-%m-%d)
# Restore from backup
authmate restore weekly-2024-01-15.json
# List all saved platforms
authmate list🤝 Contributing
Feel free to contribute to this project! Some ideas:
- Add support for 2FA
- Implement credential encryption
- Add more platform-specific login strategies
- Create browser extension integration
- Add configuration options
- Improve backup encryption
📦 Publishing
This package is available on npm as authmate-cli. To publish updates:
npm version patch # or minor/major
npm publish📝 License
MIT License - feel free to use this project for personal or commercial purposes.
🎉 Enjoy!
Happy automated logging in with backup peace of mind! 🚀
Made with ❤️ for developers who love beautiful CLIs and secure credential management
