Skip to main content

Manage your login credentials from the terminal painlessly.

Project description

Passpie: Manage login credentials from terminal
===============================================

|Passpie console interface|
---------------------------

`Passpie <https://marcwebbie.github.io/passpie>`__ helps you manage
login credentials from the terminal with a colorful andconfigurable
interface. Password files are saved into yaml text files with passwords
encrypted using
`GnuPG <http://en.wikipedia.org/wiki/GNU_Privacy_Guard>`__. Use your
master passphrase to decrypt login credentials, copy passwords to
clipboard syncronize them to a git repository and more...

|pypi| |unix\_build| |windows\_build| |coverage|
------------------------------------------------

Installation
------------

.. code:: fish

pip install passpie

Or on a *mac*, with `homebrew <http://brew.sh>`__:

.. code:: fish

brew install passpie

Or to install the *latest development* version:

.. code:: fish

pip install -U https://github.com/marcwebbie/passpie/tarball/master

Quickstart
----------

.. code:: fish

# initialize a passpie database
passpie init

# add some credentials
passpie add foo@example.com
passpie add bar@example.com

# add some credential with random passwords
passpie add bar@github.com --random
passpie add spam@egg --random
passpie add foo@github.com --random
passpie add bar@github.com --random

# add credentials with random password patterns
passpie add jane.doe@example.com --pattern '[0-9]{5}[a-z]{5}' --random
passpie add john.doe@example.com --pattern '[0-9]{5}[a-z]{5}' --random

# add spam@egg with random password and copy to clipboard
passpie add spam@egg.local --random --copy

# edit credential "foo@example.com"
passpie update foo@example.com

# copy password from credential "foo@example.com" to clipboard
passpie copy foo@example.com

# copy password to clipboard with clearing clipboard after 10 seconds
passpie copy foo@example.com --clear 10

# search credentials by string "exam"
passpie search exam

# search credentials using regular expressions
passpie search 'foo|bar'

# remove some credentials
passpie remove foo@example.com
passpie remove foo@github.com

# see the database change history
passpie log

# reset to a previous version of the database
passpie --reset-to 5

# check database status
passpie status

# print all credentials as a table with hidden passwords
passpie

# purge all credentials from database
passpie purge

# shows help. Option `--help`
passpie --help

Commands
--------

+--------------------+---------------------------------------------------------+
| Command | Description |
+====================+=========================================================+
| **``add``** | Add new credential to database |
+--------------------+---------------------------------------------------------+
| **``complete``** | Generate completion scripts for shells |
+--------------------+---------------------------------------------------------+
| **``copy``** | Copy credential password to clipboard/stdout |
+--------------------+---------------------------------------------------------+
| **``export``** | Export credentials in plain text |
+--------------------+---------------------------------------------------------+
| **``import``** | Import credentials from file |
+--------------------+---------------------------------------------------------+
| **``init``** | Initialize new passpie database |
+--------------------+---------------------------------------------------------+
| **``log``** | Shows passpie database changes history |
+--------------------+---------------------------------------------------------+
| **``purge``** | Remove all credentials from database |
+--------------------+---------------------------------------------------------+
| **``remove``** | Remove credential |
+--------------------+---------------------------------------------------------+
| **``reset``** | Renew passpie database and re-encrypt all credentials |
+--------------------+---------------------------------------------------------+
| **``search``** | Search credentials by regular expressions |
+--------------------+---------------------------------------------------------+
| **``status``** | Diagnose database for improvements |
+--------------------+---------------------------------------------------------+
| **``update``** | Update credential |
+--------------------+---------------------------------------------------------+

Configuring passpie
-------------------

Global
~~~~~~

You can override passpie default configuration with a **passpierc**
file. Global user settings are read from the ``~/.passpierc``

Note that Passpie configuration files must be written as a valid
`yaml <http://yaml.org/>`__ file.

Per-database
~~~~~~~~~~~~

You can also add database specific configuration by creating a file
called ``.config`` inside database directory. These files are
automatically created when initializing databases.

Example:
~~~~~~~~

.. code:: yaml

path: ~/.passpie
homedir: ~/.gnupg
autopull: null
copy_timeout: 0
extension: .pass
genpass_pattern: "[a-z]{5} [-_+=*&%$#]{5} [A-Z]{5}"
headers:
- name
- login
- password
- comment
colors:
login: green
name: yellow
key_length: 4096
recipient: passpie@local
repo: true
short_commands: false
status_repeated_passwords_limit: 5
table_format: fancy_grid

Fields
~~~~~~

