Live demo · Quick start · Connect an instance · Design system · Contribute
An open-source operator console for a Supermemory memory engine. Browse extracted facts, follow ingestion, inspect revisions, trace relationships, tune spaces, and query the API without losing sight of how the system arrived at an answer.
It is useful before a server is running, too. The bundled mock backend has a complete fabricated corpus and implements the same async ingest, versioning, soft-forget, graph, and search semantics as the live surface.
Important
This is an unofficial, community-built project. It is not affiliated with, maintained by, or endorsed by Supermemory. All demo content and named personas are fabricated.
- Observe ingestion. Documents visibly move through queued, extraction, chunking, embedding, indexing, and completion states.
- Operate on facts. Browse, search, revise, forget, restore, and inspect the version history of atomic memories.
- Explain recall. Follow
extends,derives, and source relationships through a force-directed graph and focused neighbourhood views. - Read memory as a timeline. See documents arrive and facts become learned, asserted, inferred, revised, or forgotten.
- Scope the corpus. Configure spaces, merge boundaries, filters, profile buckets, and extraction behaviour.
- Explore the contract. Exercise the documented Memory API from a built-in request console while credentials remain server-side.
|
|
| Memory bank Search and operate on every extracted claim. |
Timeline Watch knowledge arrive, change, connect, and retire. |
Requires Node.js 20.9 or newer. This runs the same optimized Next.js build that you would deploy:
git clone https://github.com/wende/supermemory-ui.git
cd supermemory-ui
npm ci
npm run build
npm run startOpen http://localhost:3000. No backend or API key is needed: the console starts against its bundled mock and every screen is ready to use.
Or try the hosted mock immediately at supermemory-ui.vercel.app.
Start the memory engine, then add its server-only connection details:
# terminal 1
supermemory-server
# .env.local
SUPERMEMORY_URL=http://localhost:6767
SUPERMEMORY_KEY=sm_your_key
# terminal 2
npm ci
npm run build
npm run startThe browser talks only to this app's /api/* routes. Next.js route handlers
proxy and adapt the Memory API, so the origin and API key never reach client
JavaScript and no CORS setup is required. See .env.example.
For richer runtime metadata when the console and engine share a machine, opt in to reading the local install directory:
SUPERMEMORY_LOCAL_DIR=~/.supermemoryThat adds the installed version, configured providers, storage path and size, and process uptime to the runtime panel. Provider keys are used only to identify which provider is configured; their values are never returned to the browser.
browser
└─ /api/* route handlers
├─ mock contract ── seeded, mutable, zero-config demo
└─ remote adapter ── SUPERMEMORY_URL + SUPERMEMORY_KEY
Mock and remote are two backends behind one UI contract. Switching between them does not replace the product model with a simplified demo model:
PATCH /v4/memoriescreates version n+1 and retains prior wording.- Forgetting removes a memory from the active set but keeps its graph edges.
- New documents advance asynchronously through the ingest pipeline.
- Search is scored and ranked; mode, threshold, limit, reranking, aggregation, rewrite, and include options all affect results.
- State persists for the server process and resets on restart or a cold serverless instance. The mock is intentionally not a database.
| Surface | Operator job | Primary API |
|---|---|---|
| Overview | Corpus health, ingest activity, latency, runtime | /stats, /health, /v3/documents/processing |
| Memory bank | Search, revise, forget, restore, inspect history | /v4/memories/*, /v4/search |
| Timeline | Follow documents and memory lifecycle events | /v3/documents/*, /v4/memories/* |
| Graph | Trace memories, documents, spaces, and typed edges | /v4/graph |
| Add memory | Write, link, upload, batch, or assert | /v3/documents/*, /v4/memories |
| Documents | Inspect pipeline state, chunks, and metadata | /v3/documents/* |
| Spaces | Scope, filter, merge, and configure corpora | /v3/container-tags/* |
| Profile | Inspect synthesized facts and custom buckets | /v4/profile/* |
| Settings | Tune extraction, workspace, and runtime behaviour | /v3/settings/* |
| API explorer | Send requests across the documented surface | all documented endpoints |
Visited tabs stay mounted inside RouteHost, so scroll position, graph state,
forms, and DOM state survive navigation. A small stale-while-revalidate cache
deduplicates identical requests, warms routes while the browser is idle, and
invalidates every derived view after corpus mutations.
Pages live in src/routes/, URL stubs in src/app/, and the route registry in
src/routes/registry.ts. The event model behind Timeline is a pure function in
src/lib/timeline.ts; the mock Memory API lives under src/app/api/.
The visual system is documented in Storybook and in DESIGN.md:
quiet light/dark surfaces, dense operator-first layouts, and a
colour-vision-validated categorical palette where colour is never the only
signal.
Use the development server only when working on the project:
npm install
npm run dev # local development with hot reload
npm run typecheck # strict TypeScript check
npm test # Vitest suite
npm run storybook # component workbench on :6006
npm run build-storybook # static Storybook buildGitHub Actions and Vercel deploy independently; the exact checks and deployment
triggers are documented in .github/workflows/README.md.
Next.js 16 App Router · React 19 · strict TypeScript · Tailwind CSS v4 · Radix primitives · d3-force · Vitest · Storybook.
- Read
CONTRIBUTING.mdbefore opening a pull request. - Use GitHub Issues for bugs and feature proposals.
- Report vulnerabilities privately as described in
SECURITY.md. - Review the community expectations in
CODE_OF_CONDUCT.md.
MIT © Krzysztof Wende.

