From e3f0276a3e9e2437d0058100137c77548a736811 Mon Sep 17 00:00:00 2001 From: Rohit Ghumare Date: Fri, 15 May 2026 17:32:04 +0100 Subject: [PATCH 1/4] fix(cli): rerender splash banner with clean figlet output + README npx caveat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two small fixes from local v0.9.15 testing: 1. The hand-drawn ASCII in `src/cli/splash.ts` was rendering "agentmemory" with broken middle glyphs — `_ _` instead of `_ __` around the 'n' and merged 'tm/me' segments. Replaced with verified `figlet agentmemory` standard-font output (70 cols, 6 rows, regenerable). Compact + minimal banners untouched. 2. Added a "Recommended: install globally" section to README's Quick Start. Explains the npx per-version cache gotcha (running `npx ...@0.9.14` then `npx @agentmemory/agentmemory` may serve the stale cached version) and the three workarounds: - `npm install -g @agentmemory/agentmemory` (recommended) - `npx -y @agentmemory/agentmemory@latest` (forces fresh fetch) - `rm -rf ~/.npm/_npx && npx ...` (one-shot cache clear) Notes that v0.9.16 ships an interactive global-install prompt inline on first npx run. Build clean (44.46 kB cli.mjs). All 954 tests pass. --- README.md | 20 ++++++++++++++++++++ src/cli/splash.ts | 19 ++++++++++--------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 245dad27..95d37845 100644 --- a/README.md +++ b/README.md @@ -321,6 +321,26 @@ npx @agentmemory/agentmemory demo Open `http://localhost:3113` to watch the memory build live. +### Recommended: install globally + +`npx` caches per-version. If you ran `npx @agentmemory/agentmemory@0.9.14` last week, a bare `npx @agentmemory/agentmemory` may serve the stale 0.9.14 from `~/.npm/_npx/`, not the latest release. Install once and the bare `agentmemory` command works everywhere: + +```bash +npm install -g @agentmemory/agentmemory +agentmemory # start the server (same as the npx form) +agentmemory stop # tear it down +agentmemory remove # uninstall everything we created +agentmemory connect claude-code # wire one agent +agentmemory doctor # interactive diagnostics + fix prompts +``` + +From v0.9.16 onward, the first npx run prompts you to install globally inline — answer `Y` once and you're set. If you skip, fall back to either of these for a fresh fetch: + +```bash +npx -y @agentmemory/agentmemory@latest # forces latest from npm +rm -rf ~/.npm/_npx && npx @agentmemory/agentmemory # clear cache once +``` + ### Session Replay Every session agentmemory records is replayable. Open the viewer, pick the **Replay** tab, and scrub through the timeline: prompts, tool calls, tool results, and responses render as discrete events with play/pause, speed control (0.5×–4×), and keyboard shortcuts (space to toggle, arrows to step). diff --git a/src/cli/splash.ts b/src/cli/splash.ts index bc7f7b46..ad18b2ae 100644 --- a/src/cli/splash.ts +++ b/src/cli/splash.ts @@ -42,17 +42,18 @@ function getTerminalWidth(): number { const TAGLINE = "Persistent memory for AI coding agents"; -// Block-art "agentmemory" lettering. Hand-drawn in box-drawing chars so -// we don't need a figlet dependency. Each row is 70 columns wide which -// gives ~25 cols of breathing room on the 120-col tier. +// "agentmemory" rendered in figlet's standard font (verified output — +// regenerate via `figlet agentmemory` if you change the wordmark). Each +// row is exactly 70 columns wide so the banner aligns cleanly inside +// the 2-col left margin we add below. function fullBanner(version: string): string { const logo = [ - " _ ", - " __ _ __ _ ___ _ _ | |_ _ __ ___ _ __ ___ ___ _ __ _ _ ", - " / _` |/ _` |/ _ \\ '_\\| __| ' \\/ -_) ' \\ _ \\ / _ \\| '__| | | | ", - "| (_| | (_| | __/ | || |_| | | \\___| | | | | | (_) | | | |_| | ", - " \\__,_|\\__, |\\___|_| \\__|_| |_| |_| |_| |_|\\___/|_| \\__, | ", - " |___/ |___/ ", + " _ ", + " __ _ __ _ ___ _ __ | |_ _ __ ___ ___ _ __ ___ ___ _ __ _ _ ", + " / _` |/ _` |/ _ \\ '_ \\| __| '_ ` _ \\ / _ \\ '_ ` _ \\ / _ \\| '__| | | |", + "| (_| | (_| | __/ | | | |_| | | | | | __/ | | | | | (_) | | | |_| |", + " \\__,_|\\__, |\\___|_| |_|\\__|_| |_| |_|\\___|_| |_| |_|\\___/|_| \\__, |", + " |___/ |___/ ", ]; const lines: string[] = ["", ...logo.map((line) => " " + accent(line))]; lines.push(""); From 9fa4a7e1025b9d8b236f1a2617d07b5a40b67db2 Mon Sep 17 00:00:00 2001 From: Rohit Ghumare Date: Fri, 15 May 2026 17:39:04 +0100 Subject: [PATCH 2/4] docs: hoist install section to top of README + update website Install card MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit README: install was buried at line 306 below benchmarks, comparison tables, and the agents grid. Moved a 4-line install block right under the nav anchors at the top, with the bare `agentmemory` command from the global install path leading. Kept the deeper Quick Start section below — this is the "front door" version. website (Install.tsx): the three-card install flow now leads with `npm install -g @agentmemory/agentmemory` (step 1), then bare `agentmemory` + `agentmemory demo`. Section title changed from "THREE COMMANDS. ANY AGENT." to "ONE INSTALL. ANY AGENT." and the lede notes the npx fallback for users who want zero-install. website/lib/generated-meta.json refreshed by the build (auto-derived from package.json + walked test count; pre-existing feedback rule). Build clean (website + main both pass). --- README.md | 22 ++++++++++++++++++++++ website/components/Install.tsx | 23 ++++++++++++----------- website/lib/generated-meta.json | 6 +++--- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 95d37845..b6490017 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@

