---
title: "memory.wiki, Surface & Feature Inventory"
url: https://memory.wiki/3goAyT21
updated: 2026-06-14T12:49:47.193Z
hub: https://memory.wiki/hub/raymindai
concept_count: 8
source: "mcp"
---
# memory.wiki, Surface & Feature Inventory

> **Scope**: Every memory.wiki surface EXCEPT the web editor (`/`).
> Updated 2026-06-14. Maintained as the canonical reference for messaging
> alignment, /about page IA, and marketing.

This is **the** single source of truth for "what memory.wiki actually is
across all channels." When store listings, /about, /plugins, README, or
any channel description goes out of sync, this doc wins.

---

## Part 1 / The product in one sentence

**memory.wiki is a personal knowledge hub for the AI era, capture once
on any surface, deploy as a URL any AI reads.**

Three nouns the brand owns:
1. **Doc**, a single document at `memory.wiki/<8-char-id>`
2. **Bundle**, a multi-doc knowledge graph at `memory.wiki/b/<id>`
3. **Hub**, a personal wiki at `memory.wiki/@<slug>`

One verb the brand owns:
- **Deploy**, any URL drops cleanly into ChatGPT, Claude, Gemini,
  Cursor, Perplexity, MCP-aware agents, same payload, every reader.

---

## Part 2 / Surface-by-surface inventory

### A / Web viewer surfaces (memory.wiki/*)

The web is the **render layer + URL layer + AI access layer**. Every other
channel ultimately resolves to a memory.wiki URL.

| Path | What it is | Why it exists |
|---|---|---|
| `/<id>` | Single Doc viewer (TipTap read-only render) | The canonical doc URL. Public, password-restricted, email-allowlisted, or draft (owner-only). |
| `/b/<id>` | Bundle viewer (graph canvas + doc list + synthesis) | Multi-doc knowledge graph. Owner can re-run AI graph, resolve tensions, synthesize. |
| `/@<slug>` (aka `/hub/<slug>`) | Hub viewer (personal wiki feed) | Avatar + display name + description + 7-day Recent + Older feed + Frontier / Pulse / Constellation layers. |
| `/embed/<id>` | iframe-safe doc render | Same render pipeline, no chrome, no auth UI. |
| `/raw/<id>(.md)` | Plain-markdown payload | YAML frontmatter + body + optional context block (summary, themes, insights, concept relations, parent bundle pointers, hub pointer). 60s edge-cached. |
| `/raw/bundle/<id>` | Bundle Spec v1.0 markdown | Manifest of bundle metadata + member doc links. |
| `/raw/hub/<slug>` | Hub manifest markdown | Doc list + bundle list + concept index. Supports `?digest=1&compact=1` for AI-economy variant. |
| `/raw/hub/<slug>/c/<concept>` | Single concept definition | Atomic concept fetch from the hub ontology. |
| `/raw/hub/<slug>/log.md` | Hub activity log | Who did what, when. |
| `/raw/hub/<slug>/suggested-queries.md` | AI seed prompts | Conversation starters for hub chat. |

**Cross-AI guarantee (load-bearing for the brand):**
Middleware rewrites: `Accept: text/markdown`, known AI bot UA, or
`.md`/`.txt` suffix routes to `/raw`. `Link` header advertises the
canonical browser URL so search ranks the human page, not the raw
endpoint. Every doc/bundle/hub URL therefore works as BOTH a human page
AND an AI-readable resource without the user thinking about which.

**Permission model (applies to docs + bundles + hubs):**
- `is_draft = true` / owner-only
- `password_hash` set / password-protected (legacy)
- `allowed_emails[]` populated / specific people, view or edit role per email
- otherwise / public

**Share modal** surfaces the choice as 3 radio states (Private / Specific
people / Anyone with the link) + edit-mode toggle (Owner / View / Public).

**Real-time collab (Yjs CRDT)**: when collab is active on a doc, conflict
detection is skipped, CRDT handles merging. Remote carets render as
CodeMirror decorations.

---

### B / Web API + AI pipeline (memory.wiki/api/*)

The web's HTTP surface. Used by all other channels.

**Docs CRUD**
- `POST /api/docs`, create. CORS-open to chatgpt.com / claude.ai /
  gemini.google.com for bookmarklet flows.
- `GET /api/docs/[id]`, fetch markdown.
- `PATCH /api/docs/[id]`, update. Actions: `publish` / `unpublish` /
  `soft-delete` / `set-allowed-emails` / `set-expiry` / `move-to-folder`.
- `DELETE /api/docs/[id]`, permanent delete.
- `GET /api/docs/[id]/versions`, history.
- `POST /api/docs/[id]/versions/[versionId]/restore`, roll back.

**Search & discovery**
- `GET /api/search?q=...`, FTS with ILIKE fallback for CJK.
- `GET /api/discover`, public trending / recent.

**User & auth**
- `GET /api/me`, current user.
- `POST /api/auth/demo-signin`, backdoor for YC / App Store reviewers.
  Allowlist: `yc@mdfy.app`, `demo@mdfy.app`, `demo@memory.wiki`.
- `GET /api/user/documents` / `folders` / `recent` / `hub/*`.

**AI surfaces (one cascade, 28 actions)**
- `POST /api/ai`, generic actions (polish, summary, tldr, translate,
  chat, beautify, compact, format, selection_*).
- `POST /api/docs/transform`, intent transform (the extension's
  "Capture with intent" textarea calls this).
- `POST /api/docs/[id]/decompose`, semantic chunking into typed nodes
  (concept / claim / example / definition / task / question / context /
  evidence) with typed edges (supports / elaborates / contradicts /
  exemplifies / depends_on / related).
- `POST /api/bundles/[id]/graph`, knowledge graph generation.
- `POST /api/bundles/[id]/resolve-tension`, AI identifies & resolves
  contradictions across the bundle's docs.
- `POST /api/bundles/[id]/synthesize`, single narrative combining all
  docs.
