Skip to main content

CLPM: A Command-Line Password Manager.

Table of Contents

  1. About
  2. Installation
    1. Requirements
    2. Regular Install
    3. Local/Manual Install
    4. Uninstall
  3. Usage
    1. Add Account
    2. Remove Account
    3. Query Database
    4. Reset
  4. TODO

About

CLPM is a is an easy-to-use out-of-the-box password manager accesible solely through the command-line. The passwords are encrypted using 256 bit AES and the master password is hashed using 256 bit SHA-3. The master password is used to generate a key for encryption and for accessing the accounts. The accounts are stored in a local SQL database.

Installation

Requirements

  • python >= 3.9
  • pip >= 21.1.2

Automatically installed by pip:

  • Click >= 8.1.3
  • pycryptodome >= 3.14.1
  • prettytable >= 3.3.0

Regular Install

For most, installing this project can be done running pip install clpm, which pulls the project from PyPI.

Local/Manual Install

If needed, this project can be installed and run locally:

  1. Clone this project to a local repository.
  2. Run python setup.py install Note: setup.py uses pip to install the project as a package on the local system

Uninstall

To uninstall this project, for both remote and local installations, run pip uninstall clpm

If clpm has been already been initialized, pip won't delete the file passwords.db which contains all stored account information. This means that clpm can be reinstalled and still retain the same accounts & master password. If you wish to completely remove clpm from your device, you must manually remove passwords.db by either using the rm command or a file explorer.

Usage

Run clpm init to initialize the database. A prompt & confirmation will appear to input a master password. The master password is required for to access the database for all commands. In fact, all commands - including init - accept a --password argument for the master password instead of a prompt.

Note: clpm will not work unless a master password is set through clpm init first.

Add Account

To add an account to the database, run clpm add. After a prompt to input the master password, a menu will appear that requests input for account name, username, email, tag and password. Bolded fields are required. If the field is not required, press Enter to leave it empty. At any point, press q to terminate the command.

Each Account includes an automatically generated id that iterates for each added account.

Remove Account

To remove an account from the database, run clpm delete ID where ID is the accounts id. Once again, a prompt to input the master password will appear.

Query Database

To query the database, run clpm query. This command alone will simply output all accounts and information. Use arguments to search by attributes:

  1. -l/--all serve the same purpose as clpm query with no arguments.
  2. -a/--accounts ACCOUNT search for accounts with the account field ACCOUNT.
  3. -t/--tags TAG search for accounts that with the tag field TAG.
  4. -i/--ids ID retrieves the acccount with an id field of ID.

Reset

To reset the database (i.e, remove all accounts and master password), run clpm reset. A confirmation prompt as well as a master password prompt will appear. This will clear passwords.db but leave the file on the system.

Note: after reset, clpm will not work unless it is reinitialized.

TODO

  • Encrypt all account information rather than just passwords.
  • Revamp menu.
  • Fix double init/reset error.
  • Clear terminal history after query/add.

Metadata

Release files for clpm 1.3.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clpm 1.3.6
File Size Uploaded Provenance Actions
clpm-1.3.6.tar.gz 7.3 kB Without provenance Details for clpm-1.3.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for clpm 1.3.6
File Interpreter ABI Platform Actions
clpm-1.3.6-py3-none-any.whl Python 3 none any Details for clpm-1.3.6-py3-none-any.whl

Total release size: 14.8 kB

Release files / clpm-1.3.6.tar.gz

Download URL clpm-1.3.6.tar.gz
Size 7.3 kB
Tags Source
SHA-256 checksum
How to use checksums
6ca1529f5c2e31be12da9470ea6b307ff39c4f24ce87144dba5b8743550718d8
BLAKE2b-256 checksum
How to use checksums
d8f92643a222b049f3eea9b5a876646a3ba694fa7c2ab752636f2554a5c8e4b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Release files / clpm-1.3.6-py3-none-any.whl

Download URL clpm-1.3.6-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3879db872b2eb47d2b2b9025aa7365024c1878a05bfa5ddccde76aa30df80e3b
BLAKE2b-256 checksum
How to use checksums
6ca3a4dc5e77a0554821034882e84a373d232fdcd06f51221e9496905703f616
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

Security for clpm 1.3.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page