This commit is contained in:
thePR0M3TH3AN
2024-10-22 15:23:38 -04:00
parent 562d745025
commit 97a3181480
2 changed files with 840 additions and 296 deletions

482
README.md
View File

@@ -182,310 +182,200 @@ For any questions, suggestions, or support, please open an issue on the [GitHub
## Roadmap
### **1. Cross-Platform Compatibility**
- **Add Windows-Supported File Locking**
- **Description:** Implement a file locking mechanism compatible with Windows to ensure that the application can safely handle concurrent file access across different operating systems.
- **Suggested Approach:** Consider using a cross-platform library like [`portalocker`](https://pypi.org/project/portalocker/) to replace the current `fcntl`-based locking system.
### Overview
### **2. Security Enhancements**
- **Add Parent Seed Recovery**
- **Description:** Develop a secure method for users to recover their parent seed in case it is lost or forgotten.
- **Suggested Features:**
- **Recovery Phrase:** Allow users to generate and store a recovery phrase or backup file.
- **Multi-Factor Authentication (MFA):** Integrate MFA to enhance the security of the recovery process.
- **Encrypted Storage:** Ensure that recovery data is encrypted and stored securely.
- **Add "Secret" Mode (Clipboard-Only Password Retrieval)**
- **Description:** Introduce a "secret" mode where passwords are copied directly to the clipboard rather than displayed on the screen upon retrieval. This mode should be a setting the user can toggle on or off.
- **Suggested Features:**
- **Toggle Setting:** Allow users to enable or disable "secret" mode.
- **Clipboard Integration:** Ensure passwords are copied securely to the clipboard when "secret" mode is active.
- **User Feedback:** Notify users that the password has been copied to the clipboard.
- **Implement Two-Factor Security Model with Random Index Generation**
- **Description:** Create a robust two-factor security system using master seed and master password combination, enhanced with random index generation for additional security.
- **Key Features:**
- **Random Index Generation:**
- Generate cryptographically secure random numbers for each new password index
- Store encrypted indices in the JSON data structure
- Require master password to decrypt index values
- Make master seed alone insufficient for password recovery
- **Master Seed Management:**
- Kept in cold storage/offline
- Acts as primary key for password generation
- Combined with decrypted random indices for final password derivation
- **Master Password System:**
- Stored in memory/brain only
- Required to decrypt indices and account access
- Protects the mapping between services and their random indices
- **Protection Layers:**
- Seed compromise protection through encrypted random indices
- Password compromise protection through seed requirement
- JSON file security through full encryption
- Additional security through randomized index space
- **Implementation:**
- Use cryptographic RNG for index generation
- Implement secure storage of encrypted indices
- Create robust index-to-service mapping system
- Ensure proper encryption of all index values
- **Security Verification:**
- Implement checks to ensure neither factor can be bypassed
- Add warnings about proper seed storage practices
- Include guidelines for secure password management
- Verify randomness quality of index generation
### **3. User Interface & Experience Improvements**
- **Show All Passwords**
- **Description:** Introduce a "Show All" option that displays all stored passwords along with their associated index entries.
- **Benefits:** Provides users with a comprehensive view of their password entries for easier management.
- **Export to CSV**
- **Description:** Implement functionality to export index numbers and generated passwords within a specified index range to a CSV file.
- **Purpose:** Facilitates bulk password recovery in scenarios where index data is lost.
- **Security Consideration:** Ensure that exported CSV files are handled securely, possibly by encrypting them or warning users about the risks.
### **4. Data Management Enhancements**
- **Add "Notes" Field**
- **Description:** Introduce a "Notes" field for each password entry to allow users to add supplementary information or comments.
- **Use Cases:** Users can store additional details like password creation date, usage guidelines, or any other relevant notes.
- **Add "Tags" Field**
- **Description:** Add a "Tags" field to each entry to enable categorization and easier organization of passwords.
- **Benefits:** Allows users to group related passwords, making retrieval and management more efficient.
- **Rename "Website" Field to "Title"**
- **Description:** Change the existing "Website" field to "Title" to provide a more flexible and generalized naming convention.
- **Advantages:** Accommodates entries that may not be directly tied to a website, such as application logins or system credentials.
- **Add Family Password Management**
- **Description:** Enable users to manage multiple sets of passwords for their entire family, including kids or elderly parents, from a single interface. Each family member's accounts and security information can be stored and accessed efficiently.
- **Benefits:**
- Centralizes the management of online accounts for families, simplifying tasks for users managing accounts for dependents or elderly relatives.
- Streamlines access to passwords, reducing the need for multiple password managers across a family.
- **Security Consideration:**
- Ensure that access to family members' accounts is properly segregated, and allow users to implement additional layers of security where needed, such as MFA or role-based access.
- **Add Easy BIP39 Seed Generation for Various Use Cases**
- **Description:** Introduce an easy method for generating new BIP39 seeds for various use cases, such as **Bitcoin/Cashu Wallets**, **AnyType**, **Atomic Wallet**, or other cryptocurrency-related purposes.
- **Benefits:**
- Simplifies the process of generating secure seeds for diverse use cases, making the application highly flexible for crypto enthusiasts.
- **Security Consideration:**
- As with all seed-related features, advise users to follow best security practices for handling and storing generated seeds.
- **Add Nostr Public/Private Key Pair Generation**
- **Description:** Add functionality to easily generate new **Nostr Public/Private key pairs** directly within the application. These keys will be tied to an index entry and backed up through the parent seed and password.
- **Benefits:**
- Simplifies key pair generation for users who want to manage multiple Nostr identities.
- Provides seamless integration for Nostr users, ensuring keys are derived securely and backed up.
- **Security Consideration:**
- Inform users of the risks of using the same seed across multiple identities, and suggest separate seeds for better security where applicable.
### **5. Search and Retrieval Features**
- **Implement Search by Tag or Title**
- **Description:** Develop search functionality that allows users to locate password entries based on associated tags or titles.
- **Features to Consider:**
- **Keyword Search:** Enable partial and case-insensitive searches.
- **Filter Options:** Allow users to filter search results based on multiple tags or specific criteria.
- **Advanced Search:** Incorporate Boolean operators (AND, OR, NOT) for more precise searches.
### **6. Nostr Integration Enhancements**
- **Add Option for Users to Specify Custom Set of Relays for Publishing Backup Index**
- **Description:** Provide users with the ability to select or configure specific Nostr relays where their encrypted backup index will be published.
- **Benefits:** Enhances flexibility and control over where backups are distributed, allowing users to choose trusted relays or optimize for performance and reliability.
- **Suggested Approach:**
- **User Interface:** Add settings in the application where users can input or select preferred relay URLs.
- **Validation:** Implement validation to ensure that the specified relays are active and support the necessary protocols.
- **Fallback Mechanism:** Allow users to add multiple relays to ensure redundancy in case some relays become unavailable.
- **Implement Smart Batching System for Index Updates**
- **Description:** The batching system manages the synchronization of password indices across devices by breaking down the encrypted JSON index into manageable chunks for Nostr transmission. This system ensures that even large password databases can be reliably synchronized while maintaining data integrity and security.
- **How It Works:**
The system segments the encrypted JSON index into smaller batches, each containing up to 10 password entries. Every batch includes metadata about its position in the sequence and checksums for verification. When updating the index:
1. The system first generates a complete checksum of the entire index
2. It then divides the index into batches, adding sequence information and individual checksums
3. Each batch is posted to Nostr as a separate event, linked by a common timestamp
4. Receiving devices collect all batches with matching timestamps
5. They verify individual batch checksums, then reconstruct and verify the complete index
6. Only if all pieces are present and verified does the system update the local index
This approach ensures that even if Nostr posts have size limitations or network issues occur, the system can reliably synchronize password databases of any size while maintaining perfect integrity.
- **Key Features:**
- **Batch Structure:**
- Metadata including total batch count and sequence position
- Batch-specific and complete index checksums
- Previous update ID tracking
- Timestamp-based versioning
- **Reconstruction Protocol:**
- Batch collection based on matching timestamps
- Individual and complete checksum verification
- Sequential reconstruction process
- All-or-nothing update principle
- **Conflict Management:**
- Timestamp-based precedence system
- Complete batch set verification
- Checksum validation for both parts and whole
- **Implementation Details:**
- Maximum 10 entries per batch for optimal transmission
- SHA-256 checksums for verification
- Progressive transmission with status tracking
- Automatic retry for failed transmissions
- **Error Handling:**
- Partial update recovery mechanisms
- Network interruption handling
- Corrupt batch detection and resolution
- Version conflict resolution protocols
- **Optimization Features:**
- Differential updates to minimize data transmission
- Batch prioritization based on changes
- Concurrent batch transmission for speed
- Compression for batch payload reduction
- **Automatically Post Index to Nostr After Every Edit**
- **Description:** Implement an automated process where any modification to the password index triggers an immediate update to the Nostr relays.
- **Benefits:**
- **Real-Time Backups:** Ensures that backups are always up-to-date with the latest changes.
- **Data Consistency:** Minimizes the risk of discrepancies between local data and Nostr backups.
- **Suggested Approach:**
- **Hook Integration:** Integrate hooks in the `EntryManager` or relevant modules to detect changes and trigger posting.
- **Error Handling:** Implement robust error handling to manage failed posts without disrupting the user's workflow.
- **User Notifications:** Inform users of the backup status after each edit (e.g., success, failure).
### **7. Advanced CLI Mode**
- **Develop an Advanced CLI Mode with Enhanced Functionalities**
- **Description:** Create a more sophisticated Command-Line Interface (CLI) mode that supports advanced operations beyond the basic functionalities.
- **Included Features:**
- **Custom Relays Configuration:** Allow users to specify a custom set of Nostr relays for publishing their backup index.
- **Batch Posting:** Enable the CLI to handle the segmentation of index entries into batches of 10 for Nostr posts.
- **Toggle "Secret" Mode:** Provide CLI commands to enable or disable "secret" mode for clipboard-only password retrieval.
- **Automated Nostr Posting:** Ensure that any edit to the index automatically triggers a post to Nostr.
- **Initial Setup Enhancements:** Implement features to handle the first-time user experience, including seed generation/import and initial Nostr profile creation.
- **Suggested Approach:**
- **Command Structure:** Design intuitive commands and flags to manage advanced settings.
- **User Feedback:** Ensure that the CLI provides clear feedback and confirmations for advanced operations.
- **Error Handling:** Implement robust error handling to manage issues specific to advanced functionalities.
### **8. User Onboarding and Initialization**
- **Seed Initialization on First Run**
- **Description:** When the user runs the program for the first time, prompt them to either enter an existing seed or generate a new one. Use the chosen password to encrypt the seed, whether it's user-provided or program-generated.
- **Benefits:** Provides flexibility and security during the initial setup, catering to both new users and those migrating from other password managers.
- **Suggested Features:**
- **Prompt Options:** Ask users if they want to input an existing seed or generate a new one.
- **Seed Generation:** If generating a new seed, ensure it's compliant with BIP-39 standards.
- **Encryption:** Securely encrypt the seed using the user's chosen password.
- **Confirmation:** Confirm the successful initialization and encryption of the seed.
- **Error Handling:** Manage scenarios where seed generation or encryption fails, providing clear feedback to the user.
### **9. Use a Robust CLI Framework**
- **Suggested Libraries:** [`argparse`](https://docs.python.org/3/library/argparse.html), [`click`](https://click.palletsprojects.com/), or [`Typer`](https://typer.tiangolo.com/).
- **Benefits:**
- Simplifies the creation of complex CLI commands and subcommands.
- Enhances readability and maintainability of CLI code.
- Provides built-in help and documentation features.
### **10. Implement Secure Clipboard Operations**
- **Library Suggestion:** [`pyperclip`](https://pypi.org/project/pyperclip/) for cross-platform clipboard access.
- **Security Consideration:**
- Clear the clipboard after a set duration (e.g., 30 seconds) to prevent unauthorized access.
- Notify users when the clipboard is cleared.
- Handle cases where clipboard operations fail gracefully.
### **11. Enhance Logging and Monitoring**
- **Granular Logging:**
- Log detailed information for successful operations and warnings/errors for issues.
- Include timestamps, action types, and relevant metadata.
- **Log Rotation:**
- Implement log rotation to prevent log files from growing indefinitely.
- Use Python's `logging.handlers` module or external libraries for managing log rotation.
### **12. Ensure Comprehensive Testing**
- **Unit Tests:**
- Write tests for individual functions and modules to ensure they work as intended.
- **Integration Tests:**
- Test the interaction between different modules, especially for features like automatic Nostr posting and seed recovery.
- **User Acceptance Testing (UAT):**
- Engage a group of users to test the application and provide feedback on usability and functionality.
### **13. Prioritize Security Best Practices**
- **Sensitive Data Handling:**
- Ensure that all sensitive data (e.g., seed phrases, encryption keys) are handled securely in memory and during storage.
- **Encryption Standards:**
- Use industry-standard encryption algorithms and key derivation functions.
- **Regular Audits:**
- Periodically review and audit the codebase for potential security vulnerabilities.
### **14. Provide Comprehensive Documentation**
- **User Guide:**
- Create detailed documentation covering installation, setup, usage, and troubleshooting.
- **CLI Help:**
- Ensure that each CLI command includes descriptive help messages.
- **Developer Documentation:**
- Document the codebase to assist future development and maintenance efforts.
The SeedPass roadmap outlines a structured development plan divided into distinct phases. Each phase focuses on specific areas, prioritizing core functionalities and security before expanding into advanced CLI features and integrations. This approach ensures that SeedPass remains a secure, reliable, and user-friendly CLI-based password management tool.
---
## **Advanced CLI Commands**
### Phase 1: Core Functionality and Security
| **Action** | **Command** | **Short Flag** | **Long Flag** | **Example Command** |
|-------------------------------------------|------------------------|----------------|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Add a new password entry | `add` | `-A` | `--add` | `passmgr add --title "GitHub" --url "https://github.com" --username "john_doe" --email "john@example.com" --notes "Primary GitHub account" --tags "work,development" --length 20` |
| Retrieve a password entry | `retrieve` | `-R` | `--retrieve` | `passmgr retrieve --index 3` or `passmgr retrieve --title "GitHub"` |
| Modify an existing entry | `modify` | `-M` | `--modify` | `passmgr modify --index 3 --title "GitHub Pro" --notes "Updated to pro account" --tags "work,development,pro" --length 22` |
| Delete an entry | `delete` | `-D` | `--delete` | `passmgr delete --index 3` |
| List all entries | `list` | `-L` | `--list` | `passmgr list` |
| Search for a password entry | `search` | `-S` | `--search` | `passmgr search --query "GitHub"` |
| Export passwords to a file | `export` | `-E` | `--export` | `passmgr export --file "backup_passwords.json"` |
| Import passwords from a file | `import` | `-I` | `--import` | `passmgr import --file "backup_passwords.json"` |
| Display help information | `help` | `-H` | `--help` | `passmgr help` |
| Display application version | `version` | `-V` | `--version` | `passmgr version` |
| Change master password | `changepw` | `-C` | `--changepw` | `passmgr changepw --new "NewSecureP@ssw0rd!"` |
| Enable auto-lock | `autolock --enable` | `-AL` | `--auto-lock --enable` | `passmgr autolock --enable --timeout 10` |
| Disable auto-lock | `autolock --disable` | `-DL` | `--auto-lock --disable` | `passmgr autolock --disable` |
| Generate a strong password | `generate` | `-G` | `--generate` | `passmgr generate --length 20` |
| Verify script checksum | `verify` | `-V` | `--verify` | `passmgr verify` |
| Post encrypted index to Nostr | `post` | `-P` | `--post` | `passmgr post` |
| Retrieve from Nostr | `get-nostr` | `-GN` | `--get-nostr` | `passmgr get-nostr` |
| Display Nostr public key | `show-pubkey` | `-K` | `--show-pubkey` | `passmgr show-pubkey` |
| **Set Custom Nostr Relays** | `set-relays` | `-SR` | `--set-relays` | `passmgr set-relays --add "wss://relay1.example.com" --add "wss://relay2.example.com"` |
| **Enable "Secret" Mode** | `set-secret` | `-SS` | `--set-secret` | `passmgr set-secret --enable` or `passmgr set-secret --disable` |
| **Batch Post Index Items to Nostr** | `batch-post` | `-BP` | `--batch-post` | `passmgr batch-post --start 0 --end 9` or `passmgr batch-post --range 10-19` |
| **Show All Passwords** | `show-all` | `-SA` | `--show-all` | `passmgr show-all` |
| **Add Notes to an Entry** | `add-notes` | `-AN` | `--add-notes` | `passmgr add-notes --index 3 --notes "This is a secured account"` |
| **Add Tags to an Entry** | `add-tags` | `-AT` | `--add-tags` | `passmgr add-tags --index 3 --tags "personal,finance"` |
| **Search by Tag or Title** | `search-by` | `-SB` | `--search-by` | `passmgr search-by --tag "work"` or `passmgr search-by --title "GitHub"` |
| **Automatically Post Index to Nostr After Edit** | `auto-post` | `-AP` | `--auto-post` | `passmgr auto-post --enable` or `passmgr auto-post --disable` |
| **Initial Setup Prompt for Seed Generation/Import** | `setup` | `-ST` | `--setup` | `passmgr setup` |
**Goal:** Establish a solid foundation with essential password management features, secure seed handling, and robust Nostr integration.
1. **Cross-Platform Compatibility**
- **Add Windows-Supported File Locking**
- **Description:** Implement a cross-platform file locking mechanism to ensure safe concurrent file access across different operating systems.
- **Approach:** Utilize a library like [`portalocker`](https://pypi.org/project/portalocker/) to replace the current `fcntl`-based locking system.
2. **Security Enhancements**
- **Add Parent Seed Recovery**
- **Description:** Develop a secure method for users to recover their parent seed if lost.
- **Features:**
- **Recovery Phrase:** Allow users to generate and store a recovery phrase or backup file.
- **Multi-Factor Authentication (MFA):** Integrate MFA to enhance the security of the recovery process.
- **Encrypted Storage:** Ensure that recovery data is encrypted and stored securely.
- **Add "Secret" Mode (Clipboard-Only Password Retrieval)**
- **Description:** Introduce a "secret" mode where passwords are copied directly to the clipboard rather than displayed on the screen upon retrieval.
- **Features:**
- **Toggle Setting:** Allow users to enable or disable "secret" mode.
- **Clipboard Integration:** Ensure passwords are copied securely to the clipboard when "secret" mode is active.
- **User Feedback:** Notify users that the password has been copied to the clipboard.
- **Implement Two-Factor Security Model with Random Index Generation**
- **Description:** Create a robust two-factor security system using a master seed and master password combination, enhanced with random index generation for additional security.
- **Key Features:**
- **Random Index Generation:** Generate cryptographically secure random numbers for each new password index.
- **Master Seed Management:** Keep the master seed in cold storage/offline, acting as the primary key for password generation.
- **Master Password System:** Store the master password in memory/brain only, required to decrypt indices and access accounts.
- **Protection Layers:** Ensure seed and password compromise protection through encrypted indices and secure storage.
- **Security Verification:** Implement checks to ensure neither factor can be bypassed and verify the randomness quality of index generation.
3. **Nostr Integration Enhancements**
- **Add Option for Custom Relays**
- **Description:** Provide users with the ability to select or configure specific Nostr relays for publishing their encrypted backup index.
- **Features:**
- **User Configuration:** Allow users to input or select preferred relay URLs via CLI commands.
- **Validation:** Ensure specified relays are active and support necessary protocols.
- **Fallback Mechanism:** Allow users to add multiple relays for redundancy in case some become unavailable.
- **Implement Smart Batching System for Index Updates**
- **Description:** Manage the synchronization of password indices across devices by segmenting the encrypted JSON index into manageable chunks for Nostr transmission.
- **Features:**
- **Batch Structure:** Include metadata such as total batch count, sequence position, and checksums.
- **Reconstruction Protocol:** Collect batches with matching timestamps, verify checksums, and reconstruct the complete index.
- **Conflict Management:** Use timestamp-based precedence and checksum validation to handle conflicts.
- **Error Handling:** Implement mechanisms to recover from partial updates, network interruptions, and corrupt batches.
- **Optimization Features:** Use differential updates, batch prioritization, and compression to enhance performance.
- **Automatically Post Index to Nostr After Every Edit**
- **Description:** Automate the process of updating Nostr relays whenever modifications to the password index occur.
- **Features:**
- **Hook Integration:** Detect changes and trigger posting via hooks in relevant modules.
- **Error Handling:** Manage failed posts without disrupting the user's workflow.
- **User Notifications:** Inform users of the backup status after each edit (e.g., success, failure).
4. **User Onboarding and Initialization**
- **Seed Initialization on First Run**
- **Description:** Prompt users to either enter an existing seed or generate a new one during the first run.
- **Features:**
- **Prompt Options:** Ask users if they want to input an existing seed or generate a new one.
- **Seed Generation:** Ensure generated seeds comply with BIP-39 standards.
- **Encryption:** Securely encrypt the seed using the user's chosen password.
- **Confirmation:** Confirm the successful initialization and encryption of the seed.
- **Error Handling:** Manage scenarios where seed generation or encryption fails, providing clear feedback to the user.
5. **Comprehensive Testing and Security Auditing**
- **Unit Tests:** Develop tests for individual functions and modules to ensure they work as intended.
- **Integration Tests:** Test the interaction between different modules, especially for features like automatic Nostr posting and seed recovery.
- **Security Audits:** Conduct regular code reviews and security assessments to identify and mitigate vulnerabilities.
---
### **Notes on New CLI Commands**
### Phase 2: Enhanced Security and Data Management
1. **Automatically Post Index to Nostr After Edit (`auto-post`):**
- **Purpose:** Enables or disables the automatic posting of the index to Nostr whenever an edit occurs.
- **Usage Examples:**
- Enable auto-post: `passmgr auto-post --enable`
- Disable auto-post: `passmgr auto-post --disable`
**Goal:** Strengthen security features and improve data management capabilities for better scalability and user satisfaction.
2. **Initial Setup Prompt for Seed Generation/Import (`setup`):**
- **Purpose:** Guides users through the initial setup process, allowing them to choose between generating a new seed or importing an existing one.
- **Features to Implement:**
- **Seed Choice Prompt:** Ask users whether they want to generate a new seed or import an existing one.
- **Encryption of Seed:** Use the user-selected password to encrypt the seed, whether generated or imported.
- **Nostr Profile Creation:** Upon first login, automatically generate a Nostr profile and check for existing index data notes that can be pulled and decrypted.
- **Usage Example:** `passmgr setup`
1. **Enhanced Data Fields**
- **Add "Notes" Field**
- **Description:** Allow users to add supplementary information or comments to each password entry.
- **Add "Tags" Field**
- **Description:** Enable categorization and easier organization of passwords through tagging.
- **Rename "Website" Field to "Title"**
- **Description:** Generalize the naming convention to accommodate non-website entries, such as application logins or system credentials.
3. **Advanced CLI Enhancements:**
- **Toggle "Secret" Mode via CLI:**
- **Description:** Allow users to enable or disable "secret" mode directly through the CLI.
- **Usage Examples:**
- Enable secret mode: `passmgr set-secret --enable`
- Disable secret mode: `passmgr set-secret --disable`
- **Initial Seed Setup Flow:**
- **Description:** When running `passmgr setup`, prompt users to either enter an existing seed or generate a new one, followed by password creation for encryption.
- **Usage Example:** `passmgr setup`
- **Automatic Nostr Profile Generation and Index Retrieval:**
- **Description:** During the initial setup or first login, generate a Nostr profile and attempt to retrieve and decrypt any existing index data from Nostr.
- **Usage Example:** `passmgr setup` (handles internally)
2. **Add Family Password Management**
- **Description:** Enable users to manage multiple sets of passwords for their entire family, including kids or elderly parents, from a single interface.
- **Features:**
- **Segregated Access:** Allow users to create and manage separate password sets for different family members.
- **Additional Security Layers:** Implement MFA or role-based access for managing family members' accounts.
- **User-Friendly CLI Commands:** Develop intuitive CLI commands to handle family member password sets efficiently.
3. **Add Easy BIP39 Seed Generation for Various Use Cases**
- **Description:** Provide an easy method for generating new BIP39 seeds for different purposes, such as cryptocurrency wallets.
- **Features:**
- **Seed Generation:** Ensure seeds are generated securely and comply with BIP39 standards.
- **User Guidance:** Offer CLI instructions on securely handling and storing generated seeds.
4. **Add Nostr Public/Private Key Pair Generation**
- **Description:** Allow users to generate new Nostr public/private key pairs within the application.
- **Features:**
- **Secure Key Generation:** Ensure key pairs are generated securely and tied to specific index entries.
- **Seamless Integration:** Integrate key pair management with existing Nostr functionalities.
- **Security Advisories:** Inform users about best practices for managing multiple Nostr identities and the risks of using the same seed across different identities.
---
### Phase 3: Advanced CLI Functionalities
**Goal:** Develop a sophisticated Command-Line Interface (CLI) for power users and developers, enhancing automation and customization capabilities.
1. **Develop an Advanced CLI Mode with Enhanced Functionalities**
- **Features:**
- **Custom Relays Configuration:** Allow users to specify a custom set of Nostr relays for publishing their backup index via CLI commands.
- **Batch Posting:** Enable the CLI to handle the segmentation of index entries into batches of 10 for Nostr posts.
- **Toggle "Secret" Mode via CLI:** Provide CLI commands to enable or disable "secret" mode for clipboard-only password retrieval.
- **Automated Nostr Posting:** Ensure that any edit to the index automatically triggers a post to Nostr.
- **Initial Setup Enhancements:** Implement CLI commands to handle the first-time user experience, including seed generation/import and initial Nostr profile creation.
2. **Use a Robust CLI Framework**
- **Description:** Transition to a robust CLI framework like [`click`](https://click.palletsprojects.com/) or [`Typer`](https://typer.tiangolo.com/) for better maintainability and scalability.
- **Benefits:**
- Simplifies the creation of complex CLI commands and subcommands.
- Enhances readability and maintainability of CLI code.
- Provides built-in help and documentation features.
3. **Implement Secure Clipboard Operations**
- **Description:** Ensure that clipboard operations are secure and temporary.
- **Features:**
- **Clear Clipboard After Duration:** Automatically clear the clipboard after a set duration (e.g., 30 seconds) to prevent unauthorized access.
- **User Notifications:** Inform users when the clipboard is cleared.
- **Graceful Failure Handling:** Manage cases where clipboard operations fail without disrupting the user experience.
---
### Phase 4: Data Management Enhancements and Integrations
**Goal:** Further improve data management capabilities and integrate with other platforms for expanded functionality.
1. **Add Nostr Public/Private Key Pair Generation**
- **Description:** Allow users to generate new Nostr public/private key pairs within the application.
- **Features:**
- **Secure Key Pair Generation:** Ensure key pairs are generated securely and tied to specific index entries.
- **Seamless Integration:** Integrate key pair management with existing Nostr functionalities.
- **Security Advisories:** Inform users about best practices for managing multiple Nostr identities and the risks of using the same seed across different identities.
2. **Additional Integrations**
- **Description:** Expand integrations with other platforms and services as needed.
- **Examples:**
- **Cryptocurrency Wallets:** Integrate with wallets like Bitcoin/Cashu or Atomic Wallet for seamless seed management.
- **Productivity Tools:** Integrate with tools like AnyType for enhanced password and data management.
---
### Phase 5: Documentation, Testing, and Finalization
**Goal:** Ensure comprehensive documentation, robust testing, and finalize the application for release.
1. **Provide Comprehensive Documentation**
- **User Guide:** Create detailed documentation covering installation, setup, usage, and troubleshooting via CLI help commands and external documentation files.
- **CLI Help:** Ensure that each CLI command includes descriptive help messages accessible via commands like `--help`.
- **Developer Documentation:** Document the codebase to assist future development and maintenance efforts, including contribution guidelines and code structure explanations.
2. **Enhance Logging and Monitoring**
- **Granular Logging:** Implement detailed logs for successful operations and warnings/errors for issues, including timestamps, action types, and relevant metadata.
- **Log Rotation:** Use Python's `logging.handlers` module or external libraries to manage log rotation and prevent log files from growing indefinitely.
3. **Ensure Comprehensive Testing**
- **Unit Tests:** Write tests for individual functions and modules to ensure they work as intended.
- **Integration Tests:** Test the interaction between different modules, especially for features like automatic Nostr posting and seed recovery.
- **User Acceptance Testing (UAT):** Engage a group of users to test the CLI tool and provide feedback on usability and functionality.
4. **Prioritize Security Best Practices**
- **Sensitive Data Handling:** Ensure that all sensitive data (e.g., seed phrases, encryption keys) are handled securely in memory and during storage.
- **Encryption Standards:** Use industry-standard encryption algorithms and key derivation functions.
- **Regular Audits:** Periodically review and audit the codebase for potential security vulnerabilities.
---
### Future Phases (Beyond Initial Roadmap)
1. **Continuous Improvement and Feature Expansion**
- **Description:** Respond to user feedback and implement additional features based on emerging needs.
- **Examples:** Integrate with new platforms, add support for biometric authentication, or expand to mobile platforms.
2. **Scalability and Performance Optimization**
- **Description:** Optimize application performance for large datasets and enhance scalability for a growing user base.
- **Features:**
- **Performance Tuning:** Improve response times and resource usage.
- **Scalability Enhancements:** Ensure the application can handle an increasing number of users and data entries without degradation in performance.

654
docs/advanced_cli.md Normal file
View File

@@ -0,0 +1,654 @@
# Advanced CLI Commands Documentation
## Overview
The **Advanced CLI Commands** document provides an in-depth guide to the various command-line functionalities available in **SeedPass**, a secure password manager built on Bitcoin's BIP-85 standard. Designed for power users and developers, this guide outlines each command's purpose, usage, options, and examples to facilitate efficient and effective password management through the CLI.
---
## Table of Contents
1. [Command Reference](#command-reference)
2. [Detailed Command Descriptions](#detailed-command-descriptions)
- [1. Add a New Password Entry](#1-add-a-new-password-entry)
- [2. Retrieve a Password Entry](#2-retrieve-a-password-entry)
- [3. Modify an Existing Entry](#3-modify-an-existing-entry)
- [4. Delete an Entry](#4-delete-an-entry)
- [5. List All Entries](#5-list-all-entries)
- [6. Search for a Password Entry](#6-search-for-a-password-entry)
- [7. Export Passwords to a File](#7-export-passwords-to-a-file)
- [8. Import Passwords from a File](#8-import-passwords-from-a-file)
- [9. Display Help Information](#9-display-help-information)
- [10. Display Application Version](#10-display-application-version)
- [11. Change Master Password](#11-change-master-password)
- [12. Enable Auto-Lock](#12-enable-auto-lock)
- [13. Disable Auto-Lock](#13-disable-auto-lock)
- [14. Generate a Strong Password](#14-generate-a-strong-password)
- [15. Verify Script Checksum](#15-verify-script-checksum)
- [16. Post Encrypted Index to Nostr](#16-post-encrypted-index-to-nostr)
- [17. Retrieve from Nostr](#17-retrieve-from-nostr)
- [18. Display Nostr Public Key](#18-display-nostr-public-key)
- [19. Set Custom Nostr Relays](#19-set-custom-nostr-relays)
- [20. Enable "Secret" Mode](#20-enable-secret-mode)
- [21. Batch Post Index Items to Nostr](#21-batch-post-index-items-to-nostr)
- [22. Show All Passwords](#22-show-all-passwords)
- [23. Add Notes to an Entry](#23-add-notes-to-an-entry)
- [24. Add Tags to an Entry](#24-add-tags-to-an-entry)
- [25. Search by Tag or Title](#25-search-by-tag-or-title)
- [26. Automatically Post Index to Nostr After Edit](#26-automatically-post-index-to-nostr-after-edit)
- [27. Initial Setup Prompt for Seed Generation/Import](#27-initial-setup-prompt-for-seed-generationimport)
3. [Notes on New CLI Commands](#notes-on-new-cli-commands)
---
## Command Reference
The following table provides a quick reference to all available advanced CLI commands in SeedPass, including their actions, command syntax, short and long flags, and example usages.
| **Action** | **Command** | **Short Flag** | **Long Flag** | **Example Command** |
|-------------------------------------------|------------------------|----------------|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Add a new password entry | `add` | `-A` | `--add` | `seedpass add --title "GitHub" --url "https://github.com" --username "john_doe" --email "john@example.com" --notes "Primary GitHub account" --tags "work,development" --length 20` |
| Retrieve a password entry | `retrieve` | `-R` | `--retrieve` | `seedpass retrieve --index 3` or `seedpass retrieve --title "GitHub"` |
| Modify an existing entry | `modify` | `-M` | `--modify` | `seedpass modify --index 3 --title "GitHub Pro" --notes "Updated to pro account" --tags "work,development,pro" --length 22` |
| Delete an entry | `delete` | `-D` | `--delete` | `seedpass delete --index 3` |
| List all entries | `list` | `-L` | `--list` | `seedpass list` |
| Search for a password entry | `search` | `-S` | `--search` | `seedpass search --query "GitHub"` |
| Export passwords to a file | `export` | `-E` | `--export` | `seedpass export --file "backup_passwords.json"` |
| Import passwords from a file | `import` | `-I` | `--import` | `seedpass import --file "backup_passwords.json"` |
| Display help information | `help` | `-H` | `--help` | `seedpass help` |
| Display application version | `version` | `-V` | `--version` | `seedpass version` |
| Change master password | `changepw` | `-C` | `--changepw` | `seedpass changepw --new "NewSecureP@ssw0rd!"` |
| Enable auto-lock | `autolock --enable` | `-AL` | `--auto-lock --enable` | `seedpass autolock --enable --timeout 10` |
| Disable auto-lock | `autolock --disable` | `-DL` | `--auto-lock --disable` | `seedpass autolock --disable` |
| Generate a strong password | `generate` | `-G` | `--generate` | `seedpass generate --length 20` |
| Verify script checksum | `verify` | `-V` | `--verify` | `seedpass verify` |
| Post encrypted index to Nostr | `post` | `-P` | `--post` | `seedpass post` |
| Retrieve from Nostr | `get-nostr` | `-GN` | `--get-nostr` | `seedpass get-nostr` |
| Display Nostr public key | `show-pubkey` | `-K` | `--show-pubkey` | `seedpass show-pubkey` |
| **Set Custom Nostr Relays** | `set-relays` | `-SR` | `--set-relays` | `seedpass set-relays --add "wss://relay1.example.com" --add "wss://relay2.example.com"` |
| **Enable "Secret" Mode** | `set-secret` | `-SS` | `--set-secret` | `seedpass set-secret --enable` or `seedpass set-secret --disable` |
| **Batch Post Index Items to Nostr** | `batch-post` | `-BP` | `--batch-post` | `seedpass batch-post --start 0 --end 9` or `seedpass batch-post --range 10-19` |
| **Show All Passwords** | `show-all` | `-SA` | `--show-all` | `seedpass show-all` |
| **Add Notes to an Entry** | `add-notes` | `-AN` | `--add-notes` | `seedpass add-notes --index 3 --notes "This is a secured account"` |
| **Add Tags to an Entry** | `add-tags` | `-AT` | `--add-tags` | `seedpass add-tags --index 3 --tags "personal,finance"` |
| **Search by Tag or Title** | `search-by` | `-SB` | `--search-by` | `seedpass search-by --tag "work"` or `seedpass search-by --title "GitHub"` |
| **Automatically Post Index to Nostr After Edit** | `auto-post` | `-AP` | `--auto-post` | `seedpass auto-post --enable` or `seedpass auto-post --disable` |
| **Initial Setup Prompt for Seed Generation/Import** | `setup` | `-ST` | `--setup` | `seedpass setup` |
---
## Detailed Command Descriptions
### 1. Add a New Password Entry
**Command:** `add`
**Short Flag:** `-A`
**Long Flag:** `--add`
**Description:**
Adds a new password entry to the password manager. This command allows users to specify various attributes of the password entry, including title, URL, username, email, notes, tags, and desired password length.
**Usage Example:**
```bash
seedpass add --title "GitHub" --url "https://github.com" --username "john_doe" --email "john@example.com" --notes "Primary GitHub account" --tags "work,development" --length 20
```
**Options:**
- `--title` (`-T`): The title or name of the service.
- `--url` (`-U`): The URL of the service.
- `--username` (`-UN`): The username associated with the account.
- `--email` (`-E`): The email address linked to the account.
- `--notes` (`-N`): Additional notes or comments about the account.
- `--tags` (`-TG`): Comma-separated tags for categorization.
- `--length` (`-L`): Desired length of the generated password.
---
### 2. Retrieve a Password Entry
**Command:** `retrieve`
**Short Flag:** `-R`
**Long Flag:** `--retrieve`
**Description:**
Retrieves a password entry based on either its index or title. This allows users to access specific passwords without browsing through all entries.
**Usage Examples:**
```bash
seedpass retrieve --index 3
seedpass retrieve --title "GitHub"
```
**Options:**
- `--index` (`-I`): The numerical index of the password entry.
- `--title` (`-T`): The title of the password entry.
---
### 3. Modify an Existing Entry
**Command:** `modify`
**Short Flag:** `-M`
**Long Flag:** `--modify`
**Description:**
Modifies an existing password entry. Users can update various attributes of the entry, such as title, notes, tags, and password length.
**Usage Example:**
```bash
seedpass modify --index 3 --title "GitHub Pro" --notes "Updated to pro account" --tags "work,development,pro" --length 22
```
**Options:**
- `--index` (`-I`): The numerical index of the password entry to modify.
- `--title` (`-T`): New title for the password entry.
- `--notes` (`-N`): Updated notes or comments.
- `--tags` (`-TG`): Updated comma-separated tags.
- `--length` (`-L`): New desired password length.
---
### 4. Delete an Entry
**Command:** `delete`
**Short Flag:** `-D`
**Long Flag:** `--delete`
**Description:**
Deletes a password entry from the password manager based on its index.
**Usage Example:**
```bash
seedpass delete --index 3
```
**Options:**
- `--index` (`-I`): The numerical index of the password entry to delete.
---
### 5. List All Entries
**Command:** `list`
**Short Flag:** `-L`
**Long Flag:** `--list`
**Description:**
Lists all password entries stored in the password manager, displaying their indices, titles, and associated tags for easy reference.
**Usage Example:**
```bash
seedpass list
```
---
### 6. Search for a Password Entry
**Command:** `search`
**Short Flag:** `-S`
**Long Flag:** `--search`
**Description:**
Searches for password entries based on a query string, allowing users to find specific entries without knowing their exact titles or indices.
**Usage Example:**
```bash
seedpass search --query "GitHub"
```
**Options:**
- `--query` (`-Q`): The search string to look for in titles, tags, or notes.
---
### 7. Export Passwords to a File
**Command:** `export`
**Short Flag:** `-E`
**Long Flag:** `--export`
**Description:**
Exports password entries to a specified file in JSON format, enabling users to back up their data or transfer it to another system.
**Usage Example:**
```bash
seedpass export --file "backup_passwords.json"
```
**Options:**
- `--file` (`-F`): The destination file path for the exported data.
---
### 8. Import Passwords from a File
**Command:** `import`
**Short Flag:** `-I`
**Long Flag:** `--import`
**Description:**
Imports password entries from a specified JSON file into the password manager, allowing users to restore backups or migrate data.
**Usage Example:**
```bash
seedpass import --file "backup_passwords.json"
```
**Options:**
- `--file` (`-F`): The source file path containing the password entries to import.
---
### 9. Display Help Information
**Command:** `help`
**Short Flag:** `-H`
**Long Flag:** `--help`
**Description:**
Displays help information for SeedPass commands, providing users with guidance on available options and usage patterns.
**Usage Example:**
```bash
seedpass help
```
---
### 10. Display Application Version
**Command:** `version`
**Short Flag:** `-V`
**Long Flag:** `--version`
**Description:**
Displays the current version of the SeedPass application, helping users verify their installed version or check for updates.
**Usage Example:**
```bash
seedpass version
```
---
### 11. Change Master Password
**Command:** `changepw`
**Short Flag:** `-C`
**Long Flag:** `--changepw`
**Description:**
Allows users to change the master password used to encrypt and decrypt their password entries, enhancing account security.
**Usage Example:**
```bash
seedpass changepw --new "NewSecureP@ssw0rd!"
```
**Options:**
- `--new` (`-N`): The new master password to set.
---
### 12. Enable Auto-Lock
**Command:** `autolock --enable`
**Short Flag:** `-AL`
**Long Flag:** `--auto-lock --enable`
**Description:**
Enables the auto-lock feature, which automatically locks the password manager after a specified period of inactivity, enhancing security.
**Usage Example:**
```bash
seedpass autolock --enable --timeout 10
```
**Options:**
- `--enable`: Flag to enable the auto-lock feature.
- `--timeout` (`-T`): The duration (in minutes) of inactivity before auto-lock is triggered.
---
### 13. Disable Auto-Lock
**Command:** `autolock --disable`
**Short Flag:** `-DL`
**Long Flag:** `--auto-lock --disable`
**Description:**
Disables the auto-lock feature, preventing the password manager from automatically locking after inactivity.
**Usage Example:**
```bash
seedpass autolock --disable
```
---
### 14. Generate a Strong Password
**Command:** `generate`
**Short Flag:** `-G`
**Long Flag:** `--generate`
**Description:**
Generates a strong, random password of specified length, aiding users in creating secure credentials.
**Usage Example:**
```bash
seedpass generate --length 20
```
**Options:**
- `--length` (`-L`): The desired length of the generated password.
---
### 15. Verify Script Checksum
**Command:** `verify`
**Short Flag:** `-V`
**Long Flag:** `--verify`
**Description:**
Verifies the integrity of the SeedPass script by checking its checksum, ensuring that the code has not been tampered with.
**Usage Example:**
```bash
seedpass verify
```
---
### 16. Post Encrypted Index to Nostr
**Command:** `post`
**Short Flag:** `-P`
**Long Flag:** `--post`
**Description:**
Posts the encrypted password index to the Nostr network, facilitating secure backups and synchronization across devices.
**Usage Example:**
```bash
seedpass post
```
---
### 17. Retrieve from Nostr
**Command:** `get-nostr`
**Short Flag:** `-GN`
**Long Flag:** `--get-nostr`
**Description:**
Retrieves the encrypted password index from the Nostr network, allowing users to restore their password data on a new device.
**Usage Example:**
```bash
seedpass get-nostr
```
---
### 18. Display Nostr Public Key
**Command:** `show-pubkey`
**Short Flag:** `-K`
**Long Flag:** `--show-pubkey`
**Description:**
Displays the user's Nostr public key (npub), which is used for identifying their account on the Nostr network.
**Usage Example:**
```bash
seedpass show-pubkey
```
---
### 19. Set Custom Nostr Relays
**Command:** `set-relays`
**Short Flag:** `-SR`
**Long Flag:** `--set-relays`
**Description:**
Allows users to specify custom Nostr relays for publishing their encrypted backup index, providing flexibility and control over data distribution.
**Usage Example:**
```bash
seedpass set-relays --add "wss://relay1.example.com" --add "wss://relay2.example.com"
```
**Options:**
- `--add`: Adds a new relay URL to the list of custom relays.
---
### 20. Enable "Secret" Mode
**Command:** `set-secret`
**Short Flag:** `-SS`
**Long Flag:** `--set-secret`
**Description:**
Enables or disables "secret" mode, where retrieved passwords are copied directly to the clipboard instead of being displayed on the screen, enhancing security.
**Usage Examples:**
```bash
seedpass set-secret --enable
seedpass set-secret --disable
```
**Options:**
- `--enable`: Activates "secret" mode.
- `--disable`: Deactivates "secret" mode.
---
### 21. Batch Post Index Items to Nostr
**Command:** `batch-post`
**Short Flag:** `-BP`
**Long Flag:** `--batch-post`
**Description:**
Posts a specified range of index items to the Nostr network in batches, ensuring efficient and manageable data transmission.
**Usage Examples:**
```bash
seedpass batch-post --start 0 --end 9
seedpass batch-post --range 10-19
```
**Options:**
- `--start` (`-S`): The starting index of the batch.
- `--end` (`-E`): The ending index of the batch.
- `--range` (`-R`): Specifies a range in the format `start-end`.
---
### 22. Show All Passwords
**Command:** `show-all`
**Short Flag:** `-SA`
**Long Flag:** `--show-all`
**Description:**
Displays all stored password entries along with their associated index numbers, titles, and tags, providing a comprehensive view for management purposes.
**Usage Example:**
```bash
seedpass show-all
```
---
### 23. Add Notes to an Entry
**Command:** `add-notes`
**Short Flag:** `-AN`
**Long Flag:** `--add-notes`
**Description:**
Adds or updates notes for a specific password entry, allowing users to include additional information or comments.
**Usage Example:**
```bash
seedpass add-notes --index 3 --notes "This is a secured account"
```
**Options:**
- `--index` (`-I`): The numerical index of the password entry.
- `--notes` (`-N`): The notes or comments to add.
---
### 24. Add Tags to an Entry
**Command:** `add-tags`
**Short Flag:** `-AT`
**Long Flag:** `--add-tags`
**Description:**
Adds or updates tags for a specific password entry, enabling better categorization and organization.
**Usage Example:**
```bash
seedpass add-tags --index 3 --tags "personal,finance"
```
**Options:**
- `--index` (`-I`): The numerical index of the password entry.
- `--tags` (`-TG`): Comma-separated tags to add.
---
### 25. Search by Tag or Title
**Command:** `search-by`
**Short Flag:** `-SB`
**Long Flag:** `--search-by`
**Description:**
Allows users to search for password entries based on specific tags or titles, enhancing the ability to locate entries quickly.
**Usage Examples:**
```bash
seedpass search-by --tag "work"
seedpass search-by --title "GitHub"
```
**Options:**
- `--tag` (`-T`): The tag to search for.
- `--title` (`-Ti`): The title to search for.
---
### 26. Automatically Post Index to Nostr After Edit
**Command:** `auto-post`
**Short Flag:** `-AP`
**Long Flag:** `--auto-post`
**Description:**
Enables or disables the automatic posting of the password index to the Nostr network whenever an edit occurs, ensuring real-time backups.
**Usage Examples:**
```bash
seedpass auto-post --enable
seedpass auto-post --disable
```
**Options:**
- `--enable`: Activates automatic posting.
- `--disable`: Deactivates automatic posting.
---
### 27. Initial Setup Prompt for Seed Generation/Import
**Command:** `setup`
**Short Flag:** `-ST`
**Long Flag:** `--setup`
**Description:**
Guides users through the initial setup process, allowing them to choose between generating a new seed or importing an existing one. This command also handles the encryption of the seed and the creation of a Nostr profile.
**Usage Example:**
```bash
seedpass setup
```
**Features to Implement:**
- **Seed Choice Prompt:** Asks users whether they want to generate a new seed or import an existing one.
- **Encryption of Seed:** Uses the user-selected password to encrypt the seed, whether generated or imported.
- **Nostr Profile Creation:** Upon first login, automatically generates a Nostr profile and checks for existing index data notes that can be pulled and decrypted.
---
## Notes on New CLI Commands
1. **Automatically Post Index to Nostr After Edit (`auto-post`):**
- **Purpose:** Enables or disables the automatic posting of the index to Nostr whenever an edit occurs.
- **Usage Examples:**
- Enable auto-post: `seedpass auto-post --enable`
- Disable auto-post: `seedpass auto-post --disable`
2. **Initial Setup Prompt for Seed Generation/Import (`setup`):**
- **Purpose:** Guides users through the initial setup process, allowing them to choose between generating a new seed or importing an existing one.
- **Features to Implement:**
- **Seed Choice Prompt:** Ask users whether they want to generate a new seed or import an existing one.
- **Encryption of Seed:** Use the user-selected password to encrypt the seed, whether generated or imported.
- **Nostr Profile Creation:** Upon first login, automatically generate a Nostr profile and check for existing index data notes that can be pulled and decrypted.
- **Usage Example:** `seedpass setup`
3. **Advanced CLI Enhancements:**
- **Toggle "Secret" Mode via CLI:**
- **Description:** Allows users to enable or disable "secret" mode directly through the CLI.
- **Usage Examples:**
- Enable secret mode: `seedpass set-secret --enable`
- Disable secret mode: `seedpass set-secret --disable`
- **Initial Seed Setup Flow:**
- **Description:** When running `seedpass setup`, prompts users to either enter an existing seed or generate a new one, followed by password creation for encryption.
- **Usage Example:** `seedpass setup`
- **Automatic Nostr Profile Generation and Index Retrieval:**
- **Description:** During the initial setup or first login, generates a Nostr profile and attempts to retrieve and decrypt any existing index data from Nostr.
- **Usage Example:** `seedpass setup` (handles internally)
---
## Usage Guidelines
- **Help Commands:** For detailed information on any command, use the help flag. For example:
```bash
seedpass add --help
```
- **Consistent Flag Usage:** Use either the short flag or the long flag as per your preference, but maintain consistency for readability.
- **Security Considerations:**
- Always use strong, unique master passwords.
- Regularly back up your encrypted index.
- Enable auto-lock to enhance security.
- Be cautious when using the `export` and `import` commands to handle sensitive data securely.
- **Nostr Integration:**
- Ensure that your Nostr relays are reliable and secure.
- Regularly verify your Nostr public key and manage relays through the `set-relays` command.
---
## Conclusion
This **Advanced CLI Commands Documentation** serves as a comprehensive guide for utilizing SeedPass's full suite of command-line functionalities. By understanding and effectively leveraging these commands, users can manage their passwords securely and efficiently, ensuring both ease of use and robust security measures.
For further assistance or to contribute to the development of SeedPass, please refer to the [Contributing Guidelines](CONTRIBUTING.md) or open an issue on the [GitHub Repository](https://github.com/PR0M3TH3AN/SeedPass/issues).
---