Skills

Protect With Password

Generate ONE strong password and apply it to each referenced file (PDF, Word, Excel...

Install

npx skills add transilienceai/communitytools --skill protect-with-password -g -a claude-code -y
Category
Documents
Updated
3mo ago
License
MIT
Context cost
Lightabout 512 tokens
Runs scripts
No, instructions only

What it does

Generate ONE strong password and apply it to each referenced file (PDF, Word, Excel, PowerPoint, or any type). Use when asked to password-protect / encrypt / lock one or more deliverable files with a single password before sharing.

Protect With Password

Mint a single strong password and password-protect every referenced file with it, "accordingly" per file type. Deterministic, non-destructive (originals are never touched), AES-256 or nothing.

Run it

python3 tools/protect_with_password.py FILE [FILE ...] \
    [--password PW] [--length 24] [--out-dir DIR] \
    [--password-file PATH | --no-password-file]
  • Pass every file the user referenced as positional arguments.
  • By default a strong password is generated (--password overrides to reuse one).
  • Protected copies are written alongside each input, or into --out-dir.
  • The tool prints a JSON summary on stdout and a password banner on stderr, and (unless --no-password-file) writes the password to a chmod-600 PROTECT-PASSWORD.txt.

How each type is protected

FileProtectionResult
.pdfNative AES-256 (qpdf → pypdf fallback)<name>-protected.pdf, recipient is prompted for the password on open
.docx/.xlsx/.pptx, .doc/.xls/.ppt, images, anything elseAES-256 7-Zip archive (-mhe=on, filenames encrypted)<name>.7z, recipient extracts with the password (7-Zip / Keka / WinRAR)

Native in-file Office (MS-OFFCRYPTO "agile") encryption needs LibreOffice or a dedicated encryptor that is not bundled here, so Office files are wrapped in a strong AES-256 archive instead. If no AES-256 tool is available for a file, it is reported as a failure, never downgraded to weak ZipCrypto/RC4 (no false assurance).

After running

Relay the password to the user and remind them to share it OUT-OF-BAND, never in the same channel/email as the protected files, and to delete PROTECT-PASSWORD.txt once handed over. Exit code is 0 only if every file was protected; 1 if any failed (check results[].reason).

Read the whole SKILL.md on GitHub

More in Documents