Skip to content
PluginStats

@intentface/latch-memory weekly downloads statistics

By intentface (9 listings) · npm · AI SDKs

Experimental: Latch agent memory — always-loaded compiled index, searchable episodic store, and background extraction/consolidation over a pluggable MemoryStore (Loredex-backed first).

View on npm Fresh · Oct 18, 2026

@intentface/latch-memory has 632 recorded weekly downloads on npm, an increase of 75.1% over the past 30 days, ranking #1525 of 2,322 tracked listings.

Weekly downloads
632
Official API · Oct 18, 2026
7-day growth
-57.4%
-853 weekly downloads
30-day growth
+75.1%
+271 weekly downloads
90-day growth
—
Insufficient history
Rank
#1525
Among tracked npm listings

About @intentface/latch-memory

@intentface/latch-memory

Experimental. The only production store today is Loredex (createLoredexStore), and the interface still carries Loredex conventions (__private_root paths, a connection argument). The design may change in any release.

Pluggable, platform-managed memory for Latch agents. Declare memory on an agent and the platform does all upkeep:

  1. Always-loaded index — a compiled MEMORY.md (≤100 lines, one fact per line with date, provenance, and source links) is injected into the system prompt every turn, plus standing instructions for the tools.
  2. Episodic store + recall — immutable, timestamped episode notes live in the agent's own connection workspace: per-user scopes under the caller's private root (__private_root/_memory/<agent|_user>/u-<id>/), agent-org under the shared _memory/<agent>/org/; the agent searches them on demand with memory_search (every recall is usage-tracked — the retention signal) and saves explicit "remember this" notes with memory_save.
  3. Background consolidation — a cron sweep extracts durable facts from idle chats (memory-extractor, cheap model) and folds pending episodes into the index (memory-consolidator), superseding and expiring entries.

Design invariants

  • Scopes (agent-user | agent-org | user) are hard boundaries: tools are path-locked at construction, and consolidation never crosses a scope. Per-user scopes live under the Loredex private root (owner-only ACL): __private_root/_memory/<agent>/u-<id> for agent-user, __private_root/_memory/_user/u-<id> for user. The u-<id> leaf is kept even though the private root is already per-user: it keeps roots globally unique (scope keys stay ${connection}:${root}) and keeps users' stores apart on a workspace-shared connection, where every caller resolves the same private root.
  • Non-destructive consolidation: episodes are immutable; only the index is rewritten, every rewrite snapshots the previous version first, and the validator rejects any rewrite that silently drops a previously ACTIVE entry (supersede/expire = move to ## Archive; archived entries may be dropped later — snapshots preserve history, so the size cap stays satisfiable).
  • Graceful degradation: an unreachable/unauthorized store means a turn without memory, never a failed turn.
  • Anti-hot-loop: every job completion advances its eligibility timestamp — success, failure, or "not actually memory-enabled".
  • Extraction idempotency: every completed extraction records an idempotency key (extractionRunKey — content hash of the message window + the extraction prompt version). An unchanged window never re-buys a run, and a run that found NOTHING tombstones its content via the same key. Failed runs never record a key, so they stay retryable. Bump EXTRACTION_PROMPT_VERSION to invalidate old keys after a material prompt change.
  • Provenance: every fact is tagged user-said / tool-derived / user-requested; the extractor is instructed to scrub secrets/PII.
  • Trust marks: extractor-written episodes carry status: unverified frontmatter; index entries folded from them carry an unverified marker (labeled — in the injected block and in search results — never hidden). The consolidator promotes an entry only on later, independent corroboration. Explicit memory_save notes are never marked unverified.
  • Aliases + create-safety: entries can carry aka: aliases (episodes: aliases: frontmatter) for subjects with several names/spellings. memory_search matches them exactly (NFKC/case/whitespace-normalized), tags every hit with matchedOn evidence (alias-exact | description | body), and derives a response-level create_safety (exists | probable | unknown) that memory_save instructs the agent to consult before creating anything new.
  • Injection hardening: memory text is LLM-authored from user conversation — a prompt-injection persistence vector. At injection time (the <memory> block, search snippets) it passes through sanitizeMemoryText, which de-fangs envelope/role tags and strips a named set of known injection phrasings. Volume reduction, not a guarantee — the standing instructions additionally declare the envelope's content to be data, never instructions.

Pieces

ModuleWhat it is
types / scopeMemoryStore seam, ScopeRef derivation (scopeRefOf)
store/loredexMemoryStore over a Loredex MCP connection (opens per op via the ConnectionRegistry; tolerant result parsing; no delete — snapshot + rewrite)
index-fileMEMORY.md grammar: parse, validateIndexRewrite, id minting
providercreateMemoryProvider → the runtime's MemoryProvider (TTL-cached index block + bound tools)
toolsagent-facing memory_search/memory_save + scope-locked job tools
prompts/*injection block, extractor/consolidator instructions + prompt builders
jobs/typesMemoryJobStore (implemented in @intentface/latch-drizzle: createMemoryJobStore)

The sweep itself is host glue, not shipped here. It follows the Codex pattern: idle-gated parallel extraction, per-scope lease-serialized consolidation with cooldown + watermark, usage-based expiry (default 30 days unrecalled).

Wiring it into a host

This package ships the ingredients, not the jobs — a host app wires:

  1. Tables + job store — @intentface/latch-drizzle's migrations create latch_memory_chat_state / latch_memory_scope_state / latch_memory_usage; build the store with createMemoryJobStore(db).
  2. Store + provider → runtime — in the composition root:…

Description from the npm listing.

  • ai
  • ai-sdk
  • agents
  • llm
  • agent-memory

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@intentface/latch-memory weekly downloads on npm, last 90 days: 632 weekly downloads as of Oct 18, 2026.@intentface/latch-memoryWeekly downloads on npm · Last 90 days632downloads / week02004006008001K1.2K1.4K1.6KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 22, 2026 – Oct 18, 2026 · 89 observations · Updated Oc…pluginstats.com
@intentface/latch-memory weekly downloads on npm, last 90 days: 632 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

@intentface/latch-memory weekly downloads growth on npm: -57.4% over 7 days, +75.1% over 30 days, 90-day growth unavailable.@intentface/latch-memoryWeekly downloads growth on npm632downloads / week now7-day growth-853 weekly downloads-57.4%30-day growth+271 weekly downloads+75.1%90-day growth+632 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@intentface/latch-memory weekly downloads growth on npm: -57.4% over 7 days, +75.1% over 30 days, 90-day growth unavailable.

Ranking history

@intentface/latch-memory npm ranking history: currently #1525 (by weekly downloads).@intentface/latch-memorynpm ranking · by weekly downloads · Last 90 days#1525current rank#1495#1500#1505#1510#1515#1520#1525#1530Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 18, 2026 – Oct 20, 2026 · 3 observations · Updated Oct 18, 2026pluginstats.com
@intentface/latch-memory npm ranking history: currently #1525 (by weekly downloads).

Listing placement

All npm2,320 listings · 116 pages · 1,162 shown · page 77, #8 (overall #1,528)
All npm: every listing in weekly downloads order

Listing placement

AI SDKs259 listings · 13 pages · page 9, #5 (overall #165)
AI SDKs: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (122)
Recent weekly downloads observations for @intentface/latch-memory
Date (UTC)Weekly downloadsChange vs. previous
632+121
511-444
955-153
1,108-152
1,260-94
1,3540
1,354-131
1,485+312
1,173+65
1,108+70
1,038+143
895+90
805-10
815—

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@intentface/latch-memory. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.