- `POST /api/bundles/[id]/suggest-title`, name suggestion.
- `POST /api/bundles/[id]/suggestions`, related bundles.
- `POST /api/bundles/ai-generate`, create bundle from a query.
- `GET /api/bundles/[id]/constellation`, concept graph filtered to the
  bundle.
- `GET /api/user/hub/frontier`, new concepts (7d), bundle hints, gaps.
- `GET /api/user/hub/pulse`, 365-day activity heatmap + streaks.
- `GET /api/user/hub/constellation`, full hub concept graph.
- `GET /api/user/hub/suggestions`, AI recommends bundles to create.
- `GET /api/user/hub/suggested-queries`, chat seed prompts.
- `POST /api/hub/[slug]/recall`, vector search + LLM rerank.
- `POST /api/hub/[slug]/chat`, streamed, concept-bridged RAG over the
  whole hub.

**Auto-processing crons** (Vercel cron, fire on doc save / nightly)
- `doc-summary`, summary, themes, insights (lite model)
- `doc-graph`, semantic takeaways (lite)
- `doc-ontology`, concept index + relations (primary)
- `doc-decompose`, semantic chunking (primary)
- `organize-doc`, heading / structure cleanup (lite)
- `citation-rot`, link-validity audit
- `lifecycle-sweep`, hard-delete expired docs

**Provider cascade:** OpenAI / Gemini / Anthropic (default order,
admin-configurable). Every call logged to `ai_usage` table with action,
provider, in/out tokens, USD cost, user_id, anonymous_id, timestamp.

**Import**
- `POST /api/import/url`, web page to markdown
- `POST /api/import/github`, repo .md files batch
- `POST /api/import/notion`, workspace dump
- `POST /api/import/obsidian`, vault
- `POST /api/import/office`, Word / PPT / Excel
- `POST /api/import/pdf`, text extraction

**Upload:** `POST /api/upload`, image. Quotas: 20MB free, 1GB Pro.

**Auth modes:** Bearer JWT (Supabase session), `x-user-id` header,
`x-anonymous-id` cookie, browser session cookie.

---

### C / Web admin (/admin, hi@raymind.ai only)

Live ops dashboard. Tabs:
- **Overview**, 7 KPI cards (docs / users / views / docs today / docs
  this week / active users 7d / storage MB).
- **Charts**, docs / views / users per day, doc sources bar.
- **Users**, sortable table.
- **Documents**, sortable table with private/shared badges.
- **Activity**, reverse-chronological feed of captures / edits / bundle
  creates.
- **Usage**, total cost USD, calls, in/out tokens, errors. Daily series.
  Top users by spend. Per-action breakdown. Per-provider breakdown.
- **Settings**, AI cascade order + per-provider primary / lite model
  selection. Save invalidates in-memory config cache, changes live
  immediately.

---

### D / Auth handoff pages (/auth/*)

One per channel. Same shell, channel-specific copy after sign-in.
- `/auth/chrome`, Chrome / Edge / Brave extension
- `/auth/safari`, Safari iOS + macOS extension
- `/auth/desktop`, Electron Mac app
- `/auth/vscode`, VS Code extension
- `/auth/mcp`, MCP server / Claude Desktop / Cursor
- `/auth/cli`, terminal CLI

OAuth providers: Google + GitHub + Email magic link + Apple (iOS only).
All routes through `/auth/callback`. The session cookie set on
memory.wiki is then read by the channel's auth-bridge content script
(extensions) or stored locally (desktop / CLI / MCP).

---

### E / Marketing surfaces

- **/about**, Current PureShell narrative. Sections: hero, surfaces
  gallery, framework (Capture / Bundle / Deploy), ecosystem flow,
  9-surfaces grid, primitives (Doc / Bundle / Hub), features grid (16
  items), cross-AI benchmark table, vs vendor-memory comparison,
  roadmap, trust strip, pricing, FAQ. Bilingual (`/about` EN,
  `/ko/about` KO).
- **/plugins**, Channels page. Lists Chrome / Safari / VS Code /
  Desktop / iOS / Android / CLI / MCP / QuickLook with version, size,
  install/store URL pulled from `apps/web/src/lib/channel-versions.ts`
  (the single source-of-truth file, never hardcode versions elsewhere).
- **/benchmark**, Cross-AI deployability table. Same raw URL fed to
  Claude / ChatGPT / Gemini / Cursor, rendered output side-by-side.

---

### F / Chrome extension (apps/chrome-extension, v2.7.6)

**Distribution:** Chrome Web Store
(`chromewebstore.google.com/detail/.../nkmkgmebaeaiapjgmmalbeilggfhnold`).

**Capture surfaces**
- Whole page (Cmd+Shift+E), Readability + html-to-markdown fallback,
  metadata from JSON-LD / OG / Twitter / standard meta. Image extraction
  walks `<picture>`, `srcset`, `data-src`, lazy-load variants. UI-image
  detection drops logos / icons / sprites / pixels.
- Selection (Cmd+Shift+X), highlighted text to standalone doc.
- AI chat scrape, ChatGPT / Claude / Gemini / Perplexity. Range chip
  picks last N turns (All / 1 / 3 / 5). Per-message mini buttons (opt-in
  via Settings "On AI pages" toggle).
- Social, X / Threads per-post inline button on hover.
- GitHub markdown, "Open in memory.wiki" button next to Raw on
  `/blob/*.md` pages.
- Image hover save, per-`<img>` floating button on every site.

**Intent capture (THE flagship)**
"or capture with intent" textarea below the big Capture button. Free-
form instruction goes to `/api/docs/transform` along with the page
markdown. Cycling placeholder rotates example prompts. Site-aware chip
rail below the textarea suggests intents contextual to the active tab
(e.g. "extract code" on GitHub, "TL;DR" on news, "as recipe" on cooking
sites). Chips can be star pinned (persisted to `chrome.storage.local`)
or X dismissed.

**Recent captures**
Last 50 captures, local only. Click to open. "Clear all" button.
New-entry slide-in animation. Reuse-intent icon on rows whose original
capture used an intent prompt.

