Gno
Search local documents, files, notes, and knowledge bases. Index directories, search with BM25/vector/hybrid, get AI answers with citations. Use when user wa...
Search local documents, files, notes, and knowledge bases. Index directories, search with BM25/vector/hybrid, get AI answers with citations. Use when user wa...
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
Fast local semantic search. Index once, search instantly. No cloud, no API keys.
gno init # Initialize in current directory gno collection add ~/docs --name docs # Add folder to index gno index # Build index (ingest + embed) gno search "your query" # BM25 keyword search
| Category | Commands | Description |
|---|---|---|
| Search | , , , | Find documents by keywords, meaning, or get AI answers |
| Links | , , , | Navigate document relationships and visualize connections |
| Retrieve | , , | Fetch document content by URI or ID |
| Index | , , , , | Set up and maintain document index |
| Tags | , , | Organize and filter documents |
| Context | | Add hints to improve search relevance |
| Models | | Manage local AI models |
| Serve | | Web UI for browsing and searching |
| Publish | | Export gno.sh publish artifacts |
| MCP | , | AI assistant integration |
| Skill | | Install skill for AI agents |
| Admin | , , , , , | Maintenance and diagnostics |
| Command | Speed | Best For |
|---|---|---|
| instant | Exact keyword matching |
| ~0.5s | Finding similar concepts |
| ~0.7s | Quick lookups |
| ~2-3s | Balanced (default) |
| ~5-8s | Best recall, complex queries |
| ~3-5s | AI-generated answer with citations |
Retry strategy: Use default first. If no results: rephrase query, then try
--thorough.
-n <num> Max results (default: 5) -c, --collection Filter to collection --tags-any <t1,t2> Has ANY of these tags --tags-all <t1,t2> Has ALL of these tags --since <date> Modified after date (ISO: 2026-03-01) --until <date> Modified before date (ISO: 2026-03-31) --exclude <terms> Exclude docs containing any term (comma-separated) --intent <text> Disambiguate ambiguous queries (e.g. "python" = language not snake) --json JSON output --files URI list output --line-numbers Include line numbers
Use
--query-mode to combine multiple retrieval strategies in one query (repeatable):
# Combine keyword + hypothetical document gno query "API rate limiting" \ --query-mode "term:rate limit" \ --query-mode "hyde:how to implement request throttling"Add intent steering
gno query "python"
--query-mode "term:python"
--query-mode "intent:programming language"
Modes:
term:<text> (keyword), intent:<text> (disambiguation), hyde:<text> (hypothetical doc for semantic matching). Max one hyde per query.
# Full document by URI gno get gno://work/readme.mdBy document ID
gno get "#a1b2c3d4"
Specific line range: --from <start> -l <count>
gno get gno://work/report.md --from 100 -l 20
With line numbers
gno get gno://work/report.md --line-numbers
JSON output with capabilities metadata
gno get gno://work/report.md --json
Multiple documents
gno multi-get gno://work/doc1.md gno://work/doc2.md
Editable vs read-only:
gno get --json returns a capabilities field showing whether a document is editable at its source. Markdown and plain text files are editable in place. Converted documents (PDF, DOCX, XLSX) are read-only -- to edit their content, create a new markdown note instead of overwriting the binary source.
# Search, get full content of top result gno query "auth" --json | jq -r '.results[0].uri' | xargs gno getGet all results
gno search "error handling" --json | jq -r '.results[].uri' | xargs gno multi-get
# Outgoing links from a document gno links gno://notes/readme.mdFind documents linking TO a document (backlinks)
gno backlinks gno://notes/api-design.md
Find semantically similar documents
gno similar gno://notes/auth.md
Similar across all collections (not just same collection)
gno similar gno://notes/auth.md --cross-collection
Stricter threshold (default: 0.7)
gno similar gno://notes/auth.md --threshold 0.85
Knowledge graph
gno graph --json gno graph -c notes --similar # Include similarity edges
--index <name> Alternate index (default: "default") --config <path> Override config file --verbose Verbose logging --json JSON output --yes Non-interactive mode --offline Use cached models only --no-color Disable colors --no-pager Disable paging
If you edit/create files that should be searchable via vector search:
gno index # Full re-index (sync + embed) # or gno embed # Embed only (if already synced) gno embed travel # Embed one collection only # or gno embed --collection travel
MCP
gno.sync and gno.capture do NOT auto-embed. Use CLI for embedding.
Collections can override the global embedding model with
models.embed.
CLI path:
gno collection add ~/work/gno/src \ --name gno-code \ --embed-model "hf:Qwen/Qwen3-Embedding-0.6B-GGUF/Qwen3-Embedding-0.6B-Q8_0.gguf"
Good default guidance:
gno embed --collection gno-code
If you want to remove old vectors after switching:
gno collection clear-embeddings gno-code # stale models only gno collection clear-embeddings gno-code --all # remove everything, then re-embed
MCP-equivalent write tool:
gno_clear_collection_embeddings| Topic | File |
|---|---|
| Complete CLI reference (all commands, options, flags) | cli-reference.md |
| MCP server setup and tools | mcp-reference.md |
| Usage examples and patterns | examples.md |
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.