Configuration
GNO configuration reference.
Config File
Location varies by platform (see File Locations below).
Run gno doctor to see your resolved config path.
version: "1.0"
# FTS tokenizer (set at init, cannot change)
ftsTokenizer: unicode61
# Collections
collections:
- name: notes
path: /Users/you/notes
pattern: "**/*.md"
include: []
exclude:
- .git
- node_modules
languageHint: en
- name: work
path: /Users/you/work/docs
pattern: "**/*"
exclude:
- dist
- build
# Contexts (semantic hints)
contexts:
- scopeType: global
scopeKey: /
text: Personal knowledge base and project documentation
- scopeType: collection
scopeKey: notes:
text: Personal notes and journal entries
- scopeType: prefix
scopeKey: gno://work/api
text: API documentation and specifications
# Model configuration
models:
activePreset: balanced
Collections
Collections define what gets indexed.
Collection Fields
| Field | Type | Default | Description |
|---|---|---|---|
name |
string | required | Unique identifier (lowercase) |
path |
string | required | Absolute path to directory |
pattern |
glob | **/* |
File matching pattern |
include |
array | [] |
Extension allowlist |
exclude |
array | see below | Patterns to skip |
updateCmd |
string | - | Shell command before indexing |
languageHint |
string | - | BCP-47 language code |
Default Excludes
exclude:
- .git
- node_modules
- .venv
- .idea
- dist
- build
- __pycache__
- .DS_Store
- Thumbs.db
Examples
Markdown notes:
- name: notes
path: /Users/you/notes
pattern: "**/*.md"
Code docs with language hint:
- name: german-docs
path: /Users/you/docs/german
pattern: "**/*.md"
languageHint: de
TypeScript project:
- name: project
path: /Users/you/project
pattern: "**/*.ts"
include:
- .ts
- .tsx
exclude:
- node_modules
- dist
- "*.test.ts"
With update command:
- name: wiki
path: /Users/you/wiki
updateCmd: "git pull"
Contexts
Contexts add semantic hints to improve search relevance.
Scope Types
| Type | Key Format | Example |
|---|---|---|
global |
/ |
Applies to all documents |
collection |
name: |
Applies to collection |
prefix |
gno://collection/path |
Applies to path prefix |
Examples
contexts:
# Global context
- scopeType: global
scopeKey: /
text: Technical knowledge base for software development
# Collection context
- scopeType: collection
scopeKey: notes:
text: Personal notes and daily journal entries
# Path prefix context
- scopeType: prefix
scopeKey: gno://work/api
text: REST API documentation and OpenAPI specs
Models
Model configuration for embeddings and AI answers.
Presets
| Preset | Disk | Best For |
|---|---|---|
slim |
~1GB | Fast responses, lower quality |
balanced |
~2GB | Good balance (default) |
quality |
~2.5GB | Best answers, slower |
Model Details
All presets use bge-m3 for embeddings (1024 dimensions, multilingual).
| Preset | Embed | Rerank | Gen |
|---|---|---|---|
| slim | bge-m3-Q4 | bge-reranker-v2-m3-Q4 | Qwen3-1.7B-Q4 |
| balanced | bge-m3-Q4 | bge-reranker-v2-m3-Q4 | SmolLM3-3B-Q4 |
| quality | bge-m3-Q4 | bge-reranker-v2-m3-Q4 | Qwen3-4B-Q4 |
Custom Models
models:
activePreset: custom
presets:
- id: custom
name: My Custom Setup
embed: hf:user/model/embed.gguf
rerank: hf:user/model/rerank.gguf
gen: hf:user/model/gen.gguf
Model URIs support:
hf:org/repo/file.gguf- Hugging Face downloadfile:/path/to/model.gguf- Local file
Timeouts
models:
loadTimeout: 60000 # Model load timeout (ms)
inferenceTimeout: 30000 # Inference timeout (ms)
warmModelTtl: 300000 # Keep-warm duration (ms)
FTS Tokenizer
Set at gno init, cannot be changed without rebuilding.
| Tokenizer | Description |
|---|---|
unicode61 |
Unicode-aware (default) |
porter |
English stemming |
trigram |
Substring matching |
# Initialize with porter stemmer
gno init --tokenizer porter
Environment Variables
Override paths (applied before platform defaults):
| Variable | Description |
|---|---|
GNO_CONFIG_DIR |
Override config directory |
GNO_DATA_DIR |
Override database directory |
GNO_CACHE_DIR |
Override model cache |
File Locations
Linux (XDG):
| Path | Purpose |
|ââ|âââ|
| ~/.config/gno/index.yml | Config |
| ~/.local/share/gno/index-default.sqlite | Database |
| ~/.cache/gno/models/ | Model cache |
macOS:
| Path | Purpose |
|ââ|âââ|
| ~/Library/Application Support/gno/config/index.yml | Config |
| ~/Library/Application Support/gno/data/index-default.sqlite | Database |
| ~/Library/Caches/gno/models/ | Model cache |
Run gno doctor to see resolved paths for your system.
Editing Config
Edit directly or use CLI:
# Add collection via CLI
gno collection add ~/notes --name notes
# View config (Linux)
cat ~/.config/gno/index.yml
# View config (macOS)
cat ~/Library/Application\ Support/gno/config/index.yml
After manual edits, run gno update to apply changes.