Document, Bundle, Hub

Memory.Wiki uses one primitive (the URL) at three nested scopes. Every primitive is fetchable as clean markdown by any AI that can hit an HTTP endpoint.

Document

memory.wiki/<id>

A single captured artifact. A pasted ChatGPT share URL. A dropped PDF. A /memory.wiki capture from inside Claude Code. One markdown page, one permanent URL.

  • AI fetch: same URL with Accept: text/markdown header (or /<id>.md) returns the markdown body with frontmatter.
  • Embeddable: every public doc carries a 1536-dim vector and per-heading chunk vectors.
  • Editable: the owner edits in WYSIWYG; non-owners see the rendered viewer.

Bundle

memory.wiki/b/<id>

A curated grouping of docs around a topic. "AI Memory Stack" might bundle [Mem0 Architecture Notes], [Letta vs Mem0], [OpenAI Memory: Behind the Walled Garden]. The bundle is itself a deployable URL. Pasted into any AI, it loads all member docs in order with a brief intro.

  • Bundle Spec v1.0 conformant: stable shape, parseable by future tools.
  • Per-doc annotation: each member can carry a "why this is in the bundle" note.
  • Discoverable: owners can opt their bundle into the public /shared feed.

Hub

memory.wiki/hub/<you>

Your whole knowledge layer as one URL. The hub page lists every public doc and bundle, grouped by recency and topic. Pasted into Claude / ChatGPT / Cursor, the AI fetches the markdown index and follows links to read individual docs as it needs them.

  • Public when you opt in (hub_public = true in settings).
  • Time-traveling: /hub/<you>?at=<ISO date> shows the hub state at any past moment.
  • Graph view at /hub/<you>/graph renders the semantic and bundle-membership graph of your whole hub.
  • Recall API at POST /api/hub/<you>/recall runs question-targeted retrieval.

Why same primitive at three scopes

You don't need to learn three different surfaces. The viewer chrome is shared, the AI fetch path is shared, and the embed pipeline is shared. A bundle is "a hub of three docs." A hub is "a bundle of all your docs." The shape never changes; only the scope does.

All three URL shapes are independently verified at 100% accuracy across Claude, OpenAI, and Gemini. See MWBench for the open cross-AI eval.