https://github.com/marconae/tinypw
Yet another tiny CLI tool to generate passwords. Written in Rust 🦀
https://github.com/marconae/tinypw
command-line password password-generator passwords
Last synced: 20 days ago
JSON representation
Yet another tiny CLI tool to generate passwords. Written in Rust 🦀
- Host: GitHub
- URL: https://github.com/marconae/tinypw
- Owner: marconae
- License: mit
- Created: 2025-09-02T13:53:51.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-02-08T20:12:36.000Z (2 months ago)
- Last Synced: 2026-02-09T00:49:38.220Z (2 months ago)
- Topics: command-line, password, password-generator, passwords
- Language: Rust
- Homepage:
- Size: 51.8 KB
- Stars: 13
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-csirt - tinypw
README
# tinypw
 [](https://codecov.io/gh/marconae/tinypw)
A tiny, fast CLI tool to generate random passwords.
---
## Motivation
I wanted to learn Rust. Additionally, I often need to quickly generate passwords, and since I usually work in a
terminal, a CLI tool is highly convenient.
## Usage
Default behaviour:
```
> tinypw
Password: GLkuLb(RsK55Y(Y8
[███████████████░░░░░░░░░] 63.7% good 🙂
```
Set the length with `tinypw -l 20`:
```
> tinypw -l 20
Password: Fphb5nCbg6XZscn$5zD*
[██████████████████████░░] 90.8% strong 😎
```
Define the character set with `-m ` where mode is a combination of letters:
- `u` = include uppercase `A–Z`
- `l` = include lowercase `a–z`
- `n` = include digits `0–9`
- `s` = include symbols `!#$&()*+/`
- `e` = exclude similar-looking characters: `i l 1 o 0 O`
Example: just lowercase letters and numbers:
```
> tinypw -l 20 -m ln
Password: hzdtx57jj2horb0x8dqh
[█████████████████████░░░] 86.8% strong 😎
```
Add extra characters with `-x `.
Example: length 20, use uppercase, lowercase and numbers and also include `;:?!"'`
```
> tinypw -l 20 -m uln -x ";:?\!\"'"
Password: wlw7qp!9fEnataRS7ap:
[█████████████████████░░░] 86.8% strong 😎
```
Copy to clipboard with `-c`:
```
> tinypw -c
Password: HLCY2vvsanaQurdG
[████████████████░░░░░░░░] 67.7% strong 😎
Password copied to clipboard.
```
Quiet mode: print only the password with `-q`:
```
> tinypw -q
HLCY2vvsanaQurdG
```
## Planned for the future
- [x] Support for quiet mode and just return the password
- [ ] Generate multiple passwords with parameter `-n`
## Defaults
- Length: 16
- Mode: `ulnse` (upper, lower, numbers, symbols; exclude similar)
- Similar-looking characters excluded set: `il1o0O`
- Symbols used: `!#$&()*+/`
## Install
With Rust installed: clone this repository and run `cargo install --path .`.
## How it works (brief)
- The CLI parses flags using the `clap` crate.
- It builds a base character set from your chosen mode, optionally excluding similar characters and adding extra chars.
- A password is generated by sampling uniformly at random from that base set for the chosen length using crate `rand`.
## License
[MIT](LICENSE)
---
Build with Rust 🦀 and made with ❤️ by [marconae](https://deliberate.codes).