elstern
A free, software-only client for ElsterSecure — the passwordless login of Germany's Mein ELSTER tax portal.
Unofficial. Not affiliated with ELSTER, the Bundeszentralamt für Steuern, or secunet. ElsterSecure and Mein ELSTER are their trademarks. Use it with your own account, at your own risk.
How it works
The token is an EC P-256 key. elstern manages the token signing for both registration
and subsequent logins and talks to the elster.de backend to confirm both.
See docs/ for complete documentation of the internals.
Install
pipx install elstern # or: uv tool install elstern
Use
Generate a secret and store it in pass, or password
manager of your choice.
elstern keygen | pass insert -m elstern/elster.de
elstern keygen returns a JSON encoded responses containing a key, clientId, and tokenId.
Then, on the Mein-ELSTER page, choose add login option (enroll) or login,
and hand elstern the elster-secure://… URI it shows:
ELSTERN_KEY="$(pass show elstern/elster.de)" elstern 'elster-secure://sec?p=…'
elstern does not allow reading secrets from a file to avoid insecure configurations.
pass extension (optional)
Copy contrib/elstern.bash to ~/.password-store/.extensions/elstern.bash,
and set PASSWORD_STORE_ENABLE_EXTENSIONS=true. It stores the secrets at
elstern/elster.de by default, but you can change the path to store multiple
identities if needed:
pass elstern 'elster-secure://sec?p=…' # default key: elstern/elster.de
pass elstern work/elster 'elster-secure://sec?p=…' # a second, separate token
License
Licensed under the EUPL‑1.2 license.
Metadata
Release files for elstern 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elstern-1.0.0.tar.gz | 14.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elstern-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.6 kB
Release files / elstern-1.0.0.tar.gz
| Download URL | elstern-1.0.0.tar.gz |
|---|---|
| Size | 14.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9bf40cdbb2d62d1c95762671bd5729fa0d2a2041c85b334deacab7af5f773283
|
|
BLAKE2b-256 checksum How to use checksums |
44014e17aad1f4fb0bead53a9620339946e8908837ffddf78c0db1ad834048ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / elstern-1.0.0-py3-none-any.whl
| Download URL | elstern-1.0.0-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
72e3f43a9fe46ed5ff417955c44a264f2db70095efa0a3851ff216750945d405
|
|
BLAKE2b-256 checksum How to use checksums |
8bece14184f3c97ac84f52b2c0513bcd21a6ca3ecbb8e60fc262b26750c07241
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency log