---
layout: default
---

<div class="content content-home">
  <section class="hero hero--split">
    <div class="hero-aurora" aria-hidden="true"></div>
    <div class="hero-copy">
      <span class="hero-badge">
        {% include icons.html icon="brain" size="16" %} Local Knowledge Engine
      </span>
      <h1 class="hero-title">
        Your Notes, Docs, Agents, and Search Stack in One Local Workspace
      </h1>
      <p class="hero-tagline">
        Search, browse, graph, edit, capture, and cite across everything you
        own.
      </p>
      <p class="hero-description">
        GNO has grown beyond a hybrid search CLI. It is now a full local
        knowledge workspace with a fast web UI, app-level tabs, cross-collection
        browse tree, knowledge graph, AI answers, and direct integrations for
        coding agents and MCP clients.
      </p>
      <div class="hero-proof">
        <div class="hero-proof-item">
          <span class="hero-proof-value">100%</span>
          <span class="hero-proof-label">local + private</span>
        </div>
        <div class="hero-proof-item">
          <span class="hero-proof-value">Search + Graph</span>
          <span class="hero-proof-label">real daily-driver workspace</span>
        </div>
        <div class="hero-proof-item">
          <span class="hero-proof-value">Skills + MCP</span>
          <span class="hero-proof-label">agent memory without cloud drift</span>
        </div>
      </div>
    </div>

    <div class="hero-showcase">
      <div class="hero-showcase-main">
        <img
          src="{{ '/assets/screenshots/webui-home.jpg' | relative_url }}"
          alt="GNO web UI dashboard with search, tabs, and workspace surfaces"
          loading="lazy"
        />
        <div class="hero-showcase-caption">
          <span>Current workspace</span>
          <strong>Search, tabs, capture, and health in one shell</strong>
        </div>
      </div>
      <div class="hero-showcase-stack">
        <div class="hero-showcase-mini">
          <img
            src="{{ '/assets/screenshots/webui-collections.jpg' | relative_url }}"
            alt="GNO cross-collection browse workspace tree and collections view"
            loading="lazy"
          />
          <div class="hero-showcase-caption">
            <span>Browse</span>
            <strong>Cross-collection tree + folder detail panes</strong>
          </div>
        </div>
        <div class="hero-showcase-mini">
          <img
            src="{{ '/assets/screenshots/webui-graph.jpg' | relative_url }}"
            alt="GNO knowledge graph visualization"
            loading="lazy"
          />
          <div class="hero-showcase-caption">
            <span>Graph</span>
            <strong>Wiki, markdown, and similarity edges</strong>
          </div>
        </div>
      </div>
    </div>

    <div class="hero-actions">
      <a
        href="{{ '/docs/QUICKSTART/' | relative_url }}"
        class="btn btn-primary btn-lg"
        >Get Started</a
      >
      <a
        href="https://github.com/{{ site.repository }}"
        class="btn btn-secondary btn-lg"
        target="_blank"
        rel="noopener"
      >
        View on GitHub
      </a>
      <a
        href="{{ '/features/web-ui/' | relative_url }}"
        class="btn btn-secondary btn-lg"
        >Explore the Workspace</a
      >
    </div>
  </section>

  <section class="integrations-bar">
    <p class="integrations-label">Works with your tools</p>
    <div class="integrations-grid">
      <a
        href="{{ '/docs/integrations/claude-code/' | relative_url }}"
        class="integration-item"
        title="Claude Code"
      >
        <span class="integration-icon"
          >{% include icons.html icon="terminal" size="20" %}</span
        >
        <span class="integration-name">Claude Code</span>
      </a>
      <a
        href="{{ '/docs/integrations/skills/' | relative_url }}"
        class="integration-item"
        title="Codex"
      >
        <span class="integration-icon"
          >{% include icons.html icon="code" size="20" %}</span
        >
        <span class="integration-name">Codex</span>
      </a>
      <a
        href="{{ '/docs/integrations/skills/' | relative_url }}"
        class="integration-item"
        title="OpenCode"
      >
        <span class="integration-icon"
          >{% include icons.html icon="terminal" size="20" %}</span
        >
        <span class="integration-name">OpenCode</span>
      </a>
      <a
        href="{{ '/docs/integrations/skills/' | relative_url }}"
        class="integration-item"
        title="OpenClaw"
      >
        <span class="integration-icon"
          >{% include icons.html icon="terminal" size="20" %}</span
        >
        <span class="integration-name">OpenClaw</span>
      </a>
      <a
        href="{{ '/docs/integrations/cursor/' | relative_url }}"
        class="integration-item"
        title="Cursor"
      >
        <span class="integration-icon"
          >{% include icons.html icon="code" size="20" %}</span
        >
        <span class="integration-name">Cursor</span>
      </a>
      <a
        href="{{ '/docs/integrations/claude-desktop/' | relative_url }}"
        class="integration-item"
        title="Claude Desktop"
      >
        <span class="integration-icon"
          >{% include icons.html icon="brain" size="20" %}</span
        >
        <span class="integration-name">Claude Desktop</span>
      </a>
      <a
        href="{{ '/docs/MCP/' | relative_url }}"
        class="integration-item"
        title="Zed"
      >
        <span class="integration-icon"
          >{% include icons.html icon="code" size="20" %}</span
        >
        <span class="integration-name">Zed</span>
      </a>
      <a
        href="{{ '/docs/MCP/' | relative_url }}"
        class="integration-item"
        title="Windsurf"
      >
        <span class="integration-icon"
          >{% include icons.html icon="code" size="20" %}</span
        >
        <span class="integration-name">Windsurf</span>
      </a>
      <a
        href="{{ '/docs/MCP/' | relative_url }}"
        class="integration-item"
        title="Amp"
      >
        <span class="integration-icon"
          >{% include icons.html icon="code" size="20" %}</span
        >
        <span class="integration-name">Amp</span>
      </a>
      <a
        href="{{ '/docs/MCP/' | relative_url }}"
        class="integration-item"
        title="Raycast"
      >
        <span class="integration-icon"
          >{% include icons.html icon="hybrid-search" size="20" %}</span
        >
        <span class="integration-name">Raycast</span>
      </a>
    </div>
  </section>

  <section class="proof-strip">
    <div class="proof-card">
      <span class="proof-kicker">For humans</span>
      <h3>Stop bouncing between Obsidian, Finder, grep, and browser tabs</h3>
      <p>
        Search, browse, graph, edit, and capture in one local product surface.
      </p>
    </div>
    <div class="proof-card">
      <span class="proof-kicker">For agents</span>
      <h3>Give Claude Code, Codex, Cursor, and MCP clients a real memory</h3>
      <p>
        Skills for low-overhead retrieval, MCP for richer tool access, both on
        your own files.
      </p>
    </div>
    <div class="proof-card">
      <span class="proof-kicker">For builders</span>
      <h3>One index, many surfaces</h3>
      <p>
        CLI, REST API, SDK, web workspace, desktop shell, and agent integrations
        all point at the same local knowledge engine.
      </p>
    </div>
  </section>

  <section class="how-it-works">
    <h2 class="section-title">Three Commands to Searchable Knowledge</h2>
    <div class="steps-grid">
      <div class="step-card">
        <span class="step-number">1</span>
        <h3>Point</h3>
        <p>
          Add any directory&mdash;Obsidian vault, project docs, research papers,
          code repos.
        </p>
        <code class="step-command">gno init ~/vault --name notes</code>
      </div>
      <div class="step-card">
        <span class="step-number">2</span>
        <h3>Index</h3>
        <p>
          GNO builds BM25 + vector indexes. Understands 30+ languages.
          Incremental re-indexing.
        </p>
        <code class="step-command">gno index</code>
      </div>
      <div class="step-card">
        <span class="step-number">3</span>
        <h3>Search</h3>
        <p>
          Hybrid search from CLI, Web UI, REST API, or any AI agent via MCP /
          Skills.
        </p>
        <code class="step-command">gno query "auth best practices"</code>
      </div>
    </div>
  </section>

  <section class="use-cases">
    <h2 class="section-title">Built for How You Actually Work</h2>

    <div class="use-case-card">
      <div class="use-case-content">
        <span class="use-case-label">For Knowledge Workers</span>
        <h3>Your Obsidian Vault, Supercharged</h3>
        <p>
          You have thousands of notes across Obsidian, Logseq, or plain Markdown
          folders. GNO indexes them all and adds what your note app
          can't&mdash;hybrid semantic search, AI-powered answers with citations,
          and a knowledge graph that reveals connections you didn't know
          existed.
        </p>
        <div class="use-case-commands">
          <code>gno query "what did we decide about the API redesign"</code>
          <code
            >gno ask "summarize my meeting notes from last week" --answer</code
          >
        </div>
        <a
          href="{{ '/features/hybrid-search/' | relative_url }}"
          class="use-case-link"
          >How search works &rarr;</a
        >
      </div>
      <div class="use-case-visual">
        <img
          src="{{ '/assets/screenshots/webui-search.jpg' | relative_url }}"
          alt="GNO Web UI search results"
          loading="lazy"
        />
      </div>
    </div>

    <div class="use-case-card use-case-card--reverse">
      <div class="use-case-content">
        <span class="use-case-label">For AI Agents</span>
        <h3>Give Your Coding Agent a Memory</h3>
        <p>
          Claude Code, Codex, OpenCode, OpenClaw, Cursor&mdash;they're powerful
          but amnesiac. Install GNO as a skill or MCP server and your agent can
          search your entire knowledge base on demand. Zero context pollution,
          instant retrieval.
        </p>
        <div class="use-case-commands">
          <code>gno skill install --scope user</code>
          <code>gno mcp install --target cursor</code>
        </div>
        <a
          href="{{ '/features/agent-integration/' | relative_url }}"
          class="use-case-link"
          >Agent integration &rarr;</a
        >
      </div>
      <div class="use-case-visual">
        <img
          src="{{ '/assets/screenshots/claudecodeskill.jpg' | relative_url }}"
          alt="GNO running as a Claude Code skill"
          loading="lazy"
        />
      </div>
    </div>

    <div class="use-case-card">
      <div class="use-case-content">
        <span class="use-case-label">For Developers</span>
        <h3>Embed Search in Your App</h3>
        <p>
          Use GNO as a TypeScript SDK, REST API, or CLI pipe. Build internal
          tools, automate knowledge retrieval, or add semantic search to any
          workflow. JSON output everywhere, scriptable and composable.
        </p>
        <div class="use-case-commands">
          <code>gno search "JWT token" --json | jq '.results[].uri'</code>
          <code>curl localhost:3000/api/query -d '{"q":"auth"}'</code>
        </div>
        <a href="{{ '/docs/SDK/' | relative_url }}" class="use-case-link"
          >SDK docs &rarr;</a
        >
      </div>
      <div class="use-case-visual">
        <img
          src="{{ '/assets/screenshots/webui-home.jpg' | relative_url }}"
          alt="GNO Web UI dashboard"
          loading="lazy"
        />
      </div>
    </div>
  </section>

  <section class="whats-new">
    <h2 class="section-title">What GNO Feels Like Now</h2>
    <div class="whats-new-grid">
      <div class="whats-new-item">
        <h3>Daily-Driver Workspace</h3>
        <p>
          App-level tabs, quick switcher, safe editing, capture flows, and a
          browse tree that finally makes the workspace feel spatial.
        </p>
        <a href="{{ '/features/agent-integration/' | relative_url }}"
          >Workspace tour &rarr;</a
        >
      </div>
      <div class="whats-new-item">
        <h3>Real Browse + Graph Surfaces</h3>
        <p>
          Search is no longer the only entry point. Browse collections as a
          tree, inspect folders directly, and jump through a knowledge graph.
        </p>
        <a href="{{ '/features/graph-view/' | relative_url }}"
          >See graph view &rarr;</a
        >
      </div>
      <div class="whats-new-item">
        <h3>Agent-Ready by Default</h3>
        <p>
          Skill installs for coding agents, MCP server for desktop/editor
          clients, and retrieval that stays grounded in your own local corpus.
        </p>
        <a href="{{ '/features/agent-integration/' | relative_url }}"
          >Agent integration &rarr;</a
        >
      </div>
      <div class="whats-new-item">
        <h3>Builder Surface Included</h3>
        <p>
          SDK, API, CLI, and desktop/web surfaces stay aligned, so internal
          tools and local products can reuse the same index and retrieval stack.
        </p>
        <a href="{{ '/docs/SDK/' | relative_url }}">SDK + API &rarr;</a>
      </div>
    </div>
  </section>

  <section class="features">
    <h2 class="section-title">Everything You Need</h2>
    <div class="features-grid">
      <a
        href="{{ '/features/hybrid-search/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="hybrid-search" size="24" %}
        </div>
        <h3 class="feature-card-title">Hybrid Search</h3>
        <p class="feature-card-description">
          BM25 full-text + vector similarity with reciprocal rank fusion and
          cross-encoder reranking.
        </p>
      </a>

      <a
        href="{{ '/features/local-llm/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="local-llm" size="24" %}
        </div>
        <h3 class="feature-card-title">AI Answers</h3>
        <p class="feature-card-description">
          Cited, grounded responses from your own documents. Local LLM or remote
          GPU&mdash;no cloud APIs.
        </p>
      </a>

      <a
        href="{{ '/features/privacy-first/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="privacy-first" size="24" %}
        </div>
        <h3 class="feature-card-title">Privacy First</h3>
        <p class="feature-card-description">
          100% local. Zero telemetry. Works offline. Your documents never leave
          your machine.
        </p>
      </a>

      <a
        href="{{ '/features/agent-integration/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="agent" size="24" %}
        </div>
        <h3 class="feature-card-title">Agent Skills</h3>
        <p class="feature-card-description">
          One-line install for Claude Code, Codex, OpenCode, OpenClaw. Zero
          context pollution.
        </p>
      </a>

      <a
        href="{{ '/features/mcp-integration/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="mcp-integration" size="24" %}
        </div>
        <h3 class="feature-card-title">MCP Server</h3>
        <p class="feature-card-description">
          19 tools for Claude Desktop, Cursor, Zed, Windsurf, Amp, Raycast, and
          more.
        </p>
      </a>

      <a
        href="{{ '/features/multi-format/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="multi-format" size="24" %}
        </div>
        <h3 class="feature-card-title">Multi-Format</h3>
        <p class="feature-card-description">
          Markdown, PDF, DOCX, XLSX, PPTX, plain text. Frontmatter extraction
          and language detection.
        </p>
      </a>

      <a href="{{ '/features/web-ui/' | relative_url }}" class="feature-card">
        <div class="feature-card-icon">
          {% include icons.html icon="globe" size="24" %}
        </div>
        <h3 class="feature-card-title">Web UI</h3>
        <p class="feature-card-description">
          Dashboard for search, browse, edit, and AI Q&A. Knowledge graph
          visualization. Keyboard-first.
        </p>
      </a>

      <a
        href="{{ '/features/fine-tuned-models/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="brain" size="24" %}
        </div>
        <h3 class="feature-card-title">Fine-Tuned Models</h3>
        <p class="feature-card-description">
          Published retrieval model on Hugging Face. Train your own with local
          MLX LoRA.
        </p>
      </a>

      <a
        href="{{ '/features/benchmarks/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="brain" size="24" %}
        </div>
        <h3 class="feature-card-title">Benchmarks</h3>
        <p class="feature-card-description">
          Measure retrieval and embedding changes against fixed corpora, real
          GNO code, and public OSS slices before changing defaults.
        </p>
      </a>

      <a
        href="{{ '/features/graph-view/' | relative_url }}"
        class="feature-card"
      >
        <div class="feature-card-icon">
          {% include icons.html icon="graph" size="24" %}
        </div>
        <h3 class="feature-card-title">Knowledge Graph</h3>
        <p class="feature-card-description">
          Interactive visualization of wiki links, markdown links, and semantic
          similarity edges.
        </p>
      </a>

      <a href="{{ '/features/tags/' | relative_url }}" class="feature-card">
        <div class="feature-card-icon">
          {% include icons.html icon="tag" size="24" %}
        </div>
        <h3 class="feature-card-title">Tags &amp; Filtering</h3>
        <p class="feature-card-description">
          Hierarchical tags from frontmatter. Temporal, author, and category
          filters. AND/OR logic.
        </p>
      </a>

      <a href="{{ '/features/api/' | relative_url }}" class="feature-card">
        <div class="feature-card-icon">
          {% include icons.html icon="code" size="24" %}
        </div>
        <h3 class="feature-card-title">REST API &amp; SDK</h3>
        <p class="feature-card-description">
          35+ HTTP endpoints. TypeScript SDK for embedding GNO in your own apps.
          JSON everywhere.
        </p>
      </a>

      <a href="{{ '/docs/CLI/' | relative_url }}" class="feature-card">
        <div class="feature-card-icon">
          {% include icons.html icon="terminal" size="24" %}
        </div>
        <h3 class="feature-card-title">Fast CLI</h3>
        <p class="feature-card-description">
          Bun-powered instant startup. Search 15,000+ docs in milliseconds.
          JSON, CSV, Markdown output.
        </p>
      </a>
    </div>
  </section>

  <section class="quickstart">
    <h2 class="section-title">Quick Start</h2>
    <div class="quickstart-content">
      <div class="highlight">
        <pre><code><span class="c"># Install</span>
bun install -g @gmickel/gno

<span class="c"># macOS: Vector search requires Homebrew SQLite</span>
brew install sqlite3

<span class="c"># Point at your files</span>
gno init ~/obsidian-vault --name vault
gno init ~/projects/docs --name docs

<span class="c"># Index everything</span>
gno index

<span class="c"># Search</span>
gno query "authentication best practices"
gno ask "summarize the API discussion" --answer

<span class="c"># Give your AI agent access</span>
gno skill install --scope user          <span class="c"># Claude Code / Codex / OpenCode</span>
gno mcp install --target cursor         <span class="c"># Cursor / Zed / Windsurf</span></code></pre>
      </div>
      <p class="quickstart-link">
        <a href="{{ '/docs/QUICKSTART/' | relative_url }}"
          >Read the Full Documentation &rarr;</a
        >
      </p>
    </div>
  </section>

  {{ content }}
</div>
