Skip to main content

Example Apps

The repo includes ready-to-run apps in apps/ that show different Walrus Memory integration patterns. This page focuses on app-level patterns,the basic SDK flow covered in Quick Start and Walrus Memory Usage.

Run locally

$ pnpm dev:app
$ pnpm dev:chatbot
$ pnpm dev:noter
$ pnpm dev:researcher

Playground

Dashboard, playground, and interactive demo for Walrus Memory.

const memwal = MemWal.create({
key: delegateKey,
accountId: accountObjectId,
serverUrl,
namespace,
});

const job = await memwal.remember(rememberText);
await memwal.waitForRememberJob(job.job_id);
await memwal.recall({ query: recallQuery, limit: 5 });
await memwal.analyze(analyzeText);

This app covers the full getting-started flow in one place. It signs users in, sets up delegate keys, shows SDK credentials, and includes a live playground for remember(), recall(), analyze(), restore(), AI middleware, and manual mode.

Chatbot

AI chat app with persistent memory across sessions.

import { withMemWal } from "@mysten-incubation/memwal/ai";

const model = withMemWal(baseModel, {
key,
accountId,
serverUrl,
maxMemories: 5,
autoSave: true,
});

This app shows AI middleware integration in a production-style chat app. The UI can enable Walrus Memory, collect a delegate key and account ID, and pass them to the chat API. The server wraps the selected model with withMemWal, so recall happens before generation and new context can be auto-saved after each turn.

Noter

Note-taking app that stores insights as encrypted, searchable memory.

export const extractMemories = async (text: string): Promise<string[]> => {
const memwal = getMemWalClient();
const result = await memwal.analyze(text);
return (result.facts ?? []).map((f) => f.text);
};

This app shows note-to-memory extraction. Noter keeps a shared server-side Walrus Memory client, lets the user configure the key and account at runtime, and uses analyze() to turn note content into structured facts while the relayer stores them asynchronously.

Researcher

Research assistant that saves and recalls findings across sessions.

const fullText =
`Sprint Report: ${title}\n\n` +
`${content}\n\n` +
`References:\n${references}\n\n` +
`Sources: ${sourceList}`;

const job = await memwal.remember(fullText);
await memwal.waitForRememberJob(job.job_id);
const { results } = await memwal.recall({ query, limit: 5 });

This app shows long-form research memory and session rehydration. Researcher saves each sprint as a structured report in Walrus Memory, then generates recall queries from sprint metadata, pulls back the most relevant findings, and rebuilds context for a fresh session.