# vex configuration — https://github.com/tenatarika/vex # # Place this file in your project root as .vex.toml # --- Active settings (maximum capability) --- # Semantic embeddings on, call-graph + BM25 on, and auto-refresh the index when # stale so queries never run against an out-of-date graph. semantic = true auto_update = true call_graph = true bm25 = true # Glob patterns to exclude from indexing (gitignore syntax, on top of .gitignore) # exclude = [ # "vendor/**", # "node_modules/**", # "*.generated.go", # "dist/**", # ] # Default output format: "text", "json", or "compact" # format = "text" # Enable semantic embeddings by default (slower indexing, enables meaning-based search) # semantic = false # Automatically run `vex update` before search if the index is stale # auto_update = false # Embedder used for semantic indexing. Known IDs: minilm-l6-v2 (default). # Changing the embedder requires a full reindex. # embedder = "minilm-l6-v2" # Cache directory override. Defaults to the platform cache location. # macOS: ~/Library/Caches/vex # Linux: $XDG_CACHE_HOME/vex (fallback: ~/.cache/vex) # Windows: %LOCALAPPDATA%\vex (fallback: %USERPROFILE%\AppData\Local\vex) # Accepts absolute paths, "~/..." or paths relative to this file (e.g. "./.vex/cache"). # Can also be overridden per-invocation with --cache-dir or $VEX_CACHE_DIR. # cache_dir = "./.vex/cache" # Store the index inside the project as `/.vex_cache/`. Useful when # the cache should travel with the project (e.g. on a moved or renamed # directory). vex writes a `.gitignore` inside it so contents are not # committed. Overridden by `cache_dir`, `--cache-dir`, or $VEX_CACHE_DIR. # local_cache = false # Thread count for parallel indexing (index/update/watch). # * unset — 80% of available cores, rounded up (default, leaves headroom) # * 0 — use all cores (explicit opt-in to max throughput) # * N — exactly N workers # Overridable per-invocation with `-j/--jobs` or $VEX_JOBS. # jobs = 4 # Build the persistent call-graph section. Disabling falls back to live-scan # for `vex callers`/`vex callees` (slower per-query, but saves indexing # time on large monorepos). The opt-out is persisted in the manifest so # `vex update` does not silently re-add the section. # Per-invocation override: `vex index --no-call-graph`. # call_graph = true # Build the BM25 channel. Disabling drops the third RRF channel and keeps # only structural (+ semantic). Same persistence rules as `call_graph`. # Per-invocation override: `vex index --no-bm25`. # bm25 = true