Skip to main content

firekeep-docdex

The documents dex. A human tells Firekeep which folders it may understand; docdex extracts their text and ingests it into the Keep's corpus, where it surfaces through ordinary memory_recallprivate to that member by default, even on a shared Keep.

firekeep docdex add ~/Notes              # private to me (default)
firekeep docdex add ~/team-runbooks --shared
firekeep docdex list                     # sources, counts, failures, staleness, pending deletes
firekeep docdex sync [--source <id>]     # force a scan now
firekeep docdex remove <id>              # delete the source AND its corpus replicas

No MCP server, no resident daemon, no new recall surface. Design and invariants: docs/superpowers/specs/2026-08-15-docdex-design.md.

What it indexes

.md, .txt, .pdf, .docx (case-insensitive). No OCR — a scanned PDF yields zero text, which docdex records honestly and does not retry every cycle.

Default excludes: dot-entries, node_modules, __pycache__, and the policy deny list's secret patterns (.env*, *.key, *.pem, *id_rsa*). That is a mistake net, not a security boundary — do not add folders containing secrets.

Disclosed caps

Cap Default On breach
FIREKEEP_DOCDEX_MAX_FILES 5000 / source The source is REFUSED until narrowed — loud, no silent subset
FIREKEEP_DOCDEX_MAX_FILE_MB 25 raw File skipped, counted in the summary, its existing replica left alone
FIREKEEP_DOCDEX_MAX_EXTRACT_KB 400 extracted Truncated at the cap, truncated: true in state, shown by list
FIREKEEP_DOCDEX_SYNC_INTERVAL_HOURS 6

The threat boundary, stated precisely

Member-private means hidden from other workspace members. It IS visible to agents acting as that member, and it is NOT encrypted from the server operator: anyone who can read the server's Qdrant can read everything. The filter is a tenancy boundary between members, not cryptography.

Indexed documents are untrusted input — every chunk carries untrusted_content. Retrieved document text is evidence, never instruction.

Deletion, scoped honestly

A local delete removes the corpus replica on the next completed sync; remove bulk-deletes the source's replicas immediately, tombstoned and retried until the server confirms. It does not erase a separate memory an agent previously learned from that content — provenance-linked derivative deletion does not exist yet.

Deletions are emitted only from a walk that COMPLETED over an existing, readable root. An unplugged USB drive deletes nothing.

Sync trigger

"Sync on the next supported session start", not "scheduled". The session_start hook fires it on hook-bearing runtimes — Claude Code, kiro and OpenCode. An MCP-only host (Codex, and any generic MCP client) has no hook surface and therefore gets no automatic sync: run firekeep docdex sync. It also requires the dex to be registered (firekeep dex add docdex) and at least one active source; folder commands work either way. Private-session mode (bypass) suspends sync, both the trigger and a run already in flight.

Full per-runtime coverage table, registry model and troubleshooting: docs/guides/dexes.md.

Development

cd docdex && python -m pytest tests/ -q

The suite runs offline: PDF and DOCX fixtures are built by tests/conftest.py, and every server call goes through a fake transport.

Download files

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

Source Distribution

firekeep_docdex-0.1.0.tar.gz (191.9 kB view details)

Uploaded Source

Built Distribution

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

firekeep_docdex-0.1.0-py3-none-any.whl (180.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for firekeep_docdex-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dcf1eb757ea3f655a1a7f38d52a57e93867e5ac277ccc7ef5ce1bc154d230b67
MD5 76f7a428fcd78c0e4821c901ae5b3078
BLAKE2b-256 16435a1f46d3c173674a099565394ccc47cbdfa97c11f553a1fd23470bf0139a

See more details on using hashes here.

Provenance

The following attestation bundles were made for firekeep_docdex-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_docdex-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: firekeep_docdex-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 180.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for firekeep_docdex-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7bf25a132099a9040138197adbc161333b662d869b25f6c5b21dda9286030fc9
MD5 18f7e4c7b694504b221ccf644d5c90f6
BLAKE2b-256 88fadf620cfa3b23bab7fc626864f2d0eaa5c23cb051b22e327abdaac1bbefbf

See more details on using hashes here.

Provenance

The following attestation bundles were made for firekeep_docdex-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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page