Metadata-Version: 2.4
Name: fastword
Version: 0.2.1
Summary: A secure local password manager with PyQt6
Author: Nolan Coe
License: MIT License
        
        Copyright (c) 2025 Nolan Coe
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyQt6
Requires-Dist: cryptography
Requires-Dist: argon2-cffi
Dynamic: license-file

# Fastword

**Fastword** is a secure, offline password manager with a PyQt6 GUI. It allows users to generate and store strong passwords locally using AES-GCM encryption, with support for a master password and a 12-word mnemonic recovery phrase.

---

## Features

- Local-only storage (no cloud, no tracking)
- AES-GCM encryption with Argon2 key derivation
- 12-word recovery phrase for master password resets
- Auto sign-out timer
- Built-in password generator
- Update master password from settings
- Easy-to-use GUI built with PyQt6
- Cross-platform executable support (coming soon)

---

## Installation

### From PyPI

```
pip install fastword
```

Then run it with:

```
fastword
```


---

## Running from Source

Clone the repo:

```bash
git clone https://github.com/nolancoe/fastword.git
cd fastword
pip install -r requirements.txt
python -m fastword.main
```

---

## Usage

1. On first launch, you’ll be prompted to set a master password.
2. You'll be shown a 12-word recovery phrase — **WRITE IT DOWN!** This is your only way back in if you forget your master password. If you lose this, and forget your master password, there is no way to access your password vault!
3. Add, view, and manage your credentials securely.

---

## Resetting Your Vault

If you forget your master password:
- Launch the app and click **"Forgot Password"**
- Enter your 12-word recovery phrase
- Set a new master password
- Your vault will be re-encrypted using the new key

---

## Security Notes

- All passwords are encrypted with AES-GCM using a key derived from your master password via Argon2id
- The recovery phrase is used to derive a key that wraps the master key using symmetric encryption
- No data is ever transmitted over the internet — 100% local
- Decryption keys never leave memory during execution

---

## Requirements

- Python 3.10+
- PyQt6
- cryptography
- argon2-cffi

Install dependencies with:

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

---

## Packaging into Executables

Coming soon! Support for `.exe`, `.app`, and `.AppImage` builds using PyInstaller or fbs.

---

## Contributing

Pull requests welcome!

---

## License

MIT License

---
