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 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
Randomizing credentials:
.. code:: fish
# Adding credential with random password pattern
passpie add john.doe@example.com --random --pattern '[0-9]{5}[a-z]{5}'
# Updating credential with random password pattern
passpie update john.doe@example.com --random --pattern "[0-9\#\$\%\w\ ]{32}"
# Adding credential with random password and copy generated password to clipboard
passpie add john.doe@example.com --copy --random --pattern '[0-9]{5}[a-z]{5}'
Playing with *volatile* database.
.. code:: fish
# Listing credentials from a remote database
passpie -D https://foo@example.com/user/repo.git
# Adding credentials to a remote database and autopushing changes
passpie -D https://foo@example.com/user/repo.git --autopush "origin/master" add foo+nouveau@example.com
# Exporting environment variables
export PASSPIE_DATABASE=https://foo@example.com/user/repo.git
export PASSPIE_AUTOPULL=origin/master
export PASSPIE_AUTOPUSH=origin/master
# List remote credentials
passpie
# Copy remote `foo@example.com` password
passpie copy foo@example.com
# Add credential with random password directly to remote
passpie add foo+nouveau@example.com --random --pattern "[0-9\#\$\%\w\ ]{32}"
passpie add foo+nouveau@example.com --random --pattern "[0-9\#\$\%\w\ ]{32}"
--------------
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-hypernode.com/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
===============================================
|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 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
Randomizing credentials:
.. code:: fish
# Adding credential with random password pattern
passpie add john.doe@example.com --random --pattern '[0-9]{5}[a-z]{5}'
# Updating credential with random password pattern
passpie update john.doe@example.com --random --pattern "[0-9\#\$\%\w\ ]{32}"
# Adding credential with random password and copy generated password to clipboard
passpie add john.doe@example.com --copy --random --pattern '[0-9]{5}[a-z]{5}'
Playing with *volatile* database.
.. code:: fish
# Listing credentials from a remote database
passpie -D https://foo@example.com/user/repo.git
# Adding credentials to a remote database and autopushing changes
passpie -D https://foo@example.com/user/repo.git --autopush "origin/master" add foo+nouveau@example.com
# Exporting environment variables
export PASSPIE_DATABASE=https://foo@example.com/user/repo.git
export PASSPIE_AUTOPULL=origin/master
export PASSPIE_AUTOPUSH=origin/master
# List remote credentials
passpie
# Copy remote `foo@example.com` password
passpie copy foo@example.com
# Add credential with random password directly to remote
passpie add foo+nouveau@example.com --random --pattern "[0-9\#\$\%\w\ ]{32}"
passpie add foo+nouveau@example.com --random --pattern "[0-9\#\$\%\w\ ]{32}"
--------------
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-hypernode.com/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
Release history Release notifications | RSS feed
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.1.0.tar.gz
(28.1 kB
view details)
Built Distribution
File details
Details for the file passpie-1.1.0.tar.gz
.
File metadata
- Download URL: passpie-1.1.0.tar.gz
- Upload date:
- Size: 28.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 53e491cb3127b9295e86a08cb3a3c2fe0ad70965474b1a583b7533951c5a418c |
|
MD5 | 88a1d499d96a8dd82708d4acf27df769 |
|
BLAKE2b-256 | 76af470966c152b671ca66225c5bc9c79e2fd187c31d623360133bb18278de46 |
Provenance
File details
Details for the file passpie-1.1.0-py2.py3-none-any.whl
.
File metadata
- Download URL: passpie-1.1.0-py2.py3-none-any.whl
- Upload date:
- Size: 39.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0f7a5f56e4ddc86f0dbcd7e6a2f4b1d0cc88578397bd83084d72d1598777bb8 |
|
MD5 | 1a39ce0b0b1b2457d4c1d8a3f8f00765 |
|
BLAKE2b-256 | 4329c1147f29bce12f63658356c87720d8695373ba719b30cbf6c62afb1d2cc8 |