"use client"; import { useState } from "react"; import styles from "./Install.module.css"; import { AgentInstall } from "./AgentInstall"; interface Cmd { label: string; cmd: string; hint: string; } const SIMPLE: Cmd[] = [ { label: "1. INSTALL ONCE", cmd: "npm install -g @agentmemory/agentmemory", hint: "PUTS `agentmemory` ON YOUR PATH · STEPS 2/3 NEED THIS", }, { label: "2. START THE MEMORY SERVER", cmd: "agentmemory", hint: "RUNS ON :3111 · VIEWER ON :3113", }, { label: "3. SEE SEMANTIC RECALL INSTANTLY", cmd: "agentmemory demo", hint: "SEEDS 3 SESSIONS · PROVES HYBRID SEARCH WORKS", }, ]; 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); const onClick = async () => { try { await navigator.clipboard.writeText(cmd); setCopied(true); setText("COPIED"); setTimeout(() => { setCopied(false); setText(hint); }, 1600); } catch { setText("CLIPBOARD BLOCKED"); } }; return (
RUNS ON YOUR MACHINE. DATA STAYS LOCAL. BRING YOUR CLAUDE SUBSCRIPTION — OR POINT IT AT ANTHROPIC, GEMINI, MINIMAX, OR OPENROUTER.