Command Line Interface to Password Pusher - secure information distribution with automatic expiration controls.
Project description
pwpush CLI
The elegant way to share secrets from the command line.
Self-destructing links for passwords, files, and sensitive data.
What is pwpush?
pwpush is a beautiful, intuitive CLI for Password Pusher — the secure way to share passwords, secrets, and files. Instead of sending sensitive data over email or Slack, create self-destructing links that automatically expire after a set number of views or days.
# Share a password securely
$ pwpush push --secret "my-sensitive-payload"
The secret has been pushed to:
https://us.pwpush.com/p/abc123xyz
# Or pipe in content from a file or command
$ cat secret.txt | pwpush push
The secret has been pushed to:
https://us.pwpush.com/p/xyz789abc
Installation
pip install pwpush
Requires Python 3.10 or higher.
Quick Start
1. Run the Config Wizard 🧙
The easiest way to get started. The wizard guides you through selecting your instance, setting up authentication, and configuring defaults:
$ pwpush config wizard
Password Pusher CLI Setup
This wizard will create your local pwpush configuration.
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Option ┃ Instance ┃ Description ┃
┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 1 │ https://eu.pwpush.com │ EU hosted: Pro features │
│ 2 │ https://us.pwpush.com │ US hosted: Pro features │
│ 3 │ https://oss.pwpush.com│ OSS: EU Data Residency │
│ 4 │ Custom │ Self-hosted instance │
└────────┴───────────────────────┴─────────────────────────┘
2. Push Your First Secret
# Interactive mode — just type and go
$ pwpush push
Enter secret: ********
The secret has been pushed to:
https://pwpush.com/p/xyz789abc
# Or pass it directly
$ pwpush push --secret "my-password" --days 3 --views 5
# Auto-generate a secure password
$ pwpush push --auto
Passphrase is: battery horse staple correct
https://pwpush.com/p/auto123gen
3. Share Files
$ pwpush push-file secret-document.pdf --days 7
https://pwpush.com/f/file456token
Why pwpush?
🔐 Security First
- Zero permanent storage — data is encrypted and auto-deleted
- Full audit trails — see exactly who accessed what and when
- Prevent URL scanners with
--retrieval-step
✨ Developer Experience
- Auto-negotiating API — seamlessly works with v2 and legacy instances
- Beautiful output — rich tables, colors, and formatting
- JSON mode — perfect for scripts and CI/CD pipelines
🌍 Multi-Instance Support
Works with hosted services or your own instance:
eu.pwpush.com— EU-hosted Prous.pwpush.com— US-hosted Prooss.pwpush.com— Free OSS tier- Self-hosted — Your own domain
Everyday Commands
# Quick password share
pwpush push --secret "db-password" --days 1 --views 3
# Share a link as a clickable URL
pwpush push --secret "https://staging.example.com" --kind url
# Push with a reference note (for your records)
pwpush push --secret "password" --note "AWS Root - Production"
# List your active pushes
pwpush list
# View audit trail
pwpush audit <url_token>
# Expire a push immediately
pwpush expire <url_token>
Pro Features
For Password Pusher Pro users with authenticated access:
# Email notifications when push is accessed
pwpush push --secret "password" --notify "admin@company.com"
# Multi-language notifications
pwpush push --secret "password" --notify "admin@company.com" --notify-locale "es"
# Multiple accounts per API token (automatically detected)
Configuration
The CLI stores settings in ~/.config/pwpush/config.ini with restricted permissions (0o600):
# Guided setup (recommended)
pwpush config wizard
# View current settings
pwpush config
# Quick updates
pwpush config set expire_after_days 7
pwpush config set expire_after_views 10
# Reset everything
pwpush config delete
Advanced Usage
JSON Output for Scripting
# Perfect for automation
$ pwpush --json push --secret "password"
{"url":"https://pwpush.com/p/abc123","url_token":"abc123","expire_after_days":7}
# Chain with other tools
$ pwpush --json push --auto | jq -r '.url' | pbcopy
Pipe Input
# Pipe passwords directly
cat secret.txt | pwpush push
# From environment variables
pwpush push --secret "$DATABASE_PASSWORD"
Debug Mode
# Troubleshoot connectivity
pwpush --debug push --secret "test"
API Compatibility
The CLI automatically detects your instance's API version:
- Probes
GET /api/v2/versionon first run - Uses API v2 if available (modern, feature-rich)
- Falls back to legacy endpoints for older instances
- Caches the result for 1 hour to avoid repeated probes
Works with:
- ✅ Password Pusher Pro (any version)
- ✅ Open Source v2.4.2+ with API v2
- ✅ Older instances via legacy fallback
Security Notes
- All data is encrypted in transit (HTTPS) and at rest
- Content is permanently deleted after expiration
- API tokens are stored with 0o600 permissions
- Use
--retrieval-stepto prevent bot consumption - Passphrase protection available with
--passphrase
Links & Resources
| Resource | Link |
|---|---|
| 📖 Full Documentation | docs.pwpush.com |
| 🌐 Password Pusher | pwpush.com |
| 💻 Open Source Project | github.com/pglombardo/PasswordPusher |
| 🐛 Issue Tracker | github.com/pglombardo/pwpush-cli/issues |
About
Built by Apnotic — empowering secure information distribution.
- Homepage: apnotic.com
- SaaS: pwpush.com
- License: MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pwpush-0.15.0.tar.gz.
File metadata
- Download URL: pwpush-0.15.0.tar.gz
- Upload date:
- Size: 30.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.14.0 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d55adff52ce99d9d1a392a0ee89fc73fe85ddc43cbd2fb432132424d7afa8e0
|
|
| MD5 |
5d923edbebc20498528cd680629e5e72
|
|
| BLAKE2b-256 |
0815a217e09ad593677e084e113cf5cdf22df83ac6abe8290312b2047cd7cc62
|
File details
Details for the file pwpush-0.15.0-py3-none-any.whl.
File metadata
- Download URL: pwpush-0.15.0-py3-none-any.whl
- Upload date:
- Size: 34.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.14.0 Darwin/23.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ea66ec8830e068b9e91ac7dce30059357d96fa24b8e2d9ea7c396215e918d5d
|
|
| MD5 |
94eac964cac92740a4005cbebf0a6659
|
|
| BLAKE2b-256 |
80a171ee20818991e1ee465d7945ae87c4fe00e73cfd9c0371d83478ff86261f
|