passlane 0.1.4

A password manager for the command line. Syncs with the Keychain.
passlane-0.1.4 is not a library.

Passlane

A lightning-fast password manager for the command line

Screenshot

Features

  • Generate passwords
  • Place the generated password into the clipboard
  • Save previously generated password from the clipboard
  • Sync the generated password to OS specific keychains, including Mac's iCloud Keychain
  • Import passwords from CSV files

Installation

  1. Download the latest release
  2. Unpack the archive
  3. Place the unarchived binary passlane to your $PATH
  4. Enjoy!

Usage

(base) ➜  temp passlane -h
passlane 0.1.4
Anssi Piirainen <anssip@email.com>
A password manager for the command line. Syncs with the Keychain.

USAGE:
    passlane [OPTIONS]

OPTIONS:
    -c, --csv <CSV>          Import credentials from a CSV file
    -d, --delete <DELETE>    Delete passwords by service. Use together with --keychain to
                             also delete from the keychain.
    -g, --grep <GREP>        Grep passwords by service
    -h, --help               Print help information
    -k, --keychain           Sync credentials to Keychain. Syncs all store credentials when
                             specified as the only option. When used together with --save, syncs
                             only the password in question
    -m, --master-pwd         Update master password
    -s, --save               Save the last generated password
    -v, --verbose            Verobose: show password values when grep option finds several matches
    -V, --version            Print version information

Generate a new password

  • Sign up for a new service in the web browser
  • Run passlane --> gnerates and saves a new password to the clipboard
  • Use the generated password from the clipboard
  • After successful signup: Open terminal and run passlane -s to save the password

Using saved credentials

Later on, when logging in to foobar.com:

  • Run passlane -g foobard.com --> copies foobar.com's password to clipboard.
  • Use the password from clipboard to login
$ passlane -g google.com
Please enter master password:
Found 9 matches:
+---+-----------------------------------------------------+------------------------------------+
|   | Service                                             | Username/email                     |
+==============================================================================================+
| 0 | https://accounts.google.com/signin/v2/challenge/pwd | jack@megacorp.com                  |
|---+-----------------------------------------------------+------------------------------------|
| 1 | https://accounts.google.com/signin/v2/challenge/pwd | jack1p@gmail.com                   |
|---+-----------------------------------------------------+------------------------------------|
| 2 | https://accounts.google.com/signin/v2/challenge/pwd | jck@hey.com                        |
|---+-----------------------------------------------------+------------------------------------|
| 3 | https://accounts.google.com/signin/v2/challenge/pwd | jackrussel@gmail.com               |
|---+-----------------------------------------------------+------------------------------------|
To copy one of these passwords to clipboard, please enter a row number from the table above,
or press q to exit: 3
Password from index 3 copied to clipboard!

or alternatively

  • Let MacOS propose the saved password. It knows it because Passlane also syncs to the keychain.

Syncing with the system Keychain

Passlane uses the keyring crate to sync credentials to the operating system's keychain. Syncing should work on Linux, iOS, macOS, and Windows.

Use option -s together with -k to save the last generated password to the Passlane storage file and to the keychain:

passlane -s -k

To sync all Passlane stored options to the keychain use the -k option alone:

passlane -k

Migrating from 1Password, LastPass, Dashlane etc.

You can import credentials from a CSV file. With this approach, you can easily migrate from less elegant and often expensive commercial services.

First, make sure that the CSV file has a header line (1st line) with the following column titles:

  • username
  • password
  • service

The service field is the URL or name of the service. When importing from Dashlane, the only necessary preparation is to rename url to service.

To export the credentials to a CSV file and import the file into Passlane:

passlane --csv <path_to_csv_file>

Here are links to instructions for doing the CSV export:

TODO

  • [] online sync service?

  • [] web UI for the online service

  • delete passwords

  • show grep results in a table, copy password to clipboard by row index

  • if "Failed: Unable to retrieve value from clipboard" --> prompt for the password to be saved

  • read password without showing input

  • import from CSV

  • separate CLI option to sync to keychain

  • possibility to show passwords when multiple search matches