π’ Firmware β’ πΎ Protobuf β’ π» Host β’ π Chrome β’ π± Android
A minimal host-side command-line client for interacting with TurtlPass hardware devices via USB. Generate passwords, manage cryptographic seeds, and control your TurtlPass device securely and locally β all from the terminal.
- π Automatic Device Detection β Instantly detects connected TurtlPass devices
- π Secure Password Generation β Fully configurable length & charset
- 𧬠Seed Management β Initialize, generate, or restore 512-bit seeds from 24-word BIP-39 mnemonics
- π₯ Factory Reset β Safely reset your device to factory defaults
- π Hardware Security β All cryptography happens on-device; seeds never leave the TurtlPass
- Python 3.8+
- TurtlPass device
- USB cable with data support
git clone https://github.com/TurtlPass/turtlpass-python.git
cd turtlpass-python
pip install -r requirements.txt-
Plug in your TurtlPass device and run:
python turtlpass.py
-
Choose from the interactive menu:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Welcome to TurtlPass! Device detected: /dev/cu.usbmodem14101 Options: 0. <Exit> 1. Get TurtlDevice Information 2. Generate Password on TurtlDevice 3. Initialize TurtlDevice with 512-bit Seed 4. Generate 24-word Mnemonic and Derive 512-bit Seed 5. Restore 512-bit Seed from a 24-word Mnemonic 6. Factory Reset TurtlDevice (β οΈ DANGEROUS) Select an option:
2. Generate Password on TurtlDevice
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Enter desired password length (1-128) [press ENTER to use 100]: 128
Select character set:
1. Numbers (0β9)
2. Letters (aβz, AβZ)
3. Letters + Numbers (aβz, AβZ, 0β9) [default]
4. Letters + Numbers + Symbols (aβz, AβZ, 0β9, symbols)
Choose charset [press ENTER to use default]: 4
Enter Domain Name (e.g. 'google'): github
Enter Account ID (e.g. 'user@example.com'): turtlpass@ryanamaral.com
Enter PIN (e.g. '704713'): ******
β
Password successfully generated
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
All passwords are generated on-device, ensuring maximum security.
| OS | Status |
|---|---|
| Linux | β Supported |
| macOS | β Supported |
| Windows | β Supported |
- Device not detected: Ensure USB cable supports data transfer and device is plugged in
- Linux users: You may need to add a
udevrule for USB access - macOS users: Check
/dev/cu.*to find the connected device - Windows users: Verify COM port and drivers
- argon2-cffi β Secure Argon2 key derivation and password hashing
- pyserial β USB communication with the TurtlPass device
- protobuf β Protocol Buffers serialization for device messages
- mnemonic β BIP-39 mnemonic generation and seed handling
This repository is licensed under the MIT License.