Skip to main content

Terminal Vault CLI for secure notes with tagging and search capabilities

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.1.tar.gz (12.1 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.1-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for terminal_vault-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1287bf70ce14f69f140b1271e2c7bc5f70c557b8525dcaa14a34862f4c4a0d42
MD5 22c54954b4862159eaeee5eee34341cd
BLAKE2b-256 6d91f49d0b8b01c4fb43a55396b29d726b4f3a14b9d2ea6778e616f9b4b1f38c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for terminal_vault-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 76a0205f20351516ba0d3eba3d1b2b131951b25232821c6498fe1ce154612e5c
MD5 1a89dd4d0b6d4c4aa3bb7efb7ef1afa8
BLAKE2b-256 626b1be28e9cf2d4cf2bf5b01aa78a8fc3cf3f3165901d566b41108e3f325200

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