Files
dotfiles/pass-templates/README.md
T
David F GliddenandClaude 389febb161 🚀 Complete machine migration setup with encrypted backups
- Added comprehensive configuration files for seamless migration
- SSH, GPG, Karabiner, iTerm2, Neofetch, SwiftBar configs
- Pass license management system with templates and documentation
- Enhanced shell functions with MAS updates and moon phase tracking
- Comprehensive encrypted backup system (GPG AES256)
- Included encrypted backups of all sensitive data
- BBEdit as default editor with proper configuration
- Fixed shell compatibility issues
- Merged existing .zsh configs with improvements

Security:
- All sensitive data is GPG encrypted (.gpg files)
- Private keys excluded from version control
- Only configs and encrypted backups are tracked

Following prime directive: durable, thoughtful solutions

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-28 23:10:36 +02:00

4.2 KiB

Pass License Management

A thoughtful, durable solution for managing software licenses and sensitive text data using the Unix philosophy.

Overview

Pass (the standard Unix password manager) uses GPG encryption to securely store licenses, API keys, and other sensitive information. Everything is stored as GPG-encrypted files in ~/.password-store/, making it version-controllable and portable.

Initial Setup

Pass is already configured with your GPG key. If you need to reinitialize:

pass init YOUR-GPG-KEY-ID

Daily Workflow

Adding New Licenses

Method 1: Using the helper script (recommended)

new-license "AppName"
# Opens BBEdit with the license template

Method 2: Direct entry

pass edit licenses/AppName
# Opens BBEdit with a blank file

Method 3: Quick single-line entry

echo "LICENSE-KEY-HERE" | pass insert licenses/AppName

Viewing Licenses

# List all licenses
pass ls licenses/

# View specific license
pass show licenses/BBEdit

# Copy license key to clipboard (first line only)
pass -c licenses/BBEdit

# Copy specific line to clipboard (e.g., line 2)
pass show licenses/BBEdit | sed -n '2p' | pbcopy

Searching Licenses

# Search across all stored data
pass grep "adobe"
pass grep "scanner"

Editing Existing Licenses

pass edit licenses/AppName
# Opens in BBEdit for editing

Removing Licenses

# Remove single license
pass rm licenses/AppName

# Remove with confirmation prompt
pass rm -i licenses/AppName

Organization Structure

Recommended hierarchy for different types of sensitive data:

~/.password-store/
├── licenses/
│   ├── adobe/
│   │   ├── photoshop
│   │   └── illustrator
│   ├── microsoft/
│   │   └── office
│   ├── BBEdit
│   ├── VueScan
│   └── Bartender
├── api-keys/
│   ├── github
│   ├── openai
│   └── stripe
└── servers/
    ├── production
    └── staging

Create subdirectories as needed:

pass insert licenses/adobe/photoshop
pass insert api-keys/github

License Template

The template at ~/dotfiles/pass-templates/license-template.txt contains:

Application: APPLICATION_NAME
License Key: LICENSE_KEY_HERE
Email: REGISTERED_EMAIL
Name: REGISTERED_NAME
Purchase Date: YYYY-MM-DD
Purchase Price: $AMOUNT
Vendor: VENDOR_NAME
Notes: Any additional notes about the license

Integration with Notes.app

For redundancy, you can keep copies in Notes.app:

  1. Create a "Software Licenses" folder in Notes
  2. Create secure notes (lock icon) for each license
  3. This provides iCloud sync and an additional backup

Backup Strategy

Your Pass data is backed up in three ways:

  1. Encrypted in dotfiles backup: ~/dotfiles/backups/complete/all_secrets_*.tar.gz.gpg
  2. Version controlled: Can add ~/.password-store/ to git
  3. Manual backup: tar -czf pass-backup.tar.gz ~/.password-store/

Advanced Usage

Generate passwords

pass generate accounts/example.com 20

Git integration

cd ~/.password-store
git init
git add .
git commit -m "Initial pass store"

Multiple line clipboard

# Copy email from license entry
pass show licenses/BBEdit | grep "Email:" | cut -d' ' -f2 | pbcopy

Temporary display (clears after 45 seconds)

pass show -c licenses/BBEdit

Troubleshooting

BBEdit doesn't wait: Ensure EDITOR="bbedit -w" is set in your shell

GPG key issues: Check with gpg --list-secret-keys

Can't decrypt: Ensure GPG agent is running: gpgconf --launch gpg-agent

Security Notes

  • All data is encrypted with your GPG key
  • Temporary files are created in secure locations and cleaned up
  • Clipboard is cleared after 45 seconds when using -c
  • Never commit .password-store/ to public repositories

Prime Directive Alignment

This solution embodies μέτρον (measure and proportion):

  • Durable: Plain text files, GPG encryption, Unix philosophy
  • Thoughtful: Organized structure, templates for consistency
  • Portable: Works on any system with GPG and pass
  • Secure: Industry-standard encryption, no proprietary formats