Skip to main content

Encrypted CLI vault for FreeOTP JSON exports with system keyring support

Project description

freeotp-vault

Encrypted CLI vault for FreeOTP JSON exports with system keyring support.

PyPI Python Coverage Ruff

Install

pip install freeotp-vault

Usage

Import a FreeOTP backup

freeotp-vault init path/to/freeotp-export.json

List accounts

freeotp-vault list
freeotp-vault list --filter github

Generate tokens

freeotp-vault token
freeotp-vault token --filter github

Change password

freeotp-vault change-password

Remove accounts

freeotp-vault remove --filter "old account"

Python API

from freeotp_vault import (
    encrypt_vault,
    decrypt_vault,
    parse_freeotp_json,
    generate_token,
    get_password_from_keyring,
    store_password_in_keyring,
)

# Parse a FreeOTP JSON export
tokens = parse_freeotp_json(json_string)

# Encrypt/decrypt vault data
blob = encrypt_vault(data, "password")
plaintext = decrypt_vault(blob, "password")

# Generate OTP code
code = generate_token(token_dict)

Development

git clone https://github.com/daedalus/freeotp-vault.git
cd freeotp-vault
pip install -e ".[test]"

# Run tests
pytest

# Format
ruff format src/ tests/

# Lint
ruff check src/ tests/

# Type check
mypy src/

License

MIT License - see LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freeotp_vault-0.1.0.1.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freeotp_vault-0.1.0.1-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file freeotp_vault-0.1.0.1.tar.gz.

File metadata

  • Download URL: freeotp_vault-0.1.0.1.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freeotp_vault-0.1.0.1.tar.gz
Algorithm Hash digest
SHA256 dc155894af4d01fac5161c92f79e4edc8a39f1eb57d0758d4ebd0c4372ac6ba9
MD5 2a727370802dfa676ce19c2c6847f19f
BLAKE2b-256 35799e279924a607986def261df2765c5b9d692530d12bff512f695c32c3b5c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for freeotp_vault-0.1.0.1.tar.gz:

Publisher: pypi-publish.yml on daedalus/freeotp-vault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file freeotp_vault-0.1.0.1-py3-none-any.whl.

File metadata

  • Download URL: freeotp_vault-0.1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for freeotp_vault-0.1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9810be867123f3a32bbbcd27ea80d816224e036102a2fc9d1eb651fdf4556d88
MD5 be55a1ef1749dfebcf49f312684b6dae
BLAKE2b-256 bccefa2b253319ef05d0df556ea62c5b440b834f01683100310072550afd8cea

See more details on using hashes here.

Provenance

The following attestation bundles were made for freeotp_vault-0.1.0.1-py3-none-any.whl:

Publisher: pypi-publish.yml on daedalus/freeotp-vault

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page