Skip to content

Latest commit

 

History

History
133 lines (89 loc) · 2.39 KB

File metadata and controls

133 lines (89 loc) · 2.39 KB

PyCipher

PyCipher is a focused local password manager for Python. It stores passwords in an encrypted vault protected by a master password, and it also includes a strong password generator for day to day CLI use.

The goal of the project is simple: keep password management local, scriptable, and easy to trust.

Features

  • Encrypted local vault backed by cryptography
  • Master-password unlock flow
  • CLI commands to initialize, add, retrieve, list, and remove entries
  • Secure password generation with policy controls
  • Ambiguous character filtering for safer manual use
  • Installable package with a pycipher command
  • Test coverage for password generation and vault handling

Requirements

  • Python 3.11+
  • cryptography

Installation

pip install .

After installation, use:

pycipher --help

You can also run the compatibility entrypoint:

python main.py --help

Quick Start

Create a new encrypted vault:

pycipher init

Generate a password without storing it:

pycipher generate --length 24

Store a generated password in the vault:

pycipher add github --username alex@example.com --generate --length 24

List stored services:

pycipher list

Retrieve an entry:

pycipher get github --show-password

Remove an entry:

pycipher remove github

Vault Location

By default the vault is stored at:

~/.pycipher/vault.json

You can override it with --vault:

pycipher --vault /path/to/vault.json list

Password Generation Options

PyCipher supports practical password policies:

  • --length
  • --no-lowercase
  • --no-uppercase
  • --no-digits
  • --no-symbols
  • --allow-ambiguous

Example:

pycipher generate --length 32 --no-symbols

Security Notes

  • The vault is encrypted locally before being written to disk.
  • Master passwords are never stored in the repository or config files.
  • Vault files are written with restrictive permissions when supported by the host OS.
  • PyCipher is designed as a local CLI tool, not a cloud sync service.

Development

Run the test suite with:

PYTHONPATH=src python -m unittest discover -s tests

Roadmap

  • Entry update command
  • Tags and search filters
  • Clipboard integration with timed clear
  • Import and export helpers for migration

License

This project is licensed under the MIT License.