Metadata-Version: 2.4
Name: revault-cli
Version: 1.0.0
Summary: CLI password manager for server credentials with SSH connector
License: MIT
Project-URL: Homepage, https://github.com/sufi-an/re-vault
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: typer>=0.9.0
Requires-Dist: cryptography>=41.0.3
Requires-Dist: pexpect>=4.8.0; sys_platform != "win32"
Requires-Dist: paramiko>=3.4.0

Author was lost in a sea of server credentials, brain.exe could not handle so much info
Wrote a password manager to store server credentails(Yes, ENCRYPTED)
then thought why should I connect.
so 
re-valut connect myserver :)

## Install

### macOS (Homebrew)
```bash
brew tap sufi-an/re-vault
brew install re-vault
```

### Linux / macOS (pip / pipx)
```bash
# pipx keeps it isolated (recommended)
pipx install revault-cli

# or plain pip
pip install revault-cli
```

Then use `re-vault` instead of `python cli.py`:
```bash
re-vault add myserver
re-vault connect myserver
```

> **apt install:** Not yet in official Debian/Ubuntu repos (that process takes months).
> Use `pip`/`pipx` on Linux for now.

---

## Windows .exe

**Quick test (run on your Windows machine):**
```bat
build.bat
dist\passkeeper.exe add myserver
```

**Automated releases:** push a version tag and GitHub Actions builds + attaches the exe to the release automatically.
```bash
git tag v1.0.0 && git push origin v1.0.0
```

---

## How to use

### Install

```bash
pip install -r requirements.txt
```

### Commands

Each command prompts for your **master password** (it is never stored). The vault
lives at `~/.passkeeper/vault.json` and is locked to your user account on both
Unix (`chmod 0o600`) and Windows (`icacls`).

| Command | What it does |
| --- | --- |
| `python cli.py add <identifier>`     | Prompt for username + password and store them encrypted under `<identifier>`. |
| `python cli.py show <identifier>`    | Decrypt and print the username + password. |
| `python cli.py list`                 | List all stored identifiers. |
| `python cli.py connect <identifier>` | Decrypt the entry and SSH in, auto-sending the password (works on Unix **and** Windows). |
| `python cli.py remove <identifier>`  | Delete a stored entry permanently. |

### Example

```bash
# Store credentials for a server (username should be the full SSH target, e.g. user@host)
$ python cli.py add myserver
Master password:
Username: deploy@198.51.100.10
Password:
Entry 'myserver' added successfully!

# Look them up later
$ python cli.py show myserver
Master password:
Username: deploy@198.51.100.10
Password: ...

# List everything you've stored
$ python cli.py list
Stored entries:
- myserver

# Connect over SSH without typing the password (Unix/macOS/Windows)
$ python cli.py connect myserver
```

> **Note:** On Unix/macOS `connect` uses `pexpect` to drive the system `ssh` binary.
> On Windows it uses `paramiko` to connect directly — no external `ssh` binary needed.
