https://github.com/barturba/fastpw
Fast Terminal Password Manager
https://github.com/barturba/fastpw
Last synced: 5 months ago
JSON representation
Fast Terminal Password Manager
- Host: GitHub
- URL: https://github.com/barturba/fastpw
- Owner: barturba
- Created: 2025-09-06T04:48:26.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-06T06:22:58.000Z (10 months ago)
- Last Synced: 2025-09-06T06:28:03.375Z (10 months ago)
- Language: Shell
- Size: 25.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## FastPW

Fast, minimal CLI to store encrypted logins and copy fields from the terminal.
### Install
- macOS: `brew install charmbracelet/tap/gum jq`
- Ubuntu/Debian: `sudo apt install jq && curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/charm.gpg && echo "deb [signed-by=/usr/share/keyrings/charm.gpg] https://repo.charm.sh/apt/ /" | sudo tee /etc/apt/sources.list.d/charm.list && sudo apt update && sudo apt install gum`
- Fedora: `sudo dnf copr enable charmbracelet/gum && sudo dnf install gum jq`
- WSL/Linux: use your distro package manager
Requirements: Bash, OpenSSL, `jq`, `gum`, and a clipboard tool (`pbcopy`, `wl-copy`, `xclip`, or `xsel`).
### Setup
```bash
bin/fastpw --init # create encrypted store with seed data
```
### Use
Interactive UI:
```bash
bin/fastpw
```
Non-interactive examples:
```bash
bin/fastpw --list
bin/fastpw copy --company "ACME" --login "prod" --field "password"
bin/fastpw company add "ACME"
bin/fastpw login add --company "ACME" --login "prod"
bin/fastpw field set --company "ACME" --login "prod" --field "username" --value "alice"
```
Reset (dangerous):
```bash
bin/fastpw reset
```
### Behavior
- Data is encrypted with OpenSSL AES-256-CBC using PBKDF2 (200k iterations).
- Master password is cached for 8 hours at `~/.fastpw/session.cache`.
- Data file: `~/.fastpw/data.enc.json`.
Env:
- `FASTPW_MASTER` pre-seeds the master password (useful in scripts/CI).
- `FASTPW_TIMEOUT` adds an inactivity timeout (seconds) to interactive prompts.
Run `bin/fastpw --help` for full usage.