**Capturing overlay**
Animated morph blob + "Capturing..." flips to "Captured" with View +
OK buttons when the URL lands. Scoped to popup body (position:absolute,
not fixed) so iPad Safari popover doesn't leak it onto the host page.

**Auth chip**
- Signed-out: full-width "Sign in to memory.wiki" pill in footer.
- Signed-in: avatar + name + "free during beta" plan.
- Sign-out clears `mw-auth-session` from chrome.storage.local AND
  broadcasts `force-signout` to all open memory.wiki tabs (auth-bridge
  expires sb-* cookies in page context, the only path that actually
  drops the Supabase session on Safari Storage Partitioning).

**URL strategy**
- Signed-in: `POST /api/docs` returns `{id, editToken}`, opens
  `memory.wiki/?from={id}&token={editToken}`, clipboard:
  `Use memory.wiki/{id} as my context.`
- Signed-out: gzip markdown + base64url, `memory.wiki/#md=<payload>`.
  8KB URL cap. Over the cap, clipboard the raw markdown + toast.

**Other**
- Settings page: keyboard shortcut display (Cmd+Shift+E / X), floating-
  button toggle, account chip, link to Chrome's
  `chrome://extensions/shortcuts` for re-binding.
- Footer "Also on" chip rail: QuickLook / iOS / Mac / VS Code / CLI /
  MCP (only when signed in).
