memoret-cli
The terminal receiver for Memoret. Memoret captures voice notes on iOS, transcribes them on-device, and delivers them end-to-end encrypted to a receiver you control. This CLI is one such receiver: it holds the private key, listens on your LAN, and writes decrypted notes and audio into a plain vault directory.
The private key never leaves the machine running this tool. Captures are sealed
on the phone with HPKE (RFC 9180, DHKEM(X25519, HKDF-SHA256) / HKDF-SHA256 / ChaCha20-Poly1305) and only ever opened here.
Install
Requires Python 3.11+.
# Recommended: install as an isolated tool (provides the `memoret` command)
uv tool install memoret-cli
# or
pipx install memoret-cli
Bleeding edge, straight from source:
uv tool install "git+https://github.com/mysticcoders/memoret-cli.git"
Use
memoret init # create config + keypair in ~/.memoret, pick a vault dir
memoret pair # print the pairing QR / JSON to scan from the iOS app
memoret serve # run the receiver with a TUI (press p for the pairing QR)
memoret serve --headless # run without the TUI, logging to stdout (good for servers)
Config lives in ~/.memoret/config.json (created 0600); the LAN receiver
advertises over Bonjour (_memoret._tcp) on port 41831 by default.
Inside the vault, notes and audio go where each capture's manifest asks, and
the receiver's own bookkeeping stays out of the way in .memoret/. Earlier
versions wrote ingested.json into the vault root, where it turned up in
searches and file listings alongside real notes; an index found there is
adopted and retired automatically, so nothing is redelivered.
memoret serve --headless stops on SIGTERM as well as Ctrl-C, withdrawing
the Bonjour advertisement on the way out, so it can be run under a service
manager.
Development
scripts/fetch-fixtures.sh # pull the shared conformance corpus
uv run --group dev pytest # run the suite
The manifest rules are pinned by a corpus shared with the other receivers, at memoret-contract-fixtures. It is fetched rather than vendored, so all four implementations read one copy instead of drifting apart with their own.
Security
- Payloads are end-to-end encrypted; the LAN transport is plaintext HTTP by design because the content is already sealed to the receiver's public key.
- The receiver authenticates uploads with a bearer token established at pairing.
- See the protocol docs at https://developer.memoret.app.
MIT licensed. Issues and pull requests: mysticcoders/memoret-cli.
Release files for memoret-cli 0.2.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 | |
|---|---|---|---|
| memoret_cli-0.2.0.tar.gz | 46.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| memoret_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 66.8 kB
Release files / memoret_cli-0.2.0.tar.gz
| Download URL | memoret_cli-0.2.0.tar.gz |
|---|---|
| Size | 46.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8cfd7905d39f9a942f8c7846d9b4745e35fa13c36fb8aa3d9034bc9edb3827eb
|
|
BLAKE2b-256 checksum How to use checksums |
bd8b4d243b7c081437d2d0e2ba095616389732234c31c003d09d63349a8f81c3
|
| 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 Aug 11, 2026.
Transparency logRelease files / memoret_cli-0.2.0-py3-none-any.whl
| Download URL | memoret_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 20.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
05bcd27ed3cd5dc373d8faaa2d0f3bced2fb6f2f03aa3445caaaad3571b929bb
|
|
BLAKE2b-256 checksum How to use checksums |
4f13f086bcd8865a34c66ac137ee8590f721031e97efcb90bd111009322b8061
|
| 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 Aug 11, 2026.
Transparency log