+ InstallQuick StartBenchmarksvs Competitors • @@ -68,6 +69,27 @@ --- +## Install + +```bash +npm install -g @agentmemory/agentmemory # once — bare `agentmemory` on PATH +agentmemory # start the memory server on :3111 +agentmemory demo # seed sample sessions + prove recall +agentmemory connect claude-code # wire your agent (also: codex, cursor, gemini-cli, ...) +``` + +Or via `npx` (no install): + +```bash +npx @agentmemory/agentmemory +``` + +Heads-up — npx caches per version. If a bare `npx @agentmemory/agentmemory` serves an older release, force the latest with `npx -y @agentmemory/agentmemory@latest`, or clear the cache once with `rm -rf ~/.npm/_npx`. The first npx run from v0.9.16+ prompts to install globally inline so the bare `agentmemory` command works everywhere afterwards. + +Full options at [Quick Start](#quick-start) below. Agent-specific wiring at [Works with every agent](#works-with-every-agent). + +--- +

Works with every agent

agentmemory works with any agent that supports hooks, MCP, or REST API. All agents share the same memory server. diff --git a/website/components/Install.tsx b/website/components/Install.tsx index 02d07588..303e09f8 100644 --- a/website/components/Install.tsx +++ b/website/components/Install.tsx @@ -12,19 +12,19 @@ interface Cmd { const SIMPLE: Cmd[] = [ { - label: "1. START THE MEMORY SERVER", - cmd: "npx @agentmemory/agentmemory", - hint: "RUNS ON :3111 · VIEWER ON :3113", + label: "1. INSTALL ONCE", + cmd: "npm install -g @agentmemory/agentmemory", + hint: "PUTS `agentmemory` ON YOUR PATH · OR USE npx", }, { - label: "2. SEE SEMANTIC RECALL INSTANTLY", - cmd: "npx @agentmemory/agentmemory demo", - hint: "SEEDS 3 SESSIONS · PROVES HYBRID SEARCH WORKS", + label: "2. START THE MEMORY SERVER", + cmd: "agentmemory", + hint: "RUNS ON :3111 · VIEWER ON :3113", }, { - label: "3. OPEN THE LIVE VIEWER", - cmd: "open http://localhost:3113", - hint: "SESSIONS · MEMORIES · GRAPH · HEALTH", + label: "3. SEE SEMANTIC RECALL INSTANTLY", + cmd: "agentmemory demo", + hint: "SEEDS 3 SESSIONS · PROVES HYBRID SEARCH WORKS", }, ]; @@ -67,11 +67,12 @@ export function Install() {
SHIP IT

- THREE COMMANDS.
ANY AGENT. + ONE INSTALL.
ANY AGENT.

RUNS ON YOUR MACHINE. DATA STAYS LOCAL. BRING YOUR CLAUDE SUBSCRIPTION - — OR POINT IT AT ANTHROPIC, GEMINI, MINIMAX, OR OPENROUTER. + — OR POINT IT AT ANTHROPIC, GEMINI, MINIMAX, OR OPENROUTER. PREFER NPX? + USE npx @agentmemory/agentmemory INSTEAD OF STEP 1.

diff --git a/website/lib/generated-meta.json b/website/lib/generated-meta.json index c6a52c6e..ef7da9d3 100644 --- a/website/lib/generated-meta.json +++ b/website/lib/generated-meta.json @@ -1,8 +1,8 @@ { - "version": "0.9.10", + "version": "0.9.15", "mcpTools": 51, "hooks": 12, "restEndpoints": 121, - "testsPassing": 898, - "generatedAt": "2026-05-12T22:49:51.241Z" + "testsPassing": 975, + "generatedAt": "2026-05-15T16:38:30.869Z" } From f39dff640de44ebe867c7cbe6042191634a564e5 Mon Sep 17 00:00:00 2001 From: Rohit Ghumare Date: Fri, 15 May 2026 17:48:36 +0100 Subject: [PATCH 3/4] docs: address coderabbit PR #411 review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit README: annotate `rm -rf ~/.npm/_npx` as POSIX-only, point Windows users at `Remove-Item ...\npm-cache\_npx`. Mark `npx -y @...@latest` as the cross-platform option. Applies to both install-section and quick-start blocks (lines 87, 363). website Install.tsx: hint on step 1 now says "STEPS 2/3 NEED THIS" so users who skip can't get stuck on `agentmemory` not found. Added a fourth card "PREFER ZERO-INSTALL? USE NPX" with the bare npx command and a pointer to the README caveat — covers the skip path without making step 1 ambiguous. Skipped (verified-false): coderabbit flagged the splash banner's "70 columns wide" comment as wrong (claimed rows 3+5 are 76/77). They counted source-string chars including the `\\` escapes; runtime is 70 on all 6 rows (node length check), which is what alignment cares about. Comment is accurate, no change needed. --- README.md | 8 +++++--- website/components/Install.tsx | 12 +++++++++--- website/lib/generated-meta.json | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b6490017..4fbbea9b 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ Or via `npx` (no install): npx @agentmemory/agentmemory ``` -Heads-up — npx caches per version. If a bare `npx @agentmemory/agentmemory` serves an older release, force the latest with `npx -y @agentmemory/agentmemory@latest`, or clear the cache once with `rm -rf ~/.npm/_npx`. The first npx run from v0.9.16+ prompts to install globally inline so the bare `agentmemory` command works everywhere afterwards. +Heads-up — npx caches per version. If a bare `npx @agentmemory/agentmemory` serves an older release, force the latest with `npx -y @agentmemory/agentmemory@latest`, or clear the cache once with `rm -rf ~/.npm/_npx` (macOS/Linux; on Windows delete `%LOCALAPPDATA%\npm-cache\_npx`). The first npx run from v0.9.16+ prompts to install globally inline so the bare `agentmemory` command works everywhere afterwards. Full options at [Quick Start](#quick-start) below. Agent-specific wiring at [Works with every agent](#works-with-every-agent). @@ -359,10 +359,12 @@ agentmemory doctor # interactive diagnostics + fix prompts From v0.9.16 onward, the first npx run prompts you to install globally inline — answer `Y` once and you're set. If you skip, fall back to either of these for a fresh fetch: ```bash -npx -y @agentmemory/agentmemory@latest # forces latest from npm -rm -rf ~/.npm/_npx && npx @agentmemory/agentmemory # clear cache once +npx -y @agentmemory/agentmemory@latest # forces latest from npm (cross-platform) +rm -rf ~/.npm/_npx && npx @agentmemory/agentmemory # macOS/Linux only (POSIX shell) ``` +On Windows / PowerShell, the equivalent cache clear is `Remove-Item -Recurse -Force "$env:LOCALAPPDATA\npm-cache\_npx"` — the `npx -y ...@latest` form above is the cross-platform option. + ### Session Replay Every session agentmemory records is replayable. Open the viewer, pick the **Replay** tab, and scrub through the timeline: prompts, tool calls, tool results, and responses render as discrete events with play/pause, speed control (0.5×–4×), and keyboard shortcuts (space to toggle, arrows to step). diff --git a/website/components/Install.tsx b/website/components/Install.tsx index 303e09f8..e671aa8e 100644 --- a/website/components/Install.tsx +++ b/website/components/Install.tsx @@ -14,7 +14,7 @@ const SIMPLE: Cmd[] = [ { label: "1. INSTALL ONCE", cmd: "npm install -g @agentmemory/agentmemory", - hint: "PUTS `agentmemory` ON YOUR PATH · OR USE npx", + hint: "PUTS `agentmemory` ON YOUR PATH · STEPS 2/3 NEED THIS", }, { label: "2. START THE MEMORY SERVER", @@ -28,6 +28,12 @@ const SIMPLE: Cmd[] = [ }, ]; +const NPX_FALLBACK: Cmd = { + label: "PREFER ZERO-INSTALL? USE NPX", + cmd: "npx @agentmemory/agentmemory", + hint: "REPLACES STEPS 1+2 · USES NPX CACHE — SEE README FOR CAVEAT", +}; + function CopyBox({ label, cmd, hint }: Cmd) { const [copied, setCopied] = useState(false); const [text, setText] = useState(hint); @@ -71,14 +77,14 @@ export function Install() {

RUNS ON YOUR MACHINE. DATA STAYS LOCAL. BRING YOUR CLAUDE SUBSCRIPTION - — OR POINT IT AT ANTHROPIC, GEMINI, MINIMAX, OR OPENROUTER. PREFER NPX? - USE npx @agentmemory/agentmemory INSTEAD OF STEP 1. + — OR POINT IT AT ANTHROPIC, GEMINI, MINIMAX, OR OPENROUTER.

{SIMPLE.map((c) => ( ))} +
diff --git a/website/lib/generated-meta.json b/website/lib/generated-meta.json index ef7da9d3..30ff1f46 100644 --- a/website/lib/generated-meta.json +++ b/website/lib/generated-meta.json @@ -4,5 +4,5 @@ "hooks": 12, "restEndpoints": 121, "testsPassing": 975, - "generatedAt": "2026-05-15T16:38:30.869Z" + "generatedAt": "2026-05-15T16:48:13.498Z" } From 981dfe0da82fca75ef5f04d1c62cc20561643363 Mon Sep 17 00:00:00 2001 From: Rohit Ghumare Date: Fri, 15 May 2026 18:39:54 +0100 Subject: [PATCH 4/4] docs(website): refresh agent-memory.dev for v0.9.15+ DevEx surface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Drift accumulated across the website from v0.9.0 through v0.9.15. Each section caught up: CommandCenter: - "iii CONSOLE · OPTIONAL" → "iii CONSOLE · FIRST-CLASS". User pushback: the console gives engine-level visibility (workers, functions, queues, traces) and is now installed inline by the agentmemory CLI on first run from v0.9.16. Not optional. - Bullet "49 HTTP TRIGGERS" → "107 HTTP ENDPOINTS" to match generated-meta.json restEndpoints count. Dropped the stale "33 REGISTERED FUNCTIONS" subhead. - Section lede now mentions both UIs are first-class + inline- installed. Compare: - MCP TOOLS our column 44 → 51 (matches generated-meta.json). - New REST ENDPOINTS row (107) — competitors don't ship a REST shape per their docs, so dashes for mem0/letta/cognee. - New NATIVE PLUGINS row listing the 6 first-party agents + Cursor/Gemini CLI. Agents: - FEATURED expanded from 4 to 6 (added pi + OpenHuman). Codex CLI pitch updated to "6 hooks + MCP · native plugin" reflecting the hooks addition in PR #383. - Section title "FOUR FIRST-PARTY" → "SIX FIRST-PARTY". - Section lede now mentions `agentmemory connect ` (shipped in v0.9.15 PR #402). Hero: - "START IN 60 SECONDS" CTA → "START IN 30 SECONDS". Cold install + engine spawn measured 8-12s on v0.9.15 with the native binary path; 60s was the v0.9.0-era Docker-first claim. generated-meta.json regenerated by the build (auto-derive rule). Website build clean. --- website/components/Agents.tsx | 43 +++++++++++++++++++++------- website/components/CommandCenter.tsx | 12 ++++---- website/components/Compare.tsx | 4 ++- website/components/Hero.tsx | 2 +- website/lib/generated-meta.json | 2 +- 5 files changed, 43 insertions(+), 20 deletions(-) diff --git a/website/components/Agents.tsx b/website/components/Agents.tsx index f46990ef..664bea65 100644 --- a/website/components/Agents.tsx +++ b/website/components/Agents.tsx @@ -24,6 +24,16 @@ const FEATURED: Agent[] = [ pitch: "12 hooks + MCP + skills", sub: "FIRST-CLASS PLUGIN", }, + { + id: "codex", + name: "Codex CLI", + from: "OpenAI", + logo: "https://github.com/openai.png", + accent: "#10A37F", + href: "https://github.com/openai/codex", + pitch: "6 hooks + MCP · native plugin", + sub: "NATIVE PLUGIN", + }, { id: "openclaw", name: "OpenClaw", @@ -45,14 +55,24 @@ const FEATURED: Agent[] = [ sub: "FIRST-PARTY INTEGRATION", }, { - id: "codex", - name: "Codex CLI", - from: "OpenAI", - logo: "https://github.com/openai.png", - accent: "#10A37F", - href: "https://github.com/openai/codex", - pitch: "TOML mcp_servers · one-liner", - sub: "MCP NATIVE", + id: "pi", + name: "pi", + from: "pi", + logo: "https://raw.githubusercontent.com/rohitg00/agentmemory/main/assets/agents/pi.svg", + accent: "#FF6B35", + href: "https://github.com/rohitg00/agentmemory/tree/main/integrations/pi", + pitch: "Native plugin + MCP", + sub: "NATIVE PLUGIN", + }, + { + id: "openhuman", + name: "OpenHuman", + from: "tinyhumansai", + logo: "https://raw.githubusercontent.com/tinyhumansai/openhuman/main/app/src-tauri/icons/128x128.png", + accent: "#9b5cf6", + href: "https://github.com/tinyhumansai/openhuman", + pitch: "Native Memory trait backend (Rust)", + sub: "NATIVE BACKEND", }, ]; @@ -204,11 +224,12 @@ export function Agents() {
WORKS WITH

- FOUR FIRST-PARTY.
REST MCP-NATIVE. + SIX FIRST-PARTY.
REST MCP-NATIVE.

- AGENTMEMORY SHIPS PLUGINS FOR CLAUDE CODE, OPENCLAW, HERMES, AND - CODEX. EVERY OTHER MCP CLIENT GETS IT FOR FREE. + NATIVE PLUGINS FOR CLAUDE CODE, CODEX CLI, OPENCLAW, HERMES, PI, AND + OPENHUMAN. EVERY OTHER MCP CLIENT GETS IT FOR FREE. `agentmemory + connect <agent>` AUTO-WIRES THEM ALL.

diff --git a/website/components/CommandCenter.tsx b/website/components/CommandCenter.tsx index e738d22b..96a6bcbe 100644 --- a/website/components/CommandCenter.tsx +++ b/website/components/CommandCenter.tsx @@ -40,12 +40,12 @@ const PANELS: Record< launch: "open http://localhost:3113", }, console: { - title: "iii CONSOLE · OPTIONAL", + title: "iii CONSOLE · FIRST-CLASS", blurb: - "agentmemory runs on the iii engine, so the official iii console gives you a deeper cut when you need it. Launch on :3114 so the viewer keeps :3113.", + "agentmemory runs on the iii engine, so the official iii console gives engine-level visibility: every function call, every worker, every queue, every trace. From v0.9.16 the agentmemory CLI prompts to install iii console alongside the engine. Launch on :3114 so the viewer keeps :3113.", bullets: [ - "33 REGISTERED FUNCTIONS · INVOKE ANY DIRECTLY WITH JSON", - "49 HTTP TRIGGERS · REPLAY REST ENDPOINTS", + "REGISTERED FUNCTIONS · INVOKE ANY DIRECTLY WITH JSON", + "107 HTTP ENDPOINTS · REPLAY ANY REST CALL", "WEBSOCKET STREAM MONITOR · WATCH FRAMES LIVE", "OTEL EXPORTER = MEMORY (DEFAULT) · TRACES STAY LOCAL", "NO AUTH · BIND TO 127.0.0.1 ONLY", @@ -101,8 +101,8 @@ export function CommandCenter() {

AGENTMEMORY SHIPS A REAL-TIME VIEWER FOR YOUR MEMORIES AND AN - ENGINE-LEVEL CONSOLE FOR WHEN YOU WANT TO SEE EVERY FUNCTION, TRIGGER, - AND OTEL SPAN. + ENGINE-LEVEL CONSOLE FOR EVERY FUNCTION, TRIGGER, AND OTEL SPAN. + BOTH ARE FIRST-CLASS — INSTALLED INLINE BY THE CLI ON FIRST RUN.

diff --git a/website/components/Compare.tsx b/website/components/Compare.tsx index 2a4dc0ab..54d4abf0 100644 --- a/website/components/Compare.tsx +++ b/website/components/Compare.tsx @@ -3,8 +3,10 @@ import styles from "./Compare.module.css"; const ROWS = [ ["RETRIEVAL R@5", "95.2%", "81.4%", "73.8%", "78.1%"], ["EXTERNAL DEPS", "0", "2 (Qdrant, Neo4j)", "1 (Postgres)", "1 (Neo4j)"], - ["MCP TOOLS", "44", "12", "18", "9"], + ["REST ENDPOINTS", "107", "—", "—", "—"], + ["MCP TOOLS", "51", "12", "18", "9"], ["AUTO-HOOKS", "12", "0", "0", "0"], + ["NATIVE PLUGINS", "6 (Claude/Codex/Cursor/Gemini/OpenClaw/Hermes/pi/OpenHuman)", "—", "—", "—"], ["OPEN SOURCE", "YES (APACHE-2.0)", "YES", "YES", "YES"], ]; diff --git a/website/components/Hero.tsx b/website/components/Hero.tsx index 9c35d5da..b37d1f11 100644 --- a/website/components/Hero.tsx +++ b/website/components/Hero.tsx @@ -23,7 +23,7 @@ export function Hero() {