Skip to main content

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 with libsodium crypto_box_seal on the phone 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.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memoret-cli 0.1.3
File Size Uploaded
memoret_cli-0.1.3.tar.gz 42.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for memoret-cli 0.1.3
File Interpreter ABI Platform
memoret_cli-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 61.1 kB

Release files / memoret_cli-0.1.3.tar.gz

Download URL memoret_cli-0.1.3.tar.gz
Size 42.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c9407c47164e0e914ac41923213a2db026a931b9246445450f5b97807911be31
BLAKE2b-256 checksum
How to use checksums
5aab54b22bac40494021b80e709b6a02e39fde481de9d44dfb734a81165aee21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 27, 2026.

Transparency log

Release files / memoret_cli-0.1.3-py3-none-any.whl

Download URL memoret_cli-0.1.3-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ff2cbea1a655889463c49543b500aecd0ab595a1e97d220ab981a70885d27165
BLAKE2b-256 checksum
How to use checksums
ee7c3f631dbd958131183d220ff372b2a3cc9a577c18ceee1edf31cec2f297d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 27, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page