Skip to main content

Terminal vault CLI for secure notes

Project description

Terminal Note Vault

A local, offline password security toolkit and note vault.

Security Toolkit Demo (Single Script)

A standalone educational demo for secure password management.

Features

  • Secure Vault: AES-128 (Fernet) encryption with PBKDF2 key derivation.
  • Password Policy: Enforces min 8 chars, alphanumeric (letters + numbers).
  • Input Masking: Asterisks (******) on Windows, hidden input on others.
  • Lockout Manager: Exponential backoff for failed attempts.
  • Batch Mode: Analyze CSV files for password strength.
  • Entropy Estimation: Log2-based strength estimation.

Installation

  1. Install dependencies:
    pip install -r requirements.txt
    

Usage

Run the script directly:

python src/terminal_vault/security_toolkit.py <command> [args]

Commands:

  • init: Initialize a new vault and set a master password.
  • add <name>: Add a new secret.
  • get <name>: Retrieve a secret.
  • check: Check a password against the policy.
  • batch <file.csv>: Batch check passwords from a CSV file.
  • reset-lockout: Reset failed attempt counters.

Security Boundaries (IMPORTANT)

[!WARNING] Educational Demo Only

This toolkit is designed for educational purposes to demonstrate security concepts.

  • Scope: Protects against casual local access and throttled brute-force attacks.
  • Limitations:
    • No Host Protection: Does not protect against malware, keyloggers, or root access.
    • No Memory Protection: Secrets may exist in memory.
    • No Cloud/Sync: Strictly local storage.
    • No Hardware Security: Does not use TPM or Secure Enclave.
    • Recovery: If you lose your Master Password and Recovery Token, data is lost.

Main Application Usage (vault)

The main application is installed as the vault command.

Installation

pip install .

Commands

1. Initialization

Initialize a new vault. You will be prompted to set a username and master password.

vault init

2. User Management

Manage your credentials (username and password).

vault user

3. Reset Password

Reset your master password (requires current password).

vault reset-password

4. Add Entry

Add a new note or secret to the vault.

  • --title: Title of the entry (Required).
  • --tags: Comma-separated tags (Optional).
  • You will be prompted for the Note content (visible input).
vault add --title "My Secret" --tags "work,finance"

5. Retrieve Entries

Search and view entries.

  • --tag: Filter by a specific tag.
  • --search: Search for text in titles.
  • If no arguments are provided, lists all entries.
vault get
vault get --tag "work"
vault get --search "bank"

6. Batch Security Check

Check a CSV file of passwords for security policy violations.

vault check passwords.csv

7. Security Report

Generate a report of the current vault's security health (e.g., weak passwords).

vault report

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

terminal_vault-0.1.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

terminal_vault-0.1.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file terminal_vault-0.1.0.tar.gz.

File metadata

  • Download URL: terminal_vault-0.1.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for terminal_vault-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9c8604b7b90722722acca167405a971e1cdaf2e98f531661972c20f71576f995
MD5 0508663a82db93480e67a3b486d1bcad
BLAKE2b-256 5a517369d73e48087fc16c10b958e0b6a159eca95684a0060cba884935291d48

See more details on using hashes here.

File details

Details for the file terminal_vault-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: terminal_vault-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for terminal_vault-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cadd1141430ce46f9debb9a681798313fb6b331edefd692d3ded465629ee7ef
MD5 be217e1853feee9e40b70227de80b9bd
BLAKE2b-256 b3b8ab98782d3fada3422e1b76b8a742bebb2d65dbc2b76c54cc553ec5e0b849

See more details on using hashes here.

Supported by

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