A simple CLI password manager
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


clipw: A simple CLI password manager.


clipw began with a coversation between a coworker and myself regarding the CLI password manager we wanted but that did not exist.

What can it do?

clipw can store passwords, credit card numbers, or any other type of information. At its heart, though, clipw is a password manager -- and the fields it tracks reflect this aim.

Each entry in the clipw store has a key (title/ID), a username, and a password, but you can adapt this to your needs. For example, to store information on a credit card, you could lay out your info as follows:

  • key: visa (type of card, or something you'll remember)
  • username: 0000 0000 0000 0000 (credit card number)
  • password: 000 (security code)


Each of the following dependencies should be in your $PATH:

  • bash
  • gpg

It is assumed that the "standard" GNU utilities -- such as cat and sed -- will be in your $PATH.

Optional Dependencies

  • xclip (direct copy to clipboard)
  • pwgen (password generation)


"Installation" is a misnomer with clipw: it's just a script. Place the actual clipw script anywhere you'd like. (In Using -- below -- it is assumed that clipw is in your $PATH).

By default, clipw will keep your password store in a subdirectory of $XDG_CONFIG_HOME; however, there is built-in support for locating the password store alongside the script itself (useful if you wish to carry around clipw on a USB drive). To activate this functionality, simply rename clipw to clipw-e or create a symlink to the script called clipw-e. Done!



Note: You must execute clipw init first!


  • clear KEY

    Removes entry KEY from the password store.

  • destroy

    Completely removes the password store. You will lose all your stored info!

    If you destroy your password store, you must call clipw init before using clipw again.

  • get KEY [show]

    Retrieves password for entry KEY from the store. If passed show (or if xclip is not available), the password will be printed to stdout.

  • help

    Prints basic help information.

  • init

    Initializes the clipw password store; this must be called before using any other function.

  • list

    Lists all store entry keys.

  • passwd

    Changes the store (master) password.

  • put KEY [custom]

    Adds a new entry to the password store; KEY is the "title" of the store entry (something like "facebook" or "gmail"). If passed the custom flag (or if pwgen is not in your path), then you will later be prompted for a password; otherwise, one will be generated for you.

  • where

    Prints the location of the password store.


The simple implementation of clipw (including the fact that it is really nothing but a shell script) means that its functionality is limited. For example, the format for the password store (which is just an encrypted text file) means that usernames cannot contain the colon (:) character.

Other Utilities

When I began clipw, I was not aware of pwsafe. If you don't care for my work, check it out.

pwsafe does have some advantages over clipw, but note that even during password generation, clipw (unlike pwsafe) does not display your password on the terminal. Furthermore, the range of characters in passwords generated using clipw (meaning the passwords generated by the dependency pwgen) contain a wider range of characters than those created by pwsafe.

It's up to you. Use what you like!


clipw is released under the MIT license (see LICENSE.md). Note that clipw is just a single shell script; utilities called by the script are licensed by their respective owners.


I give no assurance of this utility's security, and I do not guarantee that it will not zap your computer and fry your homedir. Use at your own risk.