Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions website/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import { ScrollProgress } from "@/components/ScrollProgress";
import { Nav } from "@/components/Nav";
import { Hero } from "@/components/Hero";
import { FeaturedIn } from "@/components/FeaturedIn";
import { Stats } from "@/components/Stats";
import { Primitives } from "@/components/Primitives";
import { Features } from "@/components/Features";
Expand All @@ -20,6 +21,7 @@ export default function Page() {
<Nav />
<main id="top">
<Hero />
<FeaturedIn />
<Stats
mcpTools={meta.mcpTools}
hooks={meta.hooks}
Expand Down
43 changes: 32 additions & 11 deletions website/components/Agents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
},
];

Expand Down Expand Up @@ -204,11 +224,12 @@ export function Agents() {
<header className="section-head">
<span className="section-eyebrow">WORKS WITH</span>
<h2 id="agents-title" className="section-title">
FOUR FIRST-PARTY.<br />REST MCP-NATIVE.
SIX FIRST-PARTY.<br />REST MCP-NATIVE.
</h2>
<p className="section-lede">
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 &lt;agent&gt;` AUTO-WIRES THEM ALL.
</p>
</header>

Expand Down
12 changes: 6 additions & 6 deletions website/components/CommandCenter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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",
"121 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",
Expand Down Expand Up @@ -101,8 +101,8 @@ export function CommandCenter() {
</h2>
<p className="section-lede">
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.
</p>
</header>
<div className={styles.tabs} role="tablist" aria-label="Command center">
Expand Down
4 changes: 3 additions & 1 deletion website/components/Compare.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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", "121", "—", "—", "—"],
["MCP TOOLS", "51", "12", "18", "9"],
["AUTO-HOOKS", "12", "0", "0", "0"],
["NATIVE PLUGINS", "6 (Claude/Codex/OpenClaw/Hermes/pi/OpenHuman)", "—", "—", "—"],
["OPEN SOURCE", "YES (APACHE-2.0)", "YES", "YES", "YES"],
];

Expand Down
137 changes: 137 additions & 0 deletions website/components/FeaturedIn.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
.wrap {
padding: 48px 0 56px;
background: var(--ink);
border-top: 1px solid var(--charcoal);
border-bottom: 1px solid var(--charcoal);
}
.inner {
max-width: 1100px;
margin: 0 auto;
padding: 0 40px;
display: flex;
flex-direction: column;
gap: 22px;
align-items: center;
}
.eyebrow {
font-family: var(--font-mono);
font-size: 11px;
letter-spacing: 2.4px;
color: var(--ash);
text-transform: uppercase;
display: flex;
align-items: center;
gap: 12px;
width: 100%;
justify-content: center;
}
.eyebrow::before,
.eyebrow::after {
content: "";
flex: 0 0 80px;
height: 1px;
background: var(--charcoal);
}
.row {
display: grid;
grid-template-columns: minmax(220px, 1fr) minmax(240px, 1.3fr) minmax(220px, 1fr);
gap: 24px;
width: 100%;
max-width: 1000px;
align-items: stretch;
}
.cell {
position: relative;
display: grid;
grid-template-columns: 56px 1fr auto;
gap: 14px;
align-items: center;
padding: 18px 22px;
border: 1px solid var(--charcoal);
background: var(--iron);
text-decoration: none;
color: var(--white);
transition: border-color 0.12s ease, transform 0.12s ease, background 0.12s ease;
min-height: 96px;
}
.cell:hover,
.cell:focus-visible {
border-color: var(--gold);
transform: translateY(-1px);
background: #16161a;
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
.cell:focus-visible {
outline: 2px solid var(--gold);
outline-offset: 2px;
}
.cellBadge {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
padding: 16px 16px;
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
.logo {
width: 56px;
height: 56px;
border-radius: 8px;
object-fit: cover;
background: var(--ink);
}
.badgeImg {
width: 100%;
height: auto;
max-width: 260px;
max-height: 60px;
object-fit: contain;
display: block;
}
.invertLogo {
filter: invert(1) brightness(1.05);
max-height: 64px;
max-width: 280px;
}
.meta {
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
}
.name {
font-family: var(--font-mono);
font-size: 14px;
letter-spacing: 0.6px;
color: var(--white);
font-weight: 700;
text-transform: uppercase;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.sub {
font-family: var(--font-mono);
font-size: 11px;
letter-spacing: 0.8px;
color: var(--steel);
text-transform: uppercase;
}
.arrow {
font-family: var(--font-mono);
color: var(--ash);
font-size: 14px;
transition: color 0.12s ease, transform 0.12s ease;
}
.cell:hover .arrow {
color: var(--gold);
transform: translate(2px, -2px);
}
@media (max-width: 720px) {
.row {
grid-template-columns: 1fr;
max-width: 380px;
}
.wrap {
padding: 32px 0 40px;
}
}
104 changes: 104 additions & 0 deletions website/components/FeaturedIn.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
import Image from "next/image";
import styles from "./FeaturedIn.module.css";

interface Feature {
name: string;
sub: string;
href: string;
logo: string;
logoAlt: string;
// When the source has its own brand-mark image (e.g. Trendshift's
// badge endpoint that bakes the repo's star count into the image),
// render it full-width instead of the logo-left text-right layout.
badge?: boolean;
}

const ITEMS: Feature[] = [
{
name: "AlphaSignal",
sub: "180K technical subscribers",
href: "https://alphasignalai.substack.com/p/how-agentmemory-works-and-how-to",
logo: "https://avatars.githubusercontent.com/u/64016073?s=200&v=4",
logoAlt: "AlphaSignal logo",
},
{
name: "Agentic AI Foundation",
sub: "Linux Foundation backed",
href: "https://aaif.io/",
logo: "/featured/aaif-logo.png",
logoAlt: "Agentic AI Foundation logo",
badge: true,
},
{
name: "Trendshift",
sub: "Position #19 · NEW 2026",
href: "https://trendshift.io/repositories/25123",
logo: "https://trendshift.io/api/badge/repositories/25123",
logoAlt: "Trendshift badge for agentmemory",
badge: true,
},
];

export function FeaturedIn() {
return (
<section className={styles.wrap} aria-labelledby="featured-in-title">
<div className={styles.inner}>
<div id="featured-in-title" className={styles.eyebrow}>
AS FEATURED IN
</div>
<div className={styles.row}>
{ITEMS.map((it) =>
it.badge ? (
<a
key={it.name}
className={`${styles.cell} ${styles.cellBadge}`}
href={it.href}
target="_blank"
rel="noopener"
aria-label={`${it.name} — ${it.sub}`}
Comment on lines +52 to +58
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add noreferrer to external _blank links.

Line 57 and Line 80 currently use rel="noopener" only. Add noreferrer as well to prevent referrer leakage on third-party outbound links.

Suggested patch
-                rel="noopener"
+                rel="noopener noreferrer"
...
-                rel="noopener"
+                rel="noopener noreferrer"

Also applies to: 75-81

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@website/components/FeaturedIn.tsx` around lines 52 - 58, In the FeaturedIn
component update the external anchor elements that open in a new tab (the
anchors created inside the map/iteration using key={it.name} and the other
anchor for the sponsor/badge) to add "noreferrer" to their rel attributes;
change rel="noopener" to rel="noopener noreferrer" on the <a> elements that have
target="_blank" so both occurrences (the anchor using key={it.name} and the
other badge link) include rel="noopener noreferrer" to prevent referrer leakage.

>
<Image
src={it.logo}
alt={it.logoAlt}
width={250}
height={55}
unoptimized
className={
it.logo.startsWith("/featured/aaif")
? `${styles.badgeImg} ${styles.invertLogo}`
: styles.badgeImg
}
/>
<span className={styles.sub}>{it.sub}</span>
</a>
) : (
<a
key={it.name}
className={styles.cell}
href={it.href}
target="_blank"
rel="noopener"
>
<Image
src={it.logo}
alt={it.logoAlt}
width={56}
height={56}
unoptimized
className={styles.logo}
/>
<div className={styles.meta}>
<span className={styles.name}>{it.name}</span>
<span className={styles.sub}>{it.sub}</span>
</div>
<span className={styles.arrow} aria-hidden>
</span>
</a>
),
)}
</div>
</div>
</section>
);
}
2 changes: 1 addition & 1 deletion website/components/Hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export function Hero() {
</p>
<div className={styles.cta}>
<a href="#install" className="btn btn--accent">
START IN 60 SECONDS
START IN 30 SECONDS
</a>
<a href="#live" className="btn btn--ghost">
SEE IT MOVE
Expand Down
2 changes: 1 addition & 1 deletion website/lib/generated-meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
"hooks": 12,
"restEndpoints": 121,
"testsPassing": 975,
"generatedAt": "2026-05-15T16:48:13.498Z"
"generatedAt": "2026-05-15T18:11:06.382Z"
}
3 changes: 3 additions & 0 deletions website/next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@ const config: NextConfig = {
remotePatterns: [
{ protocol: "https", hostname: "github.com" },
{ protocol: "https", hostname: "avatars.githubusercontent.com" },
{ protocol: "https", hostname: "raw.githubusercontent.com" },
{ protocol: "https", hostname: "matthiasroder.com" },
{ protocol: "https", hostname: "exafunction.github.io" },
{ protocol: "https", hostname: "www.freelogovectors.net" },
{ protocol: "https", hostname: "aaif.io" },
{ protocol: "https", hostname: "trendshift.io" },
],
},
};
Expand Down
Binary file added website/public/featured/aaif-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.