Giter VIP home page Giter VIP logo

passtis's Introduction

Passtis

GnuPG-based command line password manager, greatly inspired by pass.

Why?

Because I liked pass idea of a GnuPG-based password vault, but I was frustrated by its very simplistic storage format with which it's impossible to store metadata along with passwords in a simple usable way.

ToDo

  • check if clipboard is available
  • find a workaround for when clipboard is not available
  • support arbitrary fields
  • support configuration file (for example, to store custom password specs)

Installation

Dependencies

  • Python >= 2.6
  • python-gnupg
  • pyperclip
  • argparse

Installing manually

Make sure you've got all the dependencies installed, andopy the passtis.py script somewhere in your PATH.

Installing using setup.py

$ sudo python setup.py install

Installing using pip

TODO

Usage

  • Initialize the password store
$ passtis init 13E22663
New store created: /home/user/.passtis-store
  • Add a new entry (password input)
$ passtis add -u user -U http://example.com -c 'very password, much secure' example.com
Password: 
Confirm password:
  • Add a new entry (generated password)
$ passtis add -u user -U https://github.com github.com --generate
new password copied to clipboard (will be cleared in 30s)
  • Add a new entry (specific group)
$ passtis add -u user -U https://wiki.workplace.com -g work wiki.workplace.com
Password: 
Confirm password:
  • List entries
$ passtis list
[Password Store]
├── default
│   ├── example.com
│   ├── github.com
│   └── google.com
├── social
│   ├── facebook.com
│   └── twitter.com
└── work
    ├── gitlab.workplace.com
    ├── wiki.workplace.com
    └── workplace.com
  • List entries (only specific groups)
$ passtis list -G work social
[Password Store]
├── social
│   ├── facebook.com
│   └── twitter.com
└── work
    ├── gitlab.workplace.com
    ├── wiki.workplace.com
    └── workplace.com
  • Get an entry's content
$ passtis get example.com
---------- default/example.com ----------
URI      : http//example.com
Username : user
Comment  : very password, much secure
-----------------------------------------
password copied to clipboard (will be cleared in 30s)
  • Get an entry's content (specific group)
$ passtis get -g work wiki.workplace.com
---------- work/wiki.workplace.com ----------
URI      : http//wiki.workplace.com
Username : user
Comment  : 
---------------------------------------------
password copied to clipboard (will be cleared in 30s)
  • Get an entry's content (display password)
$ passtis get -e example.com
---------- default/example.com ----------
URI      : http//example.com
Username : user
Comment  : very password, much secure
Password : password
-----------------------------------------

Full help

usage: passtis [-h] [-v] [-d DIR] [-V] {init,add,del,list,get} ...

Passtis - Command line password manager.

positional arguments:
  {init,add,del,list,get}
    init                initialize the password store
    add                 add a new entry
    del                 delete an entry
    list                list store entries
    get                 fetch an entry from the store

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -d DIR, --dir DIR     store location
  -V, --verbose         display GnuPG debug information

init

usage: passtis init [-h] key_id

positional arguments:
  key_id      ID of the key used for encrypting the store

optional arguments:
  -h, --help  show this help message and exit

add

usage: passtis add [-h] [-u USER] [-U URI] [-c COMMENT] [-g GROUP]
                   [--generate]
                   name

positional arguments:
  name                  entry name

optional arguments:
  -h, --help            show this help message and exit
  -u USER, --user USER  user name
  -U URI, --uri URI     resource URI
  -c COMMENT, --comment COMMENT
                        additional entry information
  -g GROUP, --group GROUP
                        group the entry belongs to
  --generate            generate random password

del

usage: passtis del [-h] [-g GROUP] [-y] name

positional arguments:
  name                  entry name

optional arguments:
  -h, --help            show this help message and exit
  -g GROUP, --group GROUP
                        group the entry belongs to
  -y, --yes             do not ask for confirmation

list

usage: passtis list [-h] [-G GROUP [GROUP ...]]

optional arguments:
  -h, --help            show this help message and exit
  -G GROUP [GROUP ...], --groups GROUP [GROUP ...]
                        only display entries from given groups

get

usage: passtis get [-h] [-g GROUP] [-e] [-s] name

positional arguments:
  name                  entry name

optional arguments:
  -h, --help            show this help message and exit
  -g GROUP, --group GROUP
                        group the entry belongs to
  -e, --echo            display password instead of copying it to the
                        clipboard
  -s, --silent          do not output anything

Licensing

Passtis is licensed under the GNU General Public License v3 (GPLv3).

passtis's People

Contributors

mdeous avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.