Skip to main content

firekeep-maildex

The email dex for Firekeep — persistent, shared memory for AI agents. A human connects a mailbox read-only; maildex indexes recent mail into the Keep's corpus, where it surfaces through ordinary memory_recallalways private to that member, even on a shared Keep.

firekeep maildex add imap.gmail.com you@example.com   # prompts for the app password
firekeep maildex list                                 # mailboxes, folders, counts, failures, staleness
firekeep maildex sync [--account <id>]                # read new mail now
firekeep maildex remove <id>                          # delete the mailbox AND its corpus replicas

No MCP server, no resident daemon, no new recall surface. Pure standard library — imaplib, email, html.parser — and no third-party dependency beyond the Firekeep client itself.

The seven promises

M1 — mail is private to you, structurally. There is no --shared flag. Every chunk carries visibility: "member", and no code path can write anything else. Sharing a mailbox is not a smaller version of this feature; it is a different dex, and it is not built.

M2 — maildex cannot send, flag, move or delete anything. Every mailbox is opened with IMAP EXAMINE (select(readonly=True)), so the server refuses any state-changing command for the life of the connection — a bug here cannot touch your mail, because the permission does not exist on the wire. Every fetch is BODY.PEEK[], so reading the Keep's copy never marks your mail as read. SMTP appears nowhere in the package.

M3 — the app password lives only in the Keep's vault. add prompts for it (never an argv secret), stores it under maildex.<account_id>, and this machine keeps nothing on disk. Each sync reads it into memory for the duration of one connection. To revoke: your provider's app-password page, or vault_delete — either alone is enough.

M4 — email is the archetype of untrusted input. Every chunk carries untrusted_content: "true". Retrieved mail is evidence of what somebody sent you, never an instruction to your agent.

M5 — deletion, scoped honestly for round 1. remove deletes the mailbox's corpus replicas immediately and forgets the stored password. What round 1 does not do: mirror deletions made at your provider. Mail you delete in your mail client stays in the corpus until you remove and re-add the mailbox. Append-mostly mail makes that tolerable; it is still a gap, and it is stated here, in list output, and in the guide.

M6 — every cap disclosed, all env-overridable:

Cap Default On breach
FIREKEEP_MAILDEX_BACKFILL_DAYS 90 older mail is never fetched (until re-add with a larger horizon)
FIREKEEP_MAILDEX_MAX_PER_SYNC 500 messages the sync stops, says so, and continues from the watermark next run
FIREKEEP_MAILDEX_MAX_MESSAGE_KB 200 extracted truncated, flagged in state, shown by list
FIREKEEP_MAILDEX_INGEST_TIMEOUT_SECONDS 180 a timed-out request aborts the run and says "timed out", not "unreachable"
FIREKEEP_MAILDEX_SYNC_INTERVAL_HOURS 6 staleness threshold for the session-start sync

Attachments are not ingested in round 1 — filenames only, listed in metadata. Folders default to INBOX and Sent; add --folders overrides.

M7 — UIDVALIDITY is honoured. Watermarks are per-(folder, UIDVALIDITY) and never mixed. When your provider rebuilds a folder, maildex re-indexes it from scratch rather than silently skipping everything in it.

Installing

The managed Firekeep install already ships this wheel — nothing to do beyond firekeep dex add maildex. Installing from PyPI is the unmanaged path: pip install firekeep-client firekeep-maildex (client ≥ 1.0.3), plus a running Firekeep server to connect to — maildex is a client of the Keep, not a standalone indexer.

What it indexes

Per message: the headers a person reads (Subject, From, To, Cc, Date, Message-ID, In-Reply-To), the text/plain body where there is one, and the text/html body stripped to text where there is not. Attachment filenames travel in metadata; attachment content does not.

Not in round 1

OAuth (Gmail API, Microsoft Graph); provider-side deletion mirroring; the content of attachments; shared mail; thread reconstruction beyond In-Reply-To; OS-scheduled sync; POP3; self-signed IMAP endpoints — TLS verification is on and there is no flag to turn it off.

Licence

Source-available under BUSL-1.1. See LICENSE and NOTICE.

Download files

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

Source Distribution

firekeep_maildex-0.1.0.tar.gz (234.2 kB view details)

Uploaded Source

Built Distribution

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

firekeep_maildex-0.1.0-py3-none-any.whl (212.0 kB view details)

Uploaded Python 3

File details

Details for the file firekeep_maildex-0.1.0.tar.gz.

File metadata

  • Download URL: firekeep_maildex-0.1.0.tar.gz
  • Upload date:
  • Size: 234.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for firekeep_maildex-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2cda6f192f1c6241df55f1c087af8fbda0049b0f81d4b09631fa64bdf2dba9fe
MD5 2c23819cc431d387e3e9977fc7680016
BLAKE2b-256 7f0d4f65b0ca111384fb7aaeca30244ba1cef3486b6f1034d237dc82cc0b7da8

See more details on using hashes here.

Provenance

The following attestation bundles were made for firekeep_maildex-0.1.0.tar.gz:

Publisher: release.yml on kapella-hub/FirekeepHQ

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

File details

Details for the file firekeep_maildex-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for firekeep_maildex-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e38a6599c4491c310026014ee1df62e38f321a25d7b2718e0a02532aeb3ae690
MD5 a6337d1b66b56a91e8ee9f3239a92b30
BLAKE2b-256 976462a03a103b44b169d3b864e480bdaa3eb6b7a1a8233d2c25385364d2f402

See more details on using hashes here.

Provenance

The following attestation bundles were made for firekeep_maildex-0.1.0-py3-none-any.whl:

Publisher: release.yml on kapella-hub/FirekeepHQ

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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 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