+-----------------------------------------+----------------------------------+
| Option | Description |
+=========================================+==================================+
| `path <./docs/configuration.md#path>`__ | Path to default database |
+-----------------------------------------+----------------------------------+
| `homedir <./docs/configuration.md#homed | Path to gnupg homedir |
| ir>`__ | |
+-----------------------------------------+----------------------------------+
| `recipient <./docs/configuration.md#rec | Default gpg recipient to |
| ipient>`__ | encrypt/decrypt credentials |
| | using keychains |
+-----------------------------------------+----------------------------------+
| `key\_length <./docs/configuration.md#k | Key generation length |
| ey_length>`__ | |
+-----------------------------------------+----------------------------------+
| `repo <./docs/configuration.md#repo>`__ | Create a git repo by default |
+-----------------------------------------+----------------------------------+
| `autopull <./docs/configuration.md#auto | Automatically pull changes from |
| pull>`__ | git remote repository |
+-----------------------------------------+----------------------------------+
| `copy\_timeout <./docs/configuration.md | Automatically clear password |
| #copy_timeout>`__ | from clipboard |
+-----------------------------------------+----------------------------------+
| `short\_commands <./docs/configuration. | Use passpie commands with short |
| md#short_commands>`__ | aliases. Like ``passpie a`` for |
| | ``passpie add`` |
+-----------------------------------------+----------------------------------+
| `status\_repeated\_passwords\_limit <./ | Repeat credential fullname on |
| docs/configuration.md#status_repeated_p | status list |
| asswords_limit>`__ | |
+-----------------------------------------+----------------------------------+
| `extension <./docs/configuration.md#ext | Credential files configurable |
| ension>`__ | extension |
+-----------------------------------------+----------------------------------+
| `genpass\_pattern <./docs/configuration | Regular expression pattern used |
| .md#genpass_pattern>`__ | to generate random passwords |
+-----------------------------------------+----------------------------------+
| `headers <./docs/configuration.md#heade | Credential columns to be printed |
| rs>`__ | |
+-----------------------------------------+----------------------------------+
| `table\_format <./docs/configuration.md | Defines how the Table is |
| #table_format>`__ | formated |
+-----------------------------------------+----------------------------------+
| `colors <./docs/configuration.md#colors | Column data colors |
| >`__ | |
+-----------------------------------------+----------------------------------+

More configuration details on `configuring
passpie <./docs/configuration.md>`__

Tutorials
---------

- `Diving into *fullname* syntax <./docs/fullname.md>`__
- `Grouping Credentials <./docs/grouping.md>`__
- `Multiple Databases <./docs/multiple_databases.md>`__
- `Syncing Credentials <./docs/syncing.md>`__
- `Version Control With Git <./docs/syncing.md>`__
- `Exporting Credentials <#>`__
- `Importing Credentials <./docs/importing.md>`__
- `Contributing <./docs/contributing.md>`__

Common issues
-------------

GPG not installed. https://www.gnupg.org/
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

You don't have gpg installed or it is not working as expected

Make sure you have `gpg <https://www.gnupg.org/>`__ installed:

Ubuntu:

::

sudo apt-get install gpg

OSX:

::

brew install gpg

xclip or xsel not installed
^^^^^^^^^^^^^^^^^^^^^^^^^^^

You don't have *copy to clipboard* support by default on some linux
distributions.

Ubuntu:

::

sudo apt-get install xclip

passpie init hangs
^^^^^^^^^^^^^^^^^^

Sometimes it takes a long time because of entropy on the host machine.
It was noticed a long time on an ubuntu server(even more if it is a
virtual machine). You could try using ``haveged`` to generate enough
entropy.

On ubuntu:

::

sudo apt-get install haveged

Licence |license|
-----------------

Copyright (c) 2014-2016 Marcwebbie, http://github.com/marcwebbie

Full license here: `LICENSE <./LICENSE>`__

.. |Passpie console interface| image:: https://github.com/marcwebbie/passpie/raw/master/images/passpie.png
.. |pypi| image:: https://img.shields.io/pypi/v/passpie.svg?style=flat-square&label=latest%20version
:target: https://pypi.python.org/pypi/passpie
.. |unix\_build| image:: https://img.shields.io/travis/marcwebbie/passpie/master.svg?style=flat-square&label=unix%20build
:target: https://travis-ci.org/marcwebbie/passpie
.. |windows\_build| image:: https://img.shields.io/appveyor/ci/marcwebbie/passpie.svg?style=flat-square&label=windows%20build
:target: https://ci.appveyor.com/project/marcwebbie/passpie
.. |coverage| image:: https://img.shields.io/codecov/c/github/marcwebbie/passpie.svg?style=flat-square&label=coverage
:target: https://codecov.io/github/marcwebbie/passpie
.. |license| image:: http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square
:target: ./LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

passpie-1.0.1.tar.gz (26.3 kB view hashes)

Uploaded Source

Built Distribution

passpie-1.0.1-py2.py3-none-any.whl (37.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page