<commit_before>1. `pwm delete KEY`

    Deletes the entry stored under KEY.

1. `pwm passwd [NEW_MASTER_PASSWORD]`

    Changes the master password to `<PASSWORD>`. If `NEW_MASTER_PASSWORD` is not present, it will be read from STDIN.

1.  Like sudo, pwm could become less annoying and ask rather seldom for the master password. After pwm was successfully unlocked, a ticket is granted for 5 minutes (this timeout is configurable). Each subsequent pwm command updates the ticket for another 5 minutes. This avoids the problem of leaving a shell where others can physically get to your keyboard.

1. Global option --ttl INTEGER

    Time to live for the authentication ticket.
    Pass in 0 to disable authentication tickets. In this case, pwm will ask for the master password for every invocation.
    Passing in -1 will make pwm not ask for the master password again until the ticket is manually deleted (e.g. by calling `pwm expire` in .logout).

1. `pwm expire`

    Expires an existing ticket (useful for placing in a .logout file).

1. `pwm alias EXISTING_KEY ALIAS_KEY`

    Creates a new alias for an existing key. All subsequent operations to `ALIAS_KEY` will operate on `EXISTING_KEY`.

1. The password input could be pluggable to that we could provide wrapper scripts for zenity, kdialog, cocoaDialog etc. A command line option would then select which one to use, while HighLine / STDIN stay the default.

1. Verbose mode should print statistics on STDERR, e.g. created, last modified, etc.

1. Store more data about each password, for instance
    * last modified (not just for the whole store)
    * last accessed (not just for the whole store)
    * password history
    * arbitrary meta data (user name, URL, comments, etc)
<commit_msg>Update TODOs with idea for wrapper scripts<commit_after>1. `pwm delete KEY`

    Deletes the entry stored under KEY.

1. `pwm passwd [NEW_MASTER_PASSWORD]`

    Changes the master password to `<PASSWORD>`. If `NEW_MASTER_PASSWORD` is not present, pwm will read two lines from STDIN, treating the first line as new password and the second line as password confirmation. The command will only succeed if both lines are the same.

1.  Like sudo, pwm could become less annoying and ask rather seldom for the master password. After pwm was successfully unlocked, a ticket is granted for 5 minutes (this timeout is configurable). Each subsequent pwm command updates the ticket for another 5 minutes. This avoids the problem of leaving a shell where others can physically get to your keyboard.

1. Global option --ttl INTEGER

    Time to live for the authentication ticket.
    Pass in 0 to disable authentication tickets. In this case, pwm will ask for the master password for every invocation.
    Passing in -1 will make pwm not ask for the master password again until the ticket is manually deleted (e.g. by calling `pwm expire` in .logout).

1. `pwm expire`

    Expires an existing ticket (useful for placing in a .logout file).

1. `pwm alias EXISTING_KEY ALIAS_KEY`

    Creates a new alias for an existing key. All subsequent operations to `ALIAS_KEY` will operate on `EXISTING_KEY`.

1. The password input could be pluggable to that we could provide wrapper scripts for zenity, kdialog, cocoaDialog etc. A command line option would then select which one to use, while HighLine / STDIN stay the default.

    Alternatively, wrapper scripts like `gpwm`, `kpwm` and `macpwm` and even `wpwm` could be provided.

1. Verbose mode should print statistics on STDERR, e.g. created, last modified, etc.

1. Store more data about each password, for instance
    * last modified (not just for the whole store)
    * last accessed (not just for the whole store)
    * password history
    * arbitrary meta data (user name, URL, comments, etc)

{'fraction_non_alphanumeric': 0.05154639175257732, 'fraction_numerical': 0.006872852233676976, 'mean_word_length': 3.802030456852792, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1702069', 'n_tokens_mistral': 1037, 'n_tokens_neox': 995, 'n_words': 582}