- Brand: dark popup (#08080a), Cal Sans display, JetBrains Mono mono.
  Lime (#B5FF1A) reserved for 6 to 12px dots / badges / icon glyphs only.
- Toolbar icons: 16 / 19 / 32 / 38 / 48 / 128 PNG, full-bleed (no
  internal padding, fills the toolbar slot at every DPI).

---

### G / Safari extension (apps/safari-extension, v2.7.5 build 2)

**Distribution:**
- iOS App Store: Safari extension is a **separate** App Store record
  (in review as of 2026-06-14, name "memory.wiki Clipper", bundle
  `wiki.memory.clipper.ios`). The native iOS app at
  `apps.apple.com/us/app/memory-wiki/id6774713489` is a different
  record.
- Mac App Store: separate record "memory.wiki Clipper for Mac",
  bundle `wiki.memory.clipper.mac`, in review.

**Functional parity with Chrome**: identical popup-v25.html + popup-v25.js
+ content scripts + intent capture + recent + capturing overlay + sign-
in chip. The differences are purely platform-driven:

- **Auth bridge** (`auth-bridge.js`): runs in page context at
  `document_start` on memory.wiki tabs. Reads document.cookie for
  `sb-*-auth-token` cookies, decodes Supabase session, relays to
  background via `chrome.runtime.sendMessage`. Background caches as
  `mw-auth-session`. Necessary because Safari Storage Partitioning
  blocks `chrome.cookies.getAll` and credentialed fetch to `/api/me`
  from extension context.
- **Force sign-out** listener (added 2026-06-14): when popup signs out,
  it broadcasts `{action:"force-signout"}` to all memory.wiki tabs,
  auth-bridge runs the cookie + localStorage cleanup in page context
  and immediately pushes a null session to background.
- **Container app onboarding** (Mac + iOS): WKWebView hosts
  `Main.html`, animated blob mark + Cal Sans "memory.wiki Clipper"
  brand + tagline + "Enable in Safari" card with mockup of Safari
  Settings > Extensions panel + 3 steps + big "Quit and Open Safari
  Extensions Settings..." button + live state ("on" / "off" / "unknown").
  Mac window 1280 by 800 (resizable, centered on first launch).
- **iPad popup width gate**: `popup-v25.js` detects iPad (UA + multi-
  touch + screen width 600+) and adds `html.is-ipad`. CSS only forces
  `min-width: 500px` on iPad, iPhone sheet uses 100%.
- **macOS Safari popup arrow color**: `theme-color #08080a` +
  `color-scheme: dark` meta tags so Safari paints the popover arrow
  dark to match the popup body.
- **Auto-focus suppression**: macOS Safari auto-focuses the first
  focusable element when the popover opens, popup-v25.js force-blurs
  on DOMContentLoaded + RAF + 100ms. Focus-within highlight CSS is
  gated on `body.user-active` (flips on first real
  mousedown/keydown/touchstart) so the popup looks idle on open.

---

### H / iOS native app (apps/ios-native, v1.1 build 1)

**Distribution:** App Store, name "memory.wiki", id 6774713489.

**Five-tab floating capsule bar**
MDs / Bundles / **Start** (animated blob, center) / Capture / Settings.
Double-tap active tab at root for haptic confirmation. Floating glass
isolation strip behind the bar.

**Start (dashboard)**
Time-of-day greeting using display name. Today's pulse strip (captures,
week streak, total memories). Quick actions row (New Capture / Search /
Open hub). Recent memories (6 tiles). Starred memories pinned list.
Featured bundle preview with deploy-URL chip. Per-block stagger entrance.

**Capture**
Six modes: Write / URL / Photo (with OCR) / Voice (dictation) / Import.
Title + body draft with markdown toolbar. Toast banners for each mode.
OCR preview chip with Insert / Discard. Live-transcript banner during
dictation. Sticky processing indicator for long uploads / imports.

**Timeline (MDs)**
Cards grouped by time bucket (Today / Yesterday / This week / This
month / Earlier). Status icons (Cloud / Globe / Users + sync badge).
300ms-debounced semantic search (server) + local title-match filter
(8-result cap). 30s cache, pull-to-refresh. Spotlight indexing.

**Document detail**
Status icon + "Copy for AI" pill (clipboard the canonical AI sentence).
Share button (canonical short URL). Mono URL chip. MarkdownBody render
with syntax highlighting. Inline TOC sheet. Edit mode. Delete (30-day
trash recovery). Add-to-bundle modal. AI panel (ChatSheet) scoped to
the doc.

**Bundles**
Glass card rows. Segmented filter All / Private / Shared / Public.
Bundle detail with deploy URL + access state. 30s cache + pull-to-refresh.

**Profile / Settings**
Hub card with `@<slug>` URL. Copy-for-AI wedge. Hub stats (memory count,
bundle count). Inline edits for email / username / display name.
Appearance / accent picker. Dictation locale picker (KR / EN primary).
Help / About / Legal. Sign out. Version + build.

**Auth**
Apple Sign-In (App Store 4.8 required), Google, GitHub, Email. Staggered
entrance: blob, wordmark, "iOS COMPANION" chip, providers, footer.

**Share extension**
Accepts URL / plain text / Safari JS preprocessor result (title + body).
Forwards to Capture pre-filled. No UI of its own.

**Siri / App Shortcuts intents**
- "Capture a memory" (pre-fill text param)
- "Search Memory.Wiki" (query param routes to timeline + search modal)
- "Open my Memory.Wiki hub" (opens `@slug` in Safari)

Discoverable in Shortcuts, Spotlight, Siri, Action Button (iOS 16+).

**Brand**
Dark-only. `BrandTokens.generated.swift` from Style Dictionary. Cal Sans
display, Noto Sans body, JetBrains Mono captions/URLs. Sheet chrome
forced dark, 28pt corner radius.

**Offline**
NWPathMonitor banner above tab bar. Cached data readable, saves queued
+ retried on reconnect.

---

### I / Android native app (apps/android-native, v1.0 build 1)

**Distribution:** Google Play, package `wiki.memory.MemoryWiki`, name
"memory.wiki", in review.

**Five-tab bottom nav** mirrors iOS exactly: MDs / Bundles / Start /
Capture / Settings.

**Start**, same shape as iOS. Time-of-day greeting (28pt display).
AI URL strip (mono 9pt label, Copy-for-AI button with sparkles, 1.6s
check swap). Ask-your-hub CTA. Hairline-bordered 3-column pulse row.
Three quick action tiles. Recent + Starred. Featured bundle. Stagger
0.08s per block.

**Capture**, six mode pills: Write / URL / Photo / OCR / Voice /
Import. Title + body BasicTextField pair. Sticky toolbar pill row
above IME (imePadding). Capture-paste deep link integration (clipboard
fill on `RouterEvent.CapturePaste`).

**Timeline / Bundles / Document detail / Settings**, feature parity
with iOS.

**Auth**, same staggered entrance. "ANDROID COMPANION" chip. Provider
stack: Google / GitHub / Email / Apple (52dp glass rows, gradient
stroke, press scale 0.985 + brightness dim).

**App Shortcuts (static, long-press launcher)**
- Capture (`memorywiki://capture`)
- Ask hub (`memorywiki://chat-hub`)
- Search (`memorywiki://search`)
- Paste (`memorywiki://capture-paste`, auto-fills clipboard)

**Google Assistant App Actions**
- CREATE_NOTE routes to capture
- GET_THING routes to search

**Quick Settings tile**
Long-swipe to Quick Settings, tap, fast-action capture.

**Share intent** (silent, no UI)
SEND text/plain, SEND image/*, SEND_MULTIPLE image/*. Forwards body +
subject via deep link.

**Widgets**
- `MemoryWikiWidget`, full home screen (quick capture, recent, hub
  stats).
- `MemoryWikiMiniWidget`, compact variant.

**Brand**
Dark-only. `BrandTokens.generated.kt` from Style Dictionary. No
Material You dynamic color (intentional, brand consistency).

---

### J / Desktop (apps/desktop, Electron Mac DMG v2.7.5)

**Distribution:** GitHub Releases DMG. Developer ID signed + notarized.
Mac App Store version is a separate Safari container app (NOT this
Electron app).

**Architecture**
Single Compose host (Electron BrowserWindow). Renderer = web UI bundled
locally (offline-safe). Main process owns AuthManager + SyncEngine +
workspace folder scanning + file watcher + recent files cache.

**Editor & renderer**
TipTap ProseMirror WYSIWYG (Phase B full). markdown-it WASM renderer
matching web. CodeMirror 6 for raw markdown source pane. Split-pane
(left preview / right source or sidebar file list).

**Sidebar**
Filter tabs ALL / SYNCED / LOCAL / CLOUD. Sort: newest / oldest / a-z /
z-a. Cloud search via `/api/search`. Per-file status icon. Recently
visited cache. Workspace folder picker.

**Sync engine**
30s poll, 2s push debounce (per-file mutex), 5-retry offline queue
(persisted to `offline-queue.json`). Yjs CRDT for real-time multi-user
editing. Conflict detection + resolution with `suppressConflictUntil`
guard to prevent edit/remote/merge loops.

**File support**
Text: .md / .markdown / .mdown / .mkd / .txt
Imports: .pdf / .docx / .pptx / .xlsx / .html / .csv / .json

**QuickLook integration**
Detects whether `memory.wiki QuickLook.app` is registered. IPC
`is-quicklook-installed` polls QLSupportedContentTypes. IPC
`open-quicklook-settings` deep-links to Finder System Settings.
Auto-repair on launch (re-registers if missing).

**Theme**
Follows `nativeTheme` (system dark/light follow).

---

### K / QuickLook plugin (apps/quicklook, bundled with Desktop DMG)

**File types:** `.md`, `.markdown` (UTIs `net.daringfireball.markdown`,
`public.markdown`).

**Render stack:**
- marked.js, HTML
- highlight.js, code (190+ languages)
- KaTeX, math
- Mermaid, diagrams
- Vendored `preview.css` mirrors `apps/web/src/app/globals.css`
  `.mdcore-rendered` tokens

**UX**
Space-bar in Finder on any .md, live preview panel. "Open in
memory.wiki" button + copy-code buttons. macOS dark/light auto-follow.

**CLI variant**
`memory-wiki-quicklook file.md [--open] [-o output.html]` generates a
standalone HTML preview from the command line.

---

### L / VS Code extension (apps/vscode-extension, v1.7.0)

**Distribution:** VS Code Marketplace, `raymindai.memory-wiki-vscode`.

**Sidebar TreeView**
Lists cloud docs filtered by state (public / shared / private /
view-only). Folder hierarchy. Star pinning. Bi-directional sync.
Webview-based with real-time refresh.

**Live preview panel**
markdown-it + KaTeX + Mermaid + 190+ language highlighting + GFM.
Local render (no roundtrip).

**Sync engine**
Auto-save on file write when `autoSync` enabled. Configurable interval
10 to 300s. Conflict resolution queues remote changes during concurrent
edits.

**Commands** (palette + keybindings)
- `memorywiki.publish`, Cmd+Alt+P
- `memorywiki.update`
- `memorywiki.pull`
- `memorywiki.preview`, Cmd+Shift+M
- `memorywiki.export`, Cmd+Alt+E
- AI actions: polish / summary / tldr / translate / chat
- Copy-for-AI

**Status bar**, collaborating peer count + sync indicator.

**Per-workspace config**
`memorywiki.apiBaseUrl` / `.theme` (auto/dark/light) / `.autoSync` /
`.autoPreview` / `.syncInterval`.

**Auth**, `/auth/vscode` OAuth handoff, JWT in secure storage.

---

### M / CLI (apps/cli, npm `memory-wiki-cli` v1.4.3)

**Binary:** `mw`

**Commands**
- `mw publish [file]`, reads stdin if no file, extracts H1 title,
  prints URL + AI-paste sentence. Pipeline-friendly:
  `cat file.md | mw publish`, `pbpaste | mw publish`,
  `tmux capture-pane -p | mw publish`.
- `mw update <id> <file>`, patch using stored edit token from
  `~/.memory.wiki/tokens.json`.
- `mw pull <id> [-o file]`, markdown to stdout or save.
- `mw list`, auth-required.
- `mw open <id>`, open in browser.
- `mw render <file>`, local HTML render.
- `mw login` / `mw logout` / `mw whoami`, auth state.

**Config**
Token in `~/.memory.wiki/config.json`. Respects `MEMORY_WIKI_URL`
(legacy `MDFY_URL`).

---

### N / MCP server (packages/mcp, npm `memory-wiki-mcp` v1.5.4)

**Distribution:** npm. Used by Claude Desktop, Cursor, Windsurf, Codex,
any MCP-aware client.

**22 tools** (the moat, full bidirectional access for AI agents):

| Group | Tools |
|---|---|
| Core CRUD | `mw_create` / `mw_read` / `mw_update` / `mw_delete` / `mw_list` / `mw_search` |
| Sharing & access | `mw_publish` / `mw_set_allowed_emails` / `mw_set_expiry` / `mw_get_share_url` / `mw_for_ai` |
| Content manipulation | `mw_append` / `mw_prepend` / `mw_outline` / `mw_extract_section` / `mw_replace_section` |
| Versions | `mw_versions` / `mw_restore_version` / `mw_diff` |
| Import & duplicate | `mw_duplicate` / `mw_import_url` |
| Folders | `mw_folder_list` / `mw_folder_create` / `mw_move_to_folder` |
| Knowledge graph | `mw_hub_constellation` / `mw_bundle_constellation` |
| Stats & history | `mw_stats` / `mw_recent` |
| Utility | `mw_render_preview` |

**Auth**, JWT via `mw login` (shared with CLI). Env:
`MEMORY_WIKI_BASE_URL`.

**`mw_for_ai`**, generates the canonical "Use memory.wiki/<id> as my
context." sentence. Accepts bare ID, full URL, `b/<id>` for bundles, or
`@<slug>` for hubs. This is the one tool that bridges everything.

---

## Part 3 / Cross-surface feature matrix

| Capability | Web | Chrome | Safari iOS | Safari Mac | iOS native | Android | Desktop | QuickLook | VS Code | CLI | MCP |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Capture web page | / | yes | yes | yes | URL paste | URL paste | URL paste | / | / | URL via API | `mw_import_url` |
| Capture AI chat | / | yes | yes | yes | Share sheet | Share intent | Paste | / | / | Paste | / |
| Capture social post | / | yes | yes | yes | Share | Share | Paste | / | / | Paste | / |
| Capture selection | / | yes | yes | yes | Share | Share | Paste | / | / | stdin | / |
| Capture image | / | yes hover | yes hover | yes hover | Photo + OCR | Photo + OCR | Drag-drop | / | / | / | / |
| Capture voice | / | / | / | / | yes dictation | yes dictation | / | / | / | / | / |
| Intent capture (AI transform) | / | yes | yes | yes | Doc-level AI panel | Doc-level AI panel | Editor AI | / | Palette AI | / | `mw_update` after generate |
| Recent captures | yes /user/recent | yes local | yes local | yes local | Timeline | Timeline | Sidebar | / | Sidebar | / | `mw_recent` |
| Hub view | yes /@slug | Footer link | Footer link | Footer link | Open in Safari | Open hub | / | / | / | / | `mw_hub_constellation` |
| Bundle view | yes /b/id | / | / | / | Bundles tab | Bundles tab | Sidebar | / | Sidebar | / | `mw_bundle_constellation` |
| Sign in | OAuth + email | Chip routes to /auth/chrome | Chip routes to /auth/safari | Chip routes to /auth/safari | Apple/Google/GH/Email | Google/GH/Email/Apple | OAuth | / | OAuth | `mw login` | `mw login` |
| Sign out (drops session) | yes | yes | yes (force-signout) | yes (force-signout) | yes | yes | yes | / | yes | `mw logout` | / |
| Offline mode | / | URL hash fallback | URL hash fallback | URL hash fallback | yes NWPath | yes | yes offline queue | yes (read-only) | partial | / | / |
| Real-time collab | yes Yjs | / | / | / | / | / | yes Yjs | / | peer count | / | / |
| AI chat with hub | yes | / | / | / | ChatSheet (doc) | (doc-level) | (doc-level) | / | (doc-level) | / | (read tools) |
| Cross-AI URL | yes /raw | yes Use as my context | yes | yes | yes Copy-for-AI | yes Copy-for-AI | yes | "Open in memory.wiki" | yes Copy-for-AI | yes paste-friendly | `mw_for_ai` |
| Keyboard shortcuts | / | Shift+Cmd+E / Shift+Cmd+X | (system) | Shift+Cmd+E / Shift+Cmd+X | Shortcuts app | Long-press | / | / | Cmd+Alt+P, Shift+Cmd+M | (terminal) | / |
| Brand tokens source | globals.css | (web tokens) | (web tokens) | (web tokens) | BrandTokens.swift | BrandTokens.kt | nativeTheme + globals | preview.css | (theme inherit) | / | / |

**Parity gaps to close** (visible from the matrix):
1. **Voice capture**, only on iOS / Android. Could add to Desktop via
   system dictation.
2. **Hub view in extensions**, only footer link. Could deep-link to a
   hub-aware popup mode when the active tab is `@<slug>`.
3. **Real-time collab**, only Web + Desktop. iOS / Android / VS Code
   show last-saved.
4. **AI chat with hub**, only Web. Native apps + Desktop scope chat to
   the current doc, not the hub.
5. **MCP write tools**, every other channel can write docs, MCP also
   can, but Cursor / Claude Desktop users may not realize.

---

## Part 4 / Messaging alignment

### 4.1 Canonical terms (use these exact words)

| Concept | Canonical | Don't say |
|---|---|---|
| The product | memory.wiki | mdfy, mdcore, Memory.Wiki, Memory Wiki, memorywiki |
| The browser clipper | memory.wiki Clipper | Clipper, mwClipper, memory.wiki Chrome, memory.wiki for Safari |
| The native iOS app | memory.wiki (iOS app, id6774713489) | memory.wiki Native, memory.wiki Mobile |
| The native Android app | memory.wiki (Android app) | / |
| The Electron app | memory.wiki Desktop | memory.wiki for Mac (that's the Safari container) |
| A single document | Doc | document, note, memo, file |
| A multi-doc collection | Bundle | collection, folder, pack |
| A personal wiki | Hub | profile, page, wiki, knowledge base |
| The 8-char URL | the doc URL / `memory.wiki/<id>` | shortlink, share link |
| The mono one-liner you paste into ChatGPT | "Use memory.wiki/<id> as my context." | Copy this link, Share to AI |
| The animated mark | the blob | the icon (use "the blob" when you mean the morphing SVG specifically) |

### 4.2 Voice & typography rules

- No middle-dot (the centered dot), em-dash (the long dash), arrow (the right-pointing arrow), or emoji in product UI.
  Use slash `/`, comma, parens, or whitespace instead.
- Cal Sans always at `letter-spacing: 0`.
- Lime `#B5FF1A` is reserved for 6 to 12px dots / badges / icon glyphs.
  Never as button background, overlay, headline, or section eyebrow.
- "memory.wiki" is lowercase in body copy. "memory.wiki Clipper" stays
  lowercase too. App Store titles can use TitleCase when the platform
  forces it.
- Verbs are present tense: "captures", "deploys", "renders", not
  "captured", "will deploy", "is able to render".

### 4.3 Three-line elevator pitch (recyclable)

> **Capture from any AI chat, any web page, any thought.**
> **Bundle by topic into a knowledge graph.**
> **Deploy as a URL that any AI reads.**

Use this in store listings, /plugins, /about hero, README, and the
extension popup signin blurb.

---

## Part 5 / /about page restructure proposal

**Current /about problem**: Tries to do too much in one scroll, hero,
9 surfaces, primitives, benchmarks, comparison table, pricing, FAQ.
Reads like a feature list, not a story. New visitors bounce because
they don't get "what is this in 5 seconds."

**Proposed new IA** (top-to-bottom):

1. **Hero, what it IS, in 8 words**
   > Capture anywhere. Bundle by topic. Deploy to any AI.
   - CTA: "Try it free" to web editor
   - Sub-CTA: "Get the Clipper" to /plugins#chrome

2. **Live demo strip, show, don't tell**
   - Animated 4-second loop: browser, click Clipper, intent typed,
     memory.wiki URL opens, URL pasted into Claude chat, Claude reads
     the page. Same URL also shown in ChatGPT side-by-side.
   - Caption: **"One capture. Every AI reads it."**

3. **Three primitives** (the URL architecture is the brand)
   - Doc, `memory.wiki/<id>`, single page or thought.
   - Bundle, `memory.wiki/b/<id>`, multi-doc knowledge graph.
   - Hub, `memory.wiki/@<slug>`, personal wiki.
   - Each shown as a card with a real example URL the visitor can click.

4. **Capture surfaces, where it lives**
   Grouped, not 9-up grid:
   - **Browser**, Chrome / Safari extensions (one card, two store links)
   - **Mobile**, iOS / Android (one card, two store links)
   - **Desktop**, Mac DMG (Electron) + Mac App Store (Safari container)
   - **AI agents**, MCP server (Claude Desktop, Cursor, Windsurf,
     Codex) + CLI (`mw publish`)
   - **Editor**, VS Code extension + browser editor at memory.wiki
   - **Finder**, QuickLook preview (Space bar)

5. **Cross-AI proof**, the benchmark table stays, but headline becomes:
   > **The same URL. The same payload. Every AI.**
   Same `/raw/<id>` fed to Claude / ChatGPT / Gemini / Cursor /
   Perplexity. Rendered output side-by-side. No fork, no per-AI
   adapter.

6. **What the AI sees**, show the `/raw/<id>` page. Surfaces the
   YAML frontmatter + body + context block. The brand's secret weapon
   is that this is **just markdown**, no proprietary format.

7. **Versus vendor memory** comparison table:

|  | memory.wiki | ChatGPT Memory | Claude Projects | Notion |
|---|---|---|---|---|
| Portable across AIs | yes | no | no | no |
| Owned by user | yes | no (vendor) | no (vendor) | yes |
| URL-addressable | yes | no | no | yes |
| AI-readable as markdown | yes /raw | no | no | no (paywalled API) |
| Auto-captured on the way out | yes | no (user must save) | no | no |

8. **Trust strip**
   - Open source (link to repo)
   - No login required for first capture (anon hash URL)
   - URLs are permanent (never expire, pricing memory backs this)
   - Cross-AI inheritance is the guarantee, not a feature

9. **Pricing**, Free during beta, Pro later. Repeats the no-expiry
   promise.

10. **FAQ**, keep, but trim to 6 high-intent questions:
    - Do I own my data?
    - Does it work with ChatGPT / Claude / Cursor / Gemini?
    - What happens to URLs if I stop paying?
    - Can I import from Notion / Obsidian / Roam?
    - Is the editor required? (No, capture-only flows are valid.)
    - What's a Bundle vs a Hub?

11. **Footer**, channel rail (every distribution channel as a chip with
    version + size, pulled from `channel-versions.ts`).

**Removed from current /about:**
- 16-item features grid (overwhelms, moves to /plugins channel pages)
- Roadmap (lives in `docs/ROADMAP.md` + tracked in admin only)
- 9-surfaces literal grid (replaced by 6-grouped capture surfaces above)

**Tone**:
- Less "look at all these features"
- More "here's what you can do today, in 60 seconds"
- The benchmark and primitives sections are the moat, keep them
  prominent. Everything else supports them.

---

## Part 6 / Marketing strategy

### 6.1 Positioning (one sentence)

**"memory.wiki is the personal knowledge layer that every AI inherits
the moment you paste a URL."**

What this kills:
- Notion-as-AI-memory (Notion's AI is bound to Notion's surface)
- ChatGPT Memory / Claude Projects (vendor-locked, not portable)
- Bookmark managers (no AI consumption)
- "Save for later" apps (no AI deployment)
- Local markdown editors (not URL-addressable)

What this competes with directly: **none head-on**. memory.wiki sits
between "AI memory I can't move" and "files I can move but no AI
reads", the only product whose URL is both human-browsable and
AI-deployable.

### 6.2 Three growth loops to ship

**Loop 1 / Capture viral (built into extensions)**
- Every clipped doc page footer carries: "Captured with **memory.wiki
  Clipper**" with chip link to /plugins.
- Every `/raw/<id>` response includes a footer line in the context
  block: `Generated by memory.wiki, capture with the Chrome extension
  or `mw publish` from your terminal`.
- The AI sentence "Use memory.wiki/<id> as my context." IS the viral
  unit, every time a user pastes it into Claude / ChatGPT, the URL
  goes into AI training-set telemetry too.

**Loop 2 / Hub-as-portfolio (built into hubs)**
- Hub URLs `memory.wiki/@<slug>` are public-by-default and indexable.
- Hub OG image shows avatar + doc count + concept count, social-share
  friendly.
- Targeted at builders, researchers, indie hackers, anyone with a
  Twitter / LinkedIn / personal site link to their work.

**Loop 3 / AI agent integration (built into MCP)**
- Cursor / Windsurf / Codex / Claude Desktop install the MCP server,
  the agent can READ + WRITE to memory.wiki autonomously.
- Use case: "Cursor saves every README it reads into your memory.wiki
  hub." Or: "Claude Desktop drafts a memo and publishes the URL back
  to itself the next session."

### 6.3 Channel-by-channel playbook

| Channel | Audience | Wedge message | Asset |
|---|---|---|---|
| Twitter / X | AI builders, indie hackers | "Stop re-explaining context to every AI. One URL, every AI reads it." | 30-second loop GIF: chip click, URL, paste into 3 different AIs. |
| Hacker News | engineers, devtools enthusiasts | Show HN: memory.wiki, paste this URL into any AI as your context. | /benchmark page + open-source repo + MCP support. |
| Product Hunt | productivity nerds | "Your knowledge hub for the AI era." | Featured channel: Chrome ext + iOS app + Mac app launches all stacked. |
| Reddit r/ChatGPT, r/ClaudeAI, r/LocalLLaMA | power users | "I built a thing that lets me carry context between Claude and ChatGPT." | Bare-bones post linking /benchmark, no marketing fluff. |
| LinkedIn | knowledge workers, PMs | Hub-as-portfolio angle. "My memory.wiki is my AI-readable resume." | Founder hub as the proof. |
| Designer / dev Twitter | brand-conscious folks | The animated blob + brand polish. Aesthetic as the wedge. | Brand kit assets + the /about page itself as a portfolio. |
| Newsletter sponsorships | TLDR, Bytes, etc. | "Bookmarks are for browsers. memory.wiki is for AIs." | One-line CTA with the extension link. |
| AI Dev communities (Cursor / Claude Discord / Windsurf) | agentic dev users | MCP-first pitch. Live demo: Cursor reads/writes memory.wiki autonomously. | Setup video + 1-min MCP install guide. |

### 6.4 Launch sequence (12 weeks, ending late August 2026)

(Aligns with `v6_12week_plan_state` memory, all twelve weeks landed on
v6 branch by 2026-05-05, public flip held for end of August 2026.)

- **W -4 to -1 (now)**, finish all submissions:
  - iOS native (live)
  - iOS Safari Clipper (in review)
  - Android (in review)
  - Mac App Store Safari Clipper (in review)
  - Chrome Web Store 2.7.6 (in review)
- **W -3**, `/about` page restructure ships per Part 5 above.
- **W -2**, `/benchmark` page polished. Three demo videos recorded
  (capture and paste / Hub portfolio / MCP autonomous).
- **W -1**, soft launch to friends + Twitter circle, gather feedback,
  fix top 3 bugs.
- **W 0 (Aug 27, 2026, Wednesday)**, public flip:
  - Show HN
  - Product Hunt launch (book a Tuesday slot)
  - Founder Twitter thread + LinkedIn post
  - r/ChatGPT + r/ClaudeAI cross-post
  - Press: TLDR sponsorship, Bytes sponsorship
- **W +1 to W +4**, community engagement, MCP-focused content (Cursor
  + Claude Desktop demos), targeted Reddit replies, top hubs as case
  studies.
- **W +6**, Pro pricing turn-on (free during beta ends).
- **W +8 to +12**, partnership outreach (Anthropic / OpenAI dev
  relations, Cursor / Windsurf integrations as featured installs).

### 6.5 What NOT to do

- **Don't lead with "AI memory."** Vendor memory ate that phrase.
  Lead with "URL any AI reads."
- **Don't show the editor as the hero.** The editor is fine, but the
  hero is the capture / URL / AI chain. Showing the editor first
  makes it look like another Notion clone.
- **Don't claim "the best for X."** Claim "the only one that does Y
  across N AIs." Specific facts beat superlatives.
- **Don't write blog posts pre-launch.** Write demos. Every demo links
  to a live `/raw/<id>` the reader can copy-paste.
- **Don't bundle the Pro tier with the launch.** Free-for-now keeps the
  signup friction at zero. Pricing turns on when DAU stabilizes.
- **Don't run paid ads before W+6.** Organic loops first, paid
  re-amplification of what already worked.

### 6.6 KPIs to watch

- **Captures / day**, primary product KPI. 1k/day at W+4 is the
  internal goal.
- **Unique users who pasted a URL into an AI**, the moat KPI. Tracked
  via the AI sentence clipboard event + downstream UA on `/raw/<id>`
  fetches (Claude / ChatGPT bot UAs).
- **Hubs with 5+ docs**, engagement KPI. Hub = retained user.
- **MCP installs**, agent integration KPI. Tracked via npm download
  stats.
- **Cross-AI fetch ratio**, `/raw/<id>` hits broken down by AI bot UA.
  Healthy = no single AI more than 60% of fetches.

---

## Part 7 / Maintenance

When any channel ships a new feature OR changes copy:
1. Update its section in **Part 2** above.
2. Update the matrix in **Part 3** if a parity gap closes / opens.
3. Update the canonical terms in **Part 4.1** if a name changes.
4. If the change touches /about, update **Part 5**.
5. If the change opens a new growth angle, add to **Part 6.3**.

The doc is dated `2026-06-14` in the title. Re-date when a substantial
revision lands.

**File locations referenced** (for future-self / collaborators):
- Web: `apps/web/src/app/**`
- Web tokens: `apps/web/src/app/globals.css`
- Channel versions: `apps/web/src/lib/channel-versions.ts`
- Chrome ext: `apps/chrome-extension/**`
- Safari ext: `apps/safari-extension/memory.wiki Clipper/**`
- iOS: `apps/ios-native/**`
- Android: `apps/android-native/**`
- Desktop: `apps/desktop/**`
- QuickLook: `apps/quicklook/**`
- VS Code: `apps/vscode-extension/**`
- CLI: `apps/cli/**`
- MCP: `packages/mcp/**`
- Design tokens source: `design-tokens/**`
- Canonical brand wiki: https://memory.wiki/L2SHNVir


---

## Summary
memory.wiki is a personal knowledge hub that allows users to capture information across various surfaces and deploy it as a standardized URL for AI agents to read. The platform functions as a unified knowledge graph where documents, bundles, and hubs serve as both human-readable web pages and machine-readable markdown resources.

## Themes
- personal knowledge hub
- AI-first architecture
- cross-platform deployment
- unified knowledge graph

## Key takeaways
- memory.wiki defines three core primitives: Doc, Bundle, and Hub.
- The platform uses an AI-first deployment model where any URL serves as a clean payload for agents like ChatGPT, Claude, and Gemini.
- The web viewer acts as the canonical render layer for all other channels including extensions, desktop apps, and CLI tools.
- Real-time collaboration on documents is handled via Yjs CRDT to bypass conflict detection.
- The system uses a provider cascade of OpenAI, Gemini, and Anthropic for all AI-driven transformations and generation tasks.

## Insights
- The system treats every document, bundle, and hub as both a human-readable web page and an AI-readable markdown resource through automatic middleware routing.
- The platform enforces a strict single source of truth for versioning and branding to prevent fragmentation across its nine distinct surfaces.
- Safari's storage partitioning necessitated a custom auth-bridge architecture that relays session tokens from the browser page context to the extension background.

## Open questions / gaps
- The document mentions a 8KB URL cap for unsigned-in payloads but does not specify the fallback behavior for payloads exceeding this limit beyond a toast notification.

## Concepts in this document
- **memory.wiki** _(entity)_
  Consumer app product developed by Raymind.AI.
- **Bundle** _(concept)_
  A multi-doc knowledge graph located at memory.wiki/b/<id>.
- **Hub** _(concept)_
  A personal wiki feed located at memory.wiki/@<slug>.
- **Doc** _(concept)_
  A single document identified by an 8-character ID at memory.wiki/<id>.
- **Surface & Feature Inventory** _(tag)_
  The canonical reference document for messaging alignment and product feature definitions.
- **Deploy** _(concept)_
  The core action of making content accessible to AI agents like ChatGPT, Claude, and Gemini via a unified URL payload.
- **Cross-AI guarantee** _(concept)_
  Middleware logic ensuring URLs function as both human-readable web pages and AI-readable markdown resources.
- **Yjs CRDT** _(entity)_
  The technology used for real-time collaboration and conflict-free merging in documents.

## Concept relations (within this doc's concepts)
- **Bundle** contained within **Hub**
- **Hub** organizes **Bundle**
- **Hub** contains multiple **Bundle**
- **Bundle** curates collection of **Doc**
- **Hub** organizes related **Doc**
- **memory.wiki** organizes into **Hub**
- **memory.wiki** deploys docs as **Bundle**
- **Hub** aggregates **Bundle**
- **memory.wiki** owns the concept **Doc**
- **memory.wiki** owns the concept **Bundle**
- **memory.wiki** owns the concept **Hub**
- **memory.wiki** enables the verb **Deploy**
- **Cross-AI guarantee** supports brand promise **memory.wiki**

_Hub canonical:_ https://memory.wiki/hub/raymindai
_Concept digest:_ https://memory.wiki/raw/hub/raymindai?digest=1&compact=1
