Metadata-Version: 2.4
Name: 2fas
Version: 1.1.1
Summary: Unofficial implementation of 2fas for Python (as a CLI tool)
Project-URL: Documentation, https://github.com/robinvandernoord/2fas-python#readme
Project-URL: Issues, https://github.com/robinvandernoord/2fas-python/issues
Project-URL: Source, https://github.com/robinvandernoord/2fas-python
Author-email: Robin van der Noord <robinvandernoord@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.10
Requires-Dist: configuraptor>=1.25
Requires-Dist: lib2fas>=0.1.9
Requires-Dist: questionary
Requires-Dist: typer[all]
Requires-Dist: typing-extensions
Provides-Extra: dev
Requires-Dist: edwh; extra == 'dev'
Requires-Dist: hatch; extra == 'dev'
Requires-Dist: pytest-mypy-testing; extra == 'dev'
Requires-Dist: python-semantic-release<8; extra == 'dev'
Requires-Dist: su6[all]; extra == 'dev'
Description-Content-Type: text/markdown

# 2fas Python

2fas-python is an unofficial implementation
of [2FAS - the Internet’s favorite open-source two-factor authenticator](https://2fas.com).
It consists of a core library in Python and a CLI tool.

## Installation

To install this project, use pip or pipx:

```bash
pip install 2fas
# or:
pipx install 2fas
```

## Usage

To see all available options, you can run:

```bash
2fas --help
```

If you simply run `2fas` or `2fas /path/to/file.2fas`, an interactive menu will show up.
If you only want a specific TOTP code, you can run `2fas <service>` or `2fas /path/to/file.2fas <service>`.
Multiple services can be specified: `2fas <service1> <service2> [/path/to/file.2fas]`.
Fuzzy matching is applied to (hopefully) catch some typo's.
You can run `2fas --all` to generate codes for all TOTP in your `.2fas` file.

### Settings

```bash
# see all settings:
2fas --settings # shortcut: -s
# see a specific setting:
2fas --setting key
# update a setting:
2fas --setting key value
```

The `--settings`, `--setting` or `-s` flag can be used to read/write settings.
This can also be done from within the interactive menu.
`2fas` cli settings are stored in `~/.config/2fas.toml` and contains the following settings:

```toml
[tool.2fas]
files = [
    "/some/path/to/file.2fas",
    ... # list of known files, used by 'set default file' in the settings menu
]
default_file = "/some/path/to/file.2fas" # which file to use when no .2fas file was explicitly passed?
auto_verbose = true # run every command as if --verbose was passed?

```

### As a Library

Please see the documentation of [lib2fas-python](https://github.com/robinvandernoord/lib2fas-python) for more details on
using this as a Python library.

## License

This project is licensed under the MIT License.
