Skip to main content
Complete reference for all OpenGround configuration options. Configuration is stored in ~/.openground/config.json.

Configuration File

Location: ~/.openground/config.json Access:

Top-Level Keys

db_path

string
default:"~/.openground/lancedb"
Path to the LanceDB database directory. Stores vector embeddings and metadata.Example:

table_name

string
default:"documents"
Name of the LanceDB table for storing documents.Example:

raw_data_dir

string
default:"~/.openground/raw_data"
Directory for storing extracted documentation (JSON files) before embedding.Structure: {raw_data_dir}/{library}/{version}/page_*.jsonExample:

embeddings

Embedding and chunking configuration.

embeddings.embedding_backend

string
default:"fastembed"
Embedding backend to use.Valid values:
  • sentence-transformers - Full transformers library (GPU/MPS/CPU support)
  • fastembed - Lightweight, optimized for CPU speed (default)
Validation: Must be one of these two values.Example:

embeddings.embedding_model

string
default:"BAAI/bge-small-en-v1.5"
Name of the embedding model to use.Default: BAAI/bge-small-en-v1.5 (384 dimensions, optimized for quality/speed balance)Other models:
  • BAAI/bge-base-en-v1.5 (768 dimensions, higher quality)
  • sentence-transformers/all-MiniLM-L6-v2 (384 dimensions, faster)
  • all-mpnet-base-v2 (768 dimensions, best quality, sentence-transformers only)
Note: Changing this requires re-embedding all libraries.Example:

embeddings.embedding_dimensions

integer
default:"384"
Dimension of the embedding vectors. Must match the model’s output dimensions.Common dimensions:
  • 384 - BAAI/bge-small-en-v1.5 (default), all-MiniLM-L6-v2
  • 768 - BAAI/bge-base-en-v1.5, all-mpnet-base-v2
Note: This must match your model’s dimensions. Changing this requires re-embedding.Example:

embeddings.batch_size

integer
default:"32"
Number of chunks to process in a single batch when generating embeddings.Trade-offs:
  • Larger batches (64-128): Faster on GPU, more memory usage
  • Smaller batches (8-16): Lower memory usage, slower processing
Recommended: 32 for most systems, increase if you have lots of GPU memoryExample:

embeddings.chunk_size

integer
default:"800"
Maximum size of text chunks (in characters) for embedding.Trade-offs:
  • Smaller chunks (256-512): More granular, better for specific queries
  • Larger chunks (1024-2048): More context, better for broad topics
Recommended range: 256 - 2048Example:

embeddings.chunk_overlap

integer
default:"200"
Number of overlapping characters between consecutive chunks.Purpose: Prevents information loss at chunk boundaries.Recommended: 20-25% of chunk_size (default is 25% of 800)Example:

query

Search and query configuration.

query.top_k

integer
default:"5"
Number of results to return from queries by default.Can be overridden: Using --top-k flag in openground queryRecommended range: 3 - 20Example:

extraction

Extraction and scraping configuration.

extraction.concurrency_limit

integer
default:"50"
Maximum number of concurrent requests when extracting from sitemaps.Trade-offs:
  • Higher values: Faster extraction, more memory/bandwidth
  • Lower values: Slower extraction, less resource usage
Recommended range: 5 - 50Example:

sources

Source management configuration.

sources.auto_add_local

boolean
default:"true"
Automatically add sources to ~/.openground/sources.json when using openground add with --source flag.When enabled: Source configs are saved for future useWhen disabled: Must provide --source every timeExample:

sources.file_path

string
default:"~/.openground/sources.json"
Path to the sources configuration file.Use case: Custom location for source definitionsExample:

Example Configuration

Common Configurations

High-Quality Embeddings

Better semantic understanding, slower, more disk space:

Fast and Lightweight

Faster extraction and queries, less disk space:

Large Context

Better for documentation with long-form content:

Detailed Queries

More results, better for exploration:

Changing Settings

View Current Value

Change a Value

Reset to Defaults

When Changes Take Effect

Re-embedding After Embedding Changes

If you change embedding settings, you must re-embed: