GNO — local knowledge engine

Search finds. GNO proves.

One local index across your notes, code, PDFs, and Office docs. Hybrid search, a real workspace, and agents that can cite their sources.

Point GNO at your folders and you get keyword and semantic retrieval fused and reranked, a workspace to browse, edit, capture and graph it all, a CLI, an SDK, a REST API, and one-command hookup to ten AI clients. Then you get the part that is harder to find: retrieval that can show its work. Bounded Context Capsules carrying exact line spans and content hashes, answers that abstain instead of filling the gap, evidence that tells you when it goes stale, and a setup command that refuses to claim success until search really returns your own documents. Open source, MIT, zero telemetry.

bun install -g @gmickel/gno && gno setup ~/notes --name notes
Rev
1.29.6
License
MIT
Runtime
Bun
Platforms
macOS · Linux · Windows
Telemetry
None

Key characteristics

Local GNO · free · MIT
ParameterValueNotes
File typesMarkdown · PDF · Office · codePlus plain text, portable mail and calendar exports, transcripts, JSONL, and browser exports
Search modes3Keyword (BM25), semantic (vector), and hybrid — fused, reranked, and explainable
AI clients10Claude Code, Claude Desktop, Cursor, Codex, Zed, Windsurf, OpenCode, Amp, LM Studio, LibreChat — one command each
Interfaces6CLI, web UI, REST API, TypeScript SDK, MCP server, and a desktop shell, all reading one index
Where your corpus livesLocalYour machine. The index and built-in models never leave it; the three network boundaries are all explicit
Telemetry events0Nothing recorded, phoned home, or personalized by default

Everything above is the free, open-source local product. Hosted gno.sh publishing is optional and separate. Full detail in the documentation.

§1 — Workspace

One index, rendered as a place you can actually work inside.

GNO web UI showing document viewer with sidebar, backlinks, and metadata
WorkspaceBrowse, search, and read in one surface
GNO collection browse with folder tree and document list
BrowseCross-collection tree
GNO interactive knowledge graph
GraphLinks, hubs, unresolved targets, and isolates

Installs into the tools you already use

Claude DesktopClaude CodeCursorCodexZedWindsurfOpenCodeAmpLM StudioLibreChat

§2 — One index, five real surfaces

Search, workspace, agents, builders, and hosted sharing, all pointed at the same local engine.

GNO is not a search sidecar bolted onto a note app. A fast CLI, a web UI with browse and graph, an SDK and REST API, integrations for ten supported agent clients, and an optional hosted reader all read one index with one ranking behavior.

Search

Find the paragraph, not just the file

Keyword and semantic retrieval fused and reranked, with structured intent controls, metadata filters, and an explain mode that shows exactly how a result was ranked.

Workspace

Browse, edit, capture, and see the connections

A real workspace, not a search box. Cross-collection tree, safe editing, provenance-carrying quick capture, and a knowledge graph you can navigate into the source note.

Agents

Ten clients install in one command

MCP and agent skills for Claude Code, Claude Desktop, Cursor, Codex, Zed, Windsurf, OpenCode, Amp, LM Studio, and LibreChat. 25 read-only tools by default; writes are a separate opt-in.

Builder

CLI, REST, SDK, and a resident runtime

Script it, embed it in a Bun app, or keep one warm process serving every client through a shared Streamable HTTP MCP gateway.

Publish

Share a slice without exposing the vault

Export an explicit snapshot and publish it as a reading-first page: public URL, secret link, invite-only space, or encrypted before upload. Everything outside the artifact stays local.

§3 — Why not another local RAG tool

Retrieval is easy to demo and hard to trust. GNO is built for the second part.

A ranked list is a guess with formatting. These four properties are what make retrieval something you can hand to an agent, or to a reviewer, without crossing your fingers.

Evidence

Context Capsules instead of another search loop

Compile one bounded evidence bundle for a goal: exact line spans, source hashes, one global token budget, collapsed duplicates, and an explicit list of what it could not find. Your agent reads it once instead of searching five times and guessing.

How Capsules work
Enforcement

Answers that abstain instead of bluffing

Verified Ask generates against one closed Capsule, classifies every substantive claim as supported, contradicted, insufficient, or uncertain, and withholds the draft unless support reaches 100%. An abstention is a valid result, not a failure.

See verified answers
Freshness

Evidence that tells you when it goes stale

Saved Capsules can be watched. When their sources move, the resident runtime reverifies the exact spans and writes a canonical, non-generative freshness receipt. Knowledge Delta shows what changed and which decisions depended on it.

Read about Knowledge Delta
Activation

Setup that proves retrieval before it says it worked

gno setup returns only after lexical search finds a real result derived from your own corpus. No green checkmark for a folder that indexed but cannot be searched. Semantic readiness is tracked separately and honestly.

Verified setup

§4 — Characterization

Fewer calls, less context, and the same answers.

What compiling evidence once buys an agent, measured across the whole benchmark rather than a favourable slice of it.

Fig. 2 — Agentic retrieval, measured against the paired baseline48 paired tasks · same corpus · deterministic replay
fewer agent retrieval calls48.94%
51.06 vs 100 baseline

The agent stops re-searching for context it already has

less model-visible context44.12%
55.88 vs 100 baseline

Same answers reached on a smaller token budget

task accuracy retained100%
parity with baseline

No completion loss against the paired baseline

Conditions. Measured across all 48 paired tasks in the agentic retrieval benchmark, not a selected task. The baseline lane is normalized to 100. Raw receipts, fingerprints, and the limitations of the run are published with the result.

§5 — What the handoff looks like

Four commands from a folder to checkable evidence.

# Activate a folder. Returns only after lexical search proves a real hit.
gno setup ~/notes --name notes
# Compile one bounded evidence bundle for a goal.
gno context build 'why did we drop the queue rewrite' --budget 12000 --json --output capsule.json
# Re-check the evidence later. Non-mutating; reports stale, missing, or reranked spans.
gno context verify capsule.json
# Generate only what the Capsule supports. Abstains below full claim coverage.
gno ask 'why did we drop the queue rewrite' --verify --show-sources
Ask

A cited answer, or an honest refusal

Ask a question and GNO answers from your own documents with citations that resolve to the source passage. Turn on verification and every substantive claim gets bound to an evidence ID, a line range, and a content hash before the draft is released.

  • Answers grounded in your files, never the open web
  • Supported, contradicted, insufficient, and uncertain verdicts stay visible
  • Below full support, GNO abstains and says which claim failed
  • Verifier degradation is reported, not silently downgraded
  • Stale or missing evidence surfaces before you act on the answer
GNO AI answers with cited sources from local documents
Browse

A workspace, not a result list

Move through collections and nested folders, keep separate browse context per tab, and jump from folder structure straight into the note you want. Markdown stays editable, converted binaries stay read-only, and PDFs retain their native page layout in the viewer.

  • Cross-collection tree sidebar with folder detail panes
  • Native PDF pages with selectable text and extracted-text fallback
  • Pinned collections and deep-linkable browse state
  • Quick capture with structured provenance and typed presets
  • Knowledge graph with wiki, markdown, and typed edges
GNO collection browse with folder tree and document list

§6 — How we argue

Every claim on this page resolves to something you can download and recompute.

Every benchmark artifact behind these numbers is committed to the repository, pinned to a corpus, and reproducible on your machine.

Claims come with receipts

Every number on this site resolves to a committed benchmark artifact you can download and recompute, pinned to a fixed corpus with its limitations stated alongside the result.

Local by default, explicit at every boundary

Corpus, index, and built-in models stay on your machine with zero telemetry. Each collection carries a fail-closed local, LAN, or remote egress policy, and derived Capsules and exports inherit the most restrictive one.

One retrieval stack everywhere

CLI, SDK, REST, web UI, desktop shell, and every agent integration hit the same index with the same ranking behavior. Nothing drifts in the handoff between you and your agent.

Nothing learns behind your back

Retrieval tracing is off by default. Only judgments you make explicitly become qrels, replay is read-only, and no ranking, prompt, model, or file is ever mutated without you asking for it.

§7 — Feature index

The capabilities, in order of how much they change your day.

Publish

Share a slice as a polished reading surface.

Export from GNO, upload the artifact, and get a page with editorial typography, outline navigation, scoped search, and backlinks restricted to what you published. Public URLs, secret links, invite-only spaces, or shares encrypted before they leave your machine.

  • Export locally, upload the artifact, vault stays private
  • Reader-first design with drop cap, 68ch measure, keyboard nav
  • Public snapshots carry a read-only agent manifest
  • Republish updates the same URL, so links never break
  • Free tier, no credit card
GNO published reader showing the AI Due Diligence Atlas with three-column layout, table of contents, and editorial typography

§8 — Top questions

The quick version. Full FAQ is on its own page.

What is GNO, in one paragraph?

Point GNO at folders on your machine and it builds one local index across them. From there you get keyword, semantic, and hybrid search; a browsable workspace with a folder tree, a markdown editor, and a knowledge graph; AI answers that cite the passage they came from; and one-command hookup so Claude Code, Cursor, Codex, and seven other clients can retrieve from the same index. It is open source, MIT licensed, and runs entirely on your machine.

What file types can it index?

Markdown, PDF, Office documents, plain text, and source code, plus portable mail and calendar exports, transcripts, JSONL, and browser exports. Markdown stays editable in the workspace; converted binaries stay read-only, and the interface never blurs the two. Point it at a folder that mixes all of them and it handles the mix.

How is this different from grep, Spotlight, or Obsidian search?

Those match the words you typed. GNO also matches meaning, so a search for “how we handle retries” finds the paragraph that talks about exponential backoff without the word “retry” in it. It reads inside PDFs and Office files rather than just their filenames, it spans every folder you have added rather than one vault, it answers questions in natural language with citations, and it exposes all of that to your AI tools. If your material is one folder of Markdown and you only ever search for exact strings, ripgrep is genuinely fine.

Do I need a GPU? What does it cost to run?

No GPU required and no account required. Local GNO is free and MIT licensed. Indexing and keyword search are CPU-only. Semantic search and AI answers use built-in local models that run on CPU, and will use Apple Silicon or a GPU if you have one. You can point inference at an external endpoint instead, which is an explicit opt-in, and the only paid thing anywhere is the optional gno.sh hosted publishing layer.

Is my data sent to the cloud?

Not by default. Indexing, search, and the built-in models run on your machine with zero telemetry, and work offline once models are cached. There are exactly three boundaries, all explicit: downloading a model, configuring an HTTP inference endpoint (which then receives the text for that model role), and uploading an artifact you exported for gno.sh. Each collection also carries a fail-closed egress policy that authentication cannot override.

How does it work with Claude, Cursor, or Codex?

One command per client. gno mcp install --target <client> pins the exact runtime, index, and workspace roots so the client opens the same workspace regardless of shell environment, and gno skill install gives coding agents CLI-level retrieval with no protocol overhead. MCP exposes 25 read-only tools by default, including Capsule build, Capsule verification, Knowledge Delta, and the opt-in verified Ask tool. The 15 mutating tools require a separate flag.

Can GNO be my agent's long-term memory?

Yes, and that is the design center. Your agent retrieves the passages it needs on demand instead of loading a knowledge base into every session. Run gno daemon and several clients share one warm resident runtime, one index, and one model lifecycle over a Streamable HTTP MCP gateway, so the second agent does not pay the first agent's cold start.

What actually makes GNO different from other local RAG tools?

Most of them return a ranked list and hope for the best. GNO produces evidence you can check: a Context Capsule with exact line spans and content hashes under one token budget, an answer path that abstains unless every substantive claim is supported, freshness receipts when sources move, and a setup command that refuses to report success until lexical search returns a real result from your corpus. The benchmark artifacts behind those claims ship in the repository. If you only need search and a workspace, that all works without ever touching the evidence layer.

Does verified Ask mean the answer is true?

No, and GNO will not claim otherwise. Verified Ask checks a draft only against the exact evidence retained in its closed local Capsule. It binds verdicts to evidence IDs, line ranges, and hashes, reports stale evidence and verifier degradation, and abstains when support is incomplete. It does not prove anything beyond your corpus, and it cannot make a wrong source right.

What does gno.sh add?

An optional publishing layer. Export a note or collection locally, upload the artifact, and get a reading-first page: public URL, secret link, invite-only space, or a share encrypted before it leaves your machine. Public snapshots can also expose the shipped read-only agent projection. Private agent API access is deferred: secret-link, invite-only, and encrypted spaces remain human-reader surfaces. The five-partner knowledge-room pilot is a consented concierge validation program, not a generally available service. Nothing outside the artifact you exported ever reaches the server.

Does GNO work with Obsidian and the LLM Wiki pattern?

Yes to both. Point GNO at an Obsidian vault and it indexes wiki links, frontmatter tags, and the whole tree, adding hybrid search, cited answers, and agent access on top of what you already have. For an LLM Wiki, where an agent compiles raw sources into a persistent markdown knowledge base, GNO indexes both the compiled wiki and the raw sources, so retrieval spans both layers.