Use cases

Obsidian vaults, Claude Code memory, client corpora under local_only, Capsule-backed agent answers, and export-adapter records.

Point GNO at a folder, prove retrieval with gno setup, then search, ask, or hand an agent a Capsule from that index. Examples:

Obsidian vault

Point GNO at your Obsidian vault. You keep editing in Obsidian. GNO adds BM25 + vector + reranking, a CLI, and an MCP server over the same vault.

gno setup ~/Documents/Obsidian --name vault
gno mcp install --target claude-desktop

Memory for Claude Code

Install GNO as a skill for Claude Code. Your coding agent can query your notes, docs, and project files on demand without pasting everything into every prompt.

gno skill install --target claude --scope user
# Then in Claude Code:
# /gno query "how does our auth flow work"

Research + synthesis

Research corpus on disk, query via CLI, pipe results to jq or to a spreadsheet automation tool, and get cited AI answers from local models.

gno query "Q4 budget projections" --json | jq '.results[0]'
gno ask "what did we conclude about pricing" --answer

Due diligence and client work

Index a client’s mixed-format document set (Markdown, PDFs, Office docs, mail exports), pin the collection so it can never leave the machine, and share only the compiled slice you meant to share.

gno setup ~/clients/acme --name acme
gno collection policy set acme local_only

# Compile the evidence behind a finding, with exact spans
gno context build "vendor lock-in exposure" --collection acme \
  --budget 16000 --json --output finding-3.json

# Months later, is that evidence still accurate?
gno context verify finding-3.json --md

The combination that matters here is egress policy plus Capsules: the corpus is pinned local, and the artifact behind each finding is reproducible and re-checkable long after the engagement ends. Publish a deliverable as an invite-only or encrypted space when the client needs a URL.

Agent work you can defend

When an agent writes a PR description, an ADR, or a report, the question is always “where did that come from”. Give it a Capsule and require it to answer from that evidence only.

gno context build "why we chose the queue over cron" \
  --collection eng-docs --budget 12000 --json --output why.json

# Generation that stops when the evidence stops
gno ask "why did we choose the queue over cron" --verify --show-sources

If the corpus does not support a claim, verified Ask withholds the draft and names the gap instead of producing a confident paragraph you have to fact-check by hand.

Meetings and mail as searchable records

Export the transcript and the mail thread, and index them as individually citable records rather than as one opaque blob.

gno collection add ~/exports --name exports \
  --pattern "**/*.{vtt,srt,eml,mbox,ics}"
gno update
gno query "what did we agree about the migration date" --collection exports

Each message, event, and cue keeps its own participants, timestamps, thread identity, and anchors. See file and export adapters.

Team wiki with git sync

Point GNO at a git-synced team wiki directory and run gno daemon --detach. The index stays fresh as people push, and everyone gets the same retrieval behavior in their local CLI and AI tools. Commit a project profile so the repository itself declares what to index, and gno setup . --apply-profile reproduces the setup on a new machine in one command.

Retrieval that gets measurably better

When a search misses something you know exists, capture it instead of shrugging. Label the miss, export a content-free fixture, and replay candidate pipelines against it before changing a model.

gno trace label <trace-id> --label missing-expected \
  --target gno://notes/postmortem-q3.md
gno trace export <trace-id> --format qrels --output recall.json
gno trace replay <export-id> --candidate hybrid --md

See private retrieval learning.

Capture with provenance

gno capture writes a note with --source-kind and you can filter it later with --since.

gno capture "Vendor quoted 14 week lead time" --collection notes \
  --source-kind meeting --title "Acme lead time"
gno query "lead time" --collection notes --since "last month"