Shared memory and context tools for agentic work.
Code Rooms
import { useState, type ReactElement } from "react";
import { motion, AnimatePresence } from "framer-motion";
interface FAQ {
q: string;
a: string | ReactElement;
tag?: string;
}
const FAQS: FAQ[] = [
{
tag: "vs. alternatives",
q: "How is m1nd different from Copilot, Cursor, or semantic search?",
a: (
<>
Copilot and Cursor are agent hosts and editors. m1nd is the layer those agents call before they search, edit, review, or change a system. Semantic search finds conceptually related content; m1nd also uses graph relationships across code, docs, and change. Ask it what a change touches, what moves with it, and what should be verified next.
</>
),
},
tag: "languages",
q: "Does it work with any language, or only Python?",
a: "Dedicated extractors cover more than twenty languages, with varying semantic depth. Mixed-language repositories can share a graph, but qualified, dynamic, macro-generated, and external references may be incomplete. Consult the README language table for extraction coverage; it is not compiler-grade resolution.",
tag: "privacy",
q: "Does my code get sent to an external server?",
a: "Graph processing and memory are local, with no LLM API key required for queries. Installation, updates, and initial model downloads can use the network. Optional document providers may send documents to a configured endpoint. Your MCP host has its own data policy.",
tag: "model support",
q: "Which LLMs and AI clients does m1nd support?",
m1nd is MCP-native: it works with every client and model that speaks the Model Context Protocol, across <strong style={{ color: "rgba(226,232,240,0.8)" }}>22 supported hosts</strong> (run <code>m1nd hosts plan</code> for yours):
<br /><br />
<strong style={{ color: "rgba(226,232,240,0.8)" }}>Models:</strong> Claude Opus · Claude Sonnet · GPT-5 · Gemini 2.5 Pro · Llama, and any model released tomorrow that runs through an MCP client.
<strong style={{ color: "rgba(226,232,240,0.8)" }}>Clients:</strong> Claude Code · Codex · Cursor · Windsurf · GitHub Copilot · VS Code · Cline · Continue · Zed · Antigravity · and any custom agent that speaks MCP.
You configure m1nd once. No per-model setup. No API key. The tool calls are identical regardless of which model is driving the agent. GPT-5 calls <code>seek()</code> the same way Claude Opus does.
tag: "how it works",
q: "How does m1nd choose which code to return?",
a: "seek combines lexical and graph/semantic signals, with local embeddings enabled in the default build. Scope and node-type filters constrain eligible candidates. Results and counts depend on the query and graph; inspect returned source and trust information rather than treating a rank as proof.",
tag: "m1nd vs l1ght",
q: "What is the difference between m1nd and l1ght?",
a: "m1nd is the operating layer. l1ght is the document and knowledge lane inside that operating layer. m1nd gives agents durable operational context across code, docs, and change. l1ght is how specs, notes, papers, RFCs, memory, and other non-code artifacts become first-class graph surfaces inside the same system.",
tag: "pricing",
q: "How much does it cost?",
m1nd is free and MIT. Clone it, build it, run it, ship it inside your company. There is no cloud tier and no account; your graph never leaves your machine. If you need commercial support, a signed contract, or an invoice with a legal entity behind it, write me at <a href="mailto:kleinz@m1nd.world" className="text-primary underline-offset-2 underline">kleinz@m1nd.world</a> and we will sort it out.
tag: "getting started",
q: "How long does it take to set up?",
a: "Follow the versioned quick start: install the exact signed 1.6.3 native artifact with cosign verification, select that binary explicitly, then have a person run init --birth for an empty repository runtime. Preview and apply your host setup, complete printed configuration, and reconnect. Pinning the wrapper alone does not pin the updater’s native target. The 1.6.4 source preview adds a narrower automatic isolated path; do not assume the published 1.6.3 binary has it.",
];
function Item({ faq, isOpen, onToggle }: { faq: FAQ; isOpen: boolean; onToggle: () => void }) {
return (
<div
className="border-b border-border/20 last:border-b-0"
>
<button
onClick={onToggle}
className="w-full text-left py-5 flex items-start gap-4 group"
aria-expanded={isOpen}
{faq.tag && (
<span
className="flex-shrink-0 font-mono text-[9px] tracking-widest uppercase mt-1 px-2 py-0.5 rounded border transition-colors duration-200"
style={{
borderColor: isOpen ? "rgba(0,245,255,0.35)" : "rgba(148,163,184,0.12)",
color: isOpen ? "#00f5ff" : "rgba(148,163,184,0.4)",
background: isOpen ? "rgba(0,245,255,0.06)" : "transparent",
}}
{faq.tag}
</span>
)}
className="flex-1 font-sans text-base font-semibold leading-snug transition-colors duration-200"
style={{ color: isOpen ? "#e2e8f0" : "rgba(226,232,240,0.7)" }}
{faq.q}
className="flex-shrink-0 w-5 h-5 mt-0.5 flex items-center justify-center rounded transition-all duration-300"
transform: isOpen ? "rotate(45deg)" : "rotate(0deg)",
fontSize: 18,
lineHeight: 1,
aria-hidden
+
</button>
<AnimatePresence initial={false}>
{isOpen && (
<motion.div
key="body"
initial={{ height: 0, opacity: 0 }}
animate={{ height: "auto", opacity: 1 }}
exit={{ height: 0, opacity: 0 }}
transition={{ duration: 0.28, ease: [0.4, 0, 0.2, 1] }}
style={{ overflow: "hidden" }}
className="pb-6 text-[15px] leading-relaxed text-muted-foreground/80 font-sans pl-0"
style={{ paddingLeft: faq.tag ? "88px" : undefined }}
<div className="prose-none [&_code]:font-mono [&_code]:text-primary/80 [&_code]:text-[13px] [&_code]:bg-primary/8 [&_code]:px-1 [&_code]:py-0.5 [&_code]:rounded [&_em]:text-foreground/80 [&_em]:not-italic [&_em]:font-medium [&_a]:text-primary">
{faq.a}
</div>
</motion.div>
</AnimatePresence>
);
export function FAQSection() {
const [openIdx, setOpenIdx] = useState<number | null>(0);
const toggle = (i: number) => setOpenIdx(prev => (prev === i ? null : i));
<section className="py-20 border-b border-border/20 relative" id="faq">
className="absolute inset-0 pointer-events-none"
style={{ background: "radial-gradient(ellipse at 50% 80%, rgba(0,245,255,0.03), transparent 60%)" }}
/>
<div className="container mx-auto px-4 lg:px-6 relative z-10">
className="text-center mb-12"
initial={{ opacity: 0, y: 16 }}
whileInView={{ opacity: 1, y: 0 }}
viewport={{ once: true }}
transition={{ duration: 0.65 }}
<div className="inline-block font-mono text-xs text-primary/60 tracking-widest uppercase border border-primary/20 rounded px-3 py-1 mb-5">
common questions
<h2 className="text-3xl md:text-5xl font-bold font-sans tracking-tight mb-3">
Before you make it the first layer
</h2>
<p className="text-muted-foreground font-mono text-sm max-w-lg mx-auto">
The questions teams ask before putting a new system in front of their agents.
</p>
<div className="max-w-3xl mx-auto">
{FAQS.map((faq, i) => (
key={i}
initial={{ opacity: 0, y: 10 }}
transition={{ duration: 0.4, delay: i * 0.06 }}
<Item faq={faq} isOpen={openIdx === i} onToggle={() => toggle(i)} />
))}
className="text-center mt-12 pt-10 border-t border-border/20"
initial={{ opacity: 0 }}
whileInView={{ opacity: 1 }}
transition={{ duration: 0.6, delay: 0.4 }}
<p className="text-muted-foreground/60 font-mono text-xs mb-4">
Something else? The wiki has the full technical reference.
<a
href="https://m1nd.world/wiki/"
target="_blank"
rel="noreferrer"
className="inline-block font-mono text-xs text-primary/60 border border-primary/20 rounded px-5 py-2.5 hover:bg-primary/10 hover:text-primary transition-all"
Read the docs →
</a>
</section>