Run a local web UI for viewing and managing memories.
Prefer a hosted option with nothing to install? The same web UI is available at api.memory.build β sign in with GitHub or Google.
me serveruns that UI locally against your CLI session instead.
me serve [--port <port>] [--host <host>] [--no-open]
Starts a local HTTP server that:
- Serves a React-based UI for browsing, searching, viewing, editing, and deleting memories.
- Proxies JSON-RPC calls from the browser to the server, injecting the resolved bearer credential (your session or
ME_API_KEY) so it never reaches the browser.
By default the server binds to 127.0.0.1:3000; if 3000 is busy it tries 3001, 3002, β¦ up to 3019 before giving up. Passing --port explicitly is strict β it does not auto-increment.
The browser opens automatically on startup unless --no-open is passed. Press Ctrl+C to stop.
The UI talks to whichever space is active for the current server β same resolution as every other me command (--server flag > ME_SERVER env > stored default server; within the server, the active space is picked via me space use). Run me whoami to confirm.
| Option | Description |
|---|---|
--port <port> |
Port to bind. Default 3000, auto-incrementing only when the default is busy. |
--host <host> |
Host to bind. Default 127.0.0.1 (loopback only). |
--no-open |
Do not auto-open the browser after the server starts. |
| Option | Description |
|---|---|
--server <url> |
Server URL (overrides ME_SERVER env and stored default) |
--json |
Output the startup banner as JSON instead of text |
--yaml |
Output the startup banner as YAML instead of text |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Search [Simple | Advanced] [Clear] β
ββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββ€
β β tree breadcrumb [Copy] [Edit] β¦ β
β TreeView β β
β . (root) β rendered markdown / Monaco editor β
β βββ work β β
β β βββ π β¦ β β
β βββ personal ββββββββββββββββββββββββββββββββββββββββββββ€
β β id, embedding, timestamps (read-only) β
ββββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββ
- Tree (left): tree paths as collapsible nodes, memories as leaves. Right-click a node for a context menu (delete memory / delete subtree).
- Search (top): simple hybrid search by default; flip to Advanced for every field accepted by
memory.search(semantic, fulltext, grep, tree, meta, metaPredicate, temporal, limit, candidateLimit, semanticThreshold, weights, orderBy). - Viewer / Editor (right): rendered Markdown with syntax highlighting, or the Monaco editor with YAML frontmatter + body. The copy button copies the Markdown source with frontmatter. Save is disabled until you make a valid change. The read-only metadata panel sits below.
- URL state: filter fields and the selected memory id are reflected in the URL, so any view can be shared or bookmarked.
- The server binds to
127.0.0.1only β no LAN exposure. The browser never sees your session token;me serveinjects it into RPC calls on the way out. - No authentication is required on the local server. Do not
--host 0.0.0.0or tunnel the port unless you understand the implications.
# Simplest invocation β picks a port, opens the browser.
me serve
# Use a specific port and skip auto-open (handy when iterating in dev).
me serve --port 8080 --no-open
# Point at a specific server.
me serve --server https://api.memory.buildme space useβ pick the active space thatme servewill connect to.me memory searchβ the CLI equivalent of the UI